Decompiled source of TheyComeFromVoid v3.1.1

DSP_Battle.dll

Decompiled a week ago
using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using System.Threading;
using BepInEx;
using BepInEx.Configuration;
using BepInEx.Logging;
using CommonAPI;
using CommonAPI.Systems;
using CommonAPI.Systems.ModLocalization;
using HarmonyLib;
using MoreMegaStructure;
using NGPT;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.Events;
using UnityEngine.UI;
using crecheng.DSPModSave;
using xiaoye97;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: AssemblyTitle("DSP_Battle")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("HP Inc.")]
[assembly: AssemblyProduct("DSP_Battle")]
[assembly: AssemblyCopyright("Copyright © HP Inc. 2022")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("a125458e-bfa2-40ee-96b3-e461903e8c67")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: TargetFramework(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.0.0")]
[module: UnverifiableCode]
namespace DSP_Battle;

public class BattleBGMController
{
	public static int musicState = 0;

	public static int musicCnt = 0;

	public static bool isOverriding = false;

	public static int currentGroup = -1;

	public static int lastMusic = -1;

	public static int currentMusic = -1;

	public static int nextMusic = -1;

	public static float fadeOutTime = 0f;

	public static float fadeInTime = 0f;

	public static string[] index2NameMap = new string[25]
	{
		"pre_1", "loop_1", "fin_1", "pre_2", "loop_2", "pre_3", "loop_3", "fin_3", "pre_4", "loop_4",
		"fin_4", "pre_5", "loop_5", "fin_5", "pre_6", "loop_6", "fin_6", "Track7", "Track9", "Track10",
		"Track39", "TrackA1", "TrackE1", "TrackU1", "TrackU2"
	};

	public static Dictionary<string, int> name2IndexMap = new Dictionary<string, int>();

	public static List<int> finMusics = new List<int> { 2, 7, 10, 13, 16 };

	public static AssetBundle bgmAB;

	public static List<AudioSource> battleMusics = new List<AudioSource>();

	public static List<float> musicBPM = new List<float> { 100f, 176f, 180f, 180f, 180f, 200f, 200f };

	public static int beforeBattleBgmBeginNum = 17;

	public static bool nextPlayFinishMusic = false;

	public static int takeDamageCountdown = 0;

	public static void InitAudioSources()
	{
		if (!Configs.enableBattleBGM)
		{
			return;
		}
		Transform transform = GameObject.Find("Audios/BGM").transform;
		GameObject val = GameObject.Find("Audios/BGM/universe-1");
		bgmAB = AssetBundle.LoadFromStream(Assembly.GetExecutingAssembly().GetManifestResourceStream("DSP_Battle.battlebgm"));
		if ((Object)(object)bgmAB == (Object)null)
		{
			Configs.enableBattleBGM = false;
			return;
		}
		musicCnt = index2NameMap.Length;
		for (int i = 0; i < index2NameMap.Length; i++)
		{
			GameObject val2 = Object.Instantiate<GameObject>(val, transform);
			((Object)val2).name = index2NameMap[i];
			AudioSource component = val2.GetComponent<AudioSource>();
			component.clip = bgmAB.LoadAsset<AudioClip>(index2NameMap[i]);
			name2IndexMap.Add(index2NameMap[i], i);
			if (index2NameMap[i] == "fin_1")
			{
				name2IndexMap.Add("fin_2", i);
			}
			battleMusics.Add(component);
		}
	}

	public static void InitWhenLoad()
	{
		if (Configs.enableBattleBGM)
		{
			if (currentMusic >= 0 && currentMusic < musicCnt)
			{
				battleMusics[currentMusic].Stop();
			}
			if (lastMusic >= 0 && lastMusic < musicCnt)
			{
				battleMusics[lastMusic].Stop();
			}
			currentGroup = -1;
			lastMusic = -1;
			currentMusic = -1;
			nextMusic = -1;
			fadeOutTime = 0f;
			fadeInTime = 0f;
			isOverriding = false;
			nextPlayFinishMusic = false;
			takeDamageCountdown = 0;
		}
	}

	public static void BGMLogicUpdate()
	{
		if (!Configs.enableBattleBGM)
		{
			return;
		}
		if (takeDamageCountdown > 1800)
		{
			Configs.combatState = 3;
		}
		else if (UIRoot.instance.uiGame.dfAssaultTip.assaulting_cluster.Count > 0)
		{
			if (Configs.combatState == 3)
			{
				SetWaveFinished();
			}
			Configs.combatState = 2;
		}
		else
		{
			if (Configs.combatState == 3)
			{
				SetWaveFinished();
			}
			Configs.combatState = 1;
		}
		if (Configs.combatState <= 1 || (Configs.combatState != 3 && nextPlayFinishMusic))
		{
			if (nextPlayFinishMusic)
			{
				if (currentGroup < 0 || currentMusic < 0)
				{
					nextPlayFinishMusic = false;
					lastMusic = -1;
					currentMusic = -1;
					nextMusic = -1;
					fadeOutTime = 0f;
					fadeInTime = 0f;
					isOverriding = false;
					BGMController.Playback(0, 1f, 1f, (EPlaybackOrigin)0, 0f);
				}
				else if (atBarEnd(battleMusics[currentMusic].time, musicBPM[currentGroup]) && name2IndexMap.ContainsKey("fin_" + currentGroup))
				{
					nextPlayFinishMusic = false;
					nextMusic = name2IndexMap["fin_" + currentGroup];
				}
			}
			else if (currentMusic >= 0 && battleMusics[currentMusic].time >= battleMusics[currentMusic].clip.length - 0.05f)
			{
				lastMusic = -1;
				currentMusic = -1;
				nextMusic = -1;
				fadeOutTime = 0f;
				fadeInTime = 0f;
				isOverriding = false;
				currentGroup = Utils.RandInt(1, 7);
				BGMController.Playback(0, 1f, 1f, (EPlaybackOrigin)0, 0f);
			}
		}
		else if (Configs.combatState == 2)
		{
			if (!isOverriding)
			{
				currentGroup = Utils.RandInt(1, 7);
			}
			if (currentMusic < 0)
			{
				nextMusic = Utils.RandInt(beforeBattleBgmBeginNum, battleMusics.Count);
			}
			else if (battleMusics[currentMusic].time >= battleMusics[currentMusic].clip.length - 0.05f)
			{
				nextMusic = Utils.RandInt(beforeBattleBgmBeginNum, battleMusics.Count);
				if (nextMusic == currentMusic)
				{
					nextMusic = ((currentMusic + 1 < musicCnt) ? (currentMusic + 1) : (currentMusic - 1));
				}
			}
		}
		else if (Configs.combatState == 3)
		{
			if (currentGroup < 0)
			{
				Random random = new Random();
				currentGroup = random.Next(1, 7);
			}
			if (currentMusic >= beforeBattleBgmBeginNum || currentMusic < 0)
			{
				nextMusic = name2IndexMap["pre_" + currentGroup];
			}
			else if (finMusics.Contains(currentMusic) && atBarEnd(battleMusics[currentMusic].time, musicBPM[currentGroup]))
			{
				nextMusic = name2IndexMap["loop_" + currentGroup];
			}
			else if (index2NameMap[currentMusic][0] == 'p' && battleMusics[currentMusic].time >= battleMusics[currentMusic].clip.length - 0.05f)
			{
				nextMusic = name2IndexMap["loop_" + currentGroup];
			}
		}
		if (currentMusic != nextMusic)
		{
			PlayNext();
		}
		if (isOverriding)
		{
			if (fadeOutTime > 0f && lastMusic >= 0 && lastMusic < musicCnt)
			{
				AudioSource obj = battleMusics[lastMusic];
				obj.volume -= 0.01666667f / fadeOutTime;
				if (battleMusics[lastMusic].volume <= 0f)
				{
					fadeOutTime = 0f;
					battleMusics[lastMusic].volume = 0f;
					battleMusics[lastMusic].loop = false;
				}
			}
			else if (fadeOutTime <= 0f && lastMusic >= 0 && lastMusic < musicCnt)
			{
				battleMusics[lastMusic].volume = 0f;
				battleMusics[lastMusic].loop = false;
				battleMusics[lastMusic].Stop();
			}
			if (fadeInTime > 0f && currentMusic >= 0 && currentMusic < musicCnt)
			{
				AudioSource obj2 = battleMusics[currentMusic];
				obj2.volume += 0.01666667f / fadeInTime;
				if (battleMusics[currentMusic].volume >= VFAudio.audioVolume * VFAudio.musicVolume * 0.8f)
				{
					fadeOutTime = 0f;
					battleMusics[currentMusic].volume = VFAudio.audioVolume * VFAudio.musicVolume * 0.8f;
				}
			}
			else if (fadeInTime <= 0f && currentMusic >= 0 && currentMusic < musicCnt)
			{
				AudioSource val = battleMusics[currentMusic];
				val.volume = VFAudio.audioVolume * VFAudio.musicVolume * 0.8f;
			}
		}
		if (takeDamageCountdown > 0)
		{
			Interlocked.Add(ref takeDamageCountdown, -1);
		}
	}

	[HarmonyPostfix]
	[HarmonyPatch(typeof(GameData), "GameTick")]
	public static void GameData_GameTick(ref GameData __instance, long time)
	{
		if (time % 5 == 0L && isOverriding)
		{
			MuteGameOriBgm();
		}
	}

	public static void PlayerTakeDamage()
	{
		Interlocked.Exchange(ref takeDamageCountdown, 2700);
	}

	[HarmonyPostfix]
	[HarmonyPatch(typeof(SkillSystem), "DeterminePlanetATFieldRaytestInStar")]
	public static void VerifyPlayerPlanetWillTakeDamage(int __result)
	{
		if (GameMain.data.localPlanet != null && __result == GameMain.data.localPlanet.id)
		{
			Interlocked.Exchange(ref takeDamageCountdown, 2700);
		}
	}

	[HarmonyPostfix]
	[HarmonyPatch(typeof(PlayerAction_Combat), "ShootTarget")]
	public static void PlayerDoDamage()
	{
		Interlocked.Add(ref takeDamageCountdown, 240);
		if (takeDamageCountdown > 1800)
		{
			Interlocked.Exchange(ref takeDamageCountdown, 2700);
		}
	}

	[HarmonyPostfix]
	[HarmonyPatch(typeof(PlayerAction_Combat), "Shoot_Missile")]
	public static void ShootMissileCompensation()
	{
		if (takeDamageCountdown < 1800)
		{
			Interlocked.Add(ref takeDamageCountdown, -30);
		}
	}

	[HarmonyPostfix]
	[HarmonyPatch(typeof(PlayerAction_Combat), "Shoot_Cannon_Local")]
	public static void ShootCannonLocalCompensation()
	{
		if (takeDamageCountdown < 1800)
		{
			Interlocked.Add(ref takeDamageCountdown, -30);
		}
	}

	[HarmonyPostfix]
	[HarmonyPatch(typeof(PlayerAction_Combat), "Shoot_Cannon_Space")]
	public static void ShootCannonSpaceCompensation()
	{
		if (takeDamageCountdown < 1800)
		{
			Interlocked.Add(ref takeDamageCountdown, -30);
		}
	}

	[HarmonyPostfix]
	[HarmonyPatch(typeof(BGMController), "Playback")]
	public static void PlaybackPostPatch(int bgmIndex, float fadeOutTime, float fadeInTime, EPlaybackOrigin origin = 0, float offset = 0f)
	{
		if (Configs.enableBattleBGM && isOverriding)
		{
			if (!BGMController.HasBGM(bgmIndex))
			{
				bgmIndex = 0;
			}
			if ((Object)(object)BGMController.instance != (Object)null && BGMController.instance.musics != null && bgmIndex >= 0 && bgmIndex < BGMController.instance.musics.Length && (Object)(object)BGMController.instance.musics[bgmIndex] != (Object)null)
			{
				BGMController.instance.musics[bgmIndex].Stop();
			}
		}
	}

	[HarmonyPostfix]
	[HarmonyPatch(typeof(BGMController), "UpdateLogic")]
	public static void BGMPassFilterPatch()
	{
		//IL_000f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0015: Invalid comparison between Unknown and I4
		if (Configs.enableBattleBGM && isOverriding && (int)UIGame.viewMode == 4)
		{
			VFListener.SetPassFilter(100f);
		}
	}

	public static void PlayNext(float fade = 0f)
	{
		if (nextMusic >= 0 && nextMusic < musicCnt)
		{
			if (lastMusic < 0 && (Object)(object)BGMController.instance != (Object)null && BGMController.instance.musics != null && BGMController.HasBGM(BGMController.instance.playbackIndex))
			{
				BGMController.instance.fadeOutTimes[BGMController.instance.playbackIndex] = 1f;
				BGMController.instance.volsTar[BGMController.instance.playbackIndex] = 0f;
			}
			fadeOutTime = fade;
			fadeInTime = fade;
			isOverriding = true;
			lastMusic = currentMusic;
			currentMusic = nextMusic;
			AudioSource val = battleMusics[nextMusic];
			val.time = ((currentMusic >= beforeBattleBgmBeginNum) ? 0.3f : 0f);
			val.Play();
			val.loop = index2NameMap[currentMusic][0] == 'l';
			val.volume = 0f;
		}
	}

	public static void SetWaveFinished()
	{
		if (currentMusic >= 0 && currentMusic < musicCnt)
		{
			battleMusics[currentMusic].loop = false;
		}
		nextPlayFinishMusic = true;
	}

	public static void MuteGameOriBgm()
	{
		if (lastMusic < 0 && (Object)(object)BGMController.instance != (Object)null && BGMController.instance.musics != null && BGMController.HasBGM(BGMController.instance.playbackIndex))
		{
			BGMController.instance.fadeOutTimes[BGMController.instance.playbackIndex] = 0f;
			BGMController.instance.volsTar[BGMController.instance.playbackIndex] = 0f;
		}
	}

	public static bool atBarEnd(float time, float bpm)
	{
		float num = 60f / bpm * 4f;
		float num2 = time / num - (float)(int)(time / num);
		return num2 <= 0.02f || num2 >= num - 0.03f;
	}
}
internal class BattleProtos
{
	public static int pageBias;

	private static void RegisterString(string key, string enTrans, string cnTrans)
	{
		LocalizationModule.RegisterTranslation(key, enTrans, cnTrans, enTrans);
	}

	public static void AddProtos()
	{
		AddTutorialProtos();
		AddNormalProtos();
	}

	public static void AddNormalProtos()
	{
		//IL_00a1: Unknown result type (might be due to invalid IL or missing references)
		//IL_0128: Unknown result type (might be due to invalid IL or missing references)
		//IL_0175: Unknown result type (might be due to invalid IL or missing references)
		//IL_0189: Unknown result type (might be due to invalid IL or missing references)
		int num = (MoreMegaStructure.GenesisCompatibility ? (-200) : 0);
		int num2 = (MoreMegaStructure.GenesisCompatibility ? (-8) : 0);
		TechProto val = ProtoRegistry.RegisterTech(1999, "玻色子操控", "玻色子操控描述", "玻色子操控结论", "Assets/DSPBattle/bosontech", new int[0], new int[1] { 5201 }, new int[1] { 400 }, 72000L, new int[5]
		{
			573 + num,
			567 + num,
			568 + num,
			569 + num,
			566 + num
		}, new Vector2((float)(65 + num2), -7f));
		val.PreTechsImplicit = new int[1] { 1823 };
		val.IsHiddenTech = true;
		val.PreItem = new int[1] { 5201 };
		TechProto val2 = ProtoRegistry.RegisterTech(1998, "提供算力名称", "提供算力描述", "提供算力结论", "Assets/DSPBattle/rank10", new int[0], new int[1] { 6006 }, new int[1] { 2 }, 2997924580L, new int[0], new Vector2((float)(65 + num2), -11f));
		val2.PreTechsImplicit = new int[0];
		val2.IsHiddenTech = true;
		val2.PreItem = new int[1] { 9513 };
		ItemProto val3 = ProtoRegistry.RegisterItem(9513, "星河卫士奖章", "星河卫士奖章描述", "Assets/DSPBattle/rank10", 9998, 1, (EItemType)7, ProtoRegistry.GetDefaultIconDesc(Color.white, new Color(0.7f, 0.4f, 0.1f)));
		val3.UnlockKey = -2;
		ProtoRegistry.RegisterRecipe(382, (ERecipeType)1, 60, new int[1] { 1104 }, new int[1] { 2 }, new int[1] { 9513 }, new int[1] { 1 }, "星河卫视奖章描述", 0, 9998, "Assets/DSPBattle/rank10");
	}

	public static void AddTranslate()
	{
		RegisterString("轨道防御", "TCFV", "深空来敌");
		RegisterString("恒星炮gm2", "Star cannon", "恒星炮");
		RegisterString("水滴gm2", "Droplet", "水滴");
		RegisterString("即将到来gm", "Coming soon", "即将推出");
		RegisterString("恒星要塞", "Star Fortress", "恒星要塞");
		RegisterString("恒星要塞描述", "Plan additional defense modules on any mega structure to strengthen the defense capabilities of the star system, and the energy to support the star fortress comes entirely from the stars. This can also save a significant amount of planetary area.", "在任何巨构上规划额外的防御模块来强化星系的防御能力,支持恒星要塞的能量完全来自于恒星。这还能节约大量地表的可建造面积。");
		RegisterString("恒星要塞结论", "You have unlocked the star fortress.", "你解锁了武装巨构来构建恒星要塞的能力。");
		RegisterString("玻色子操控", "Boson control", "玻色子操控");
		RegisterString("玻色子操控描述", "Create powerful materials by manipulating various interacting forces.", "通过操控各种相互作用力来制造强大的材料。");
		RegisterString("玻色子操控结论", "You have unlocked the Boson control.", "你解锁了玻色子操控。");
		RegisterString("水滴科技描述", "A powerful Droplet controlled by the mecha.", "一个由机甲控制的强大水滴");
		RegisterString("水滴科技结论", "You have unlocked the Droplet.", "你解锁了水滴技术。");
		RegisterString("UI快捷键提示", "Press Backspace to hide/open this window. Press \"Ctrl\" + \"-\" to advance the attack time by 1 min.", "按下退格键开启或关闭此窗口,按下Ctrl+减号键使敌军进攻时间提前1分钟");
		RegisterString("快速开局", "Fast Start", "快速开局");
		RegisterString("mod版本信息", "Current version: " + Configs.versionString + "                Contact me in Discord: ckcz123#3576", "当前版本:" + Configs.versionString + "          欢迎加入mod交流群:" + Configs.qq);
		RegisterString("约gm", "about", "约");
		RegisterString("小时gm", "h", "小时");
		RegisterString("分gm", "m", "分");
		RegisterString("秒gm", "s", "秒");
		RegisterString("已歼灭gm", "Eliminated", "已歼灭");
		RegisterString("已产生gm", "Total", "已产生");
		RegisterString("占比gm", "Percentage", "占比");
		RegisterString("游戏提示gm", "Message", "游戏提示");
		RegisterString("gmRank0", "<color=#ffffff80>Icarus</color>", "<color=#ffffff80>伊卡洛斯</color>");
		RegisterString("gmRank1", "<color=#61d8ffb4>Explorer I</color>", "<color=#61d8ffb4>探索者 I</color>");
		RegisterString("gmRank2", "<color=#61d8ffb4>Explorer II</color>", "<color=#61d8ffb4>探索者 II</color>");
		RegisterString("gmRank3", "<color=#61d8ffb4>Explorer III</color>", "<color=#61d8ffb4>探索者 III</color>");
		RegisterString("gmRank4", "<color=#d238ffb4>Pioneer I</color>", "<color=#d238ffb4>开拓者 I</color>");
		RegisterString("gmRank5", "<color=#d238ffb4>Pioneer II</color>", "<color=#d238ffb4>开拓者 II</color>");
		RegisterString("gmRank6", "<color=#d238ffb4>Pioneer III</color>", "<color=#d238ffb4>开拓者 III</color>");
		RegisterString("gmRank7", "<color=#fd9620c0>Conqueror I</color>", "<color=#fd9620c0>征服者 I</color>");
		RegisterString("gmRank8", "<color=#fd9620c0>Conqueror II</color>", "<color=#fd9620c0>征服者 II</color>");
		RegisterString("gmRank9", "<color=#fd9620c0>Conqueror III</color>", "<color=#fd9620c0>征服者 III</color>");
		RegisterString("gmRank10", "<color=#ffc620c8>Galaxy Guardian</color>", "<color=#ffc620da>星河卫士</color>");
		RegisterString("gmRankNoColor0", "Icarus", "伊卡洛斯");
		RegisterString("gmRankNoColor1", "Explorer I", "探索者 I");
		RegisterString("gmRankNoColor2", "Explorer II", "探索者 II");
		RegisterString("gmRankNoColor3", "Explorer III", "探索者 III");
		RegisterString("gmRankNoColor4", "Pioneer I", "开拓者 I");
		RegisterString("gmRankNoColor5", "Pioneer II", "开拓者 II");
		RegisterString("gmRankNoColor6", "Pioneer III", "开拓者 III");
		RegisterString("gmRankNoColor7", "Conqueror I", "征服者 I");
		RegisterString("gmRankNoColor8", "Conqueror II", "征服者 II");
		RegisterString("gmRankNoColor9", "Conqueror III", "征服者 III");
		RegisterString("gmRankNoColor10", "Galaxy Guardian", "星河卫士");
		RegisterString("gmRankUnlockText0", "", "");
		RegisterString("gmRankUnlockText1", "Enhanced core energy generation", "获得额外的核心发电");
		RegisterString("gmRankUnlockText2", "Energy shield gains 25% damage reduction", "能量盾获得25%伤害减免");
		RegisterString("gmRankUnlockText3", "Walk speed increases", "步行移动速度增加");
		RegisterString("gmRankUnlockText4", "Ore loss per mining operation -20%", "采矿消耗 -20%");
		RegisterString("gmRankUnlockText5", "EM effect +20%", "电磁武器效果 +20%");
		RegisterString("gmRankUnlockText6", "Droplets can quickly approach distant target", "水滴能够快速接近远距离的目标");
		RegisterString("gmRankUnlockText7", "Ore loss per mining operation -20%", "采矿消耗 -20%");
		RegisterString("gmRankUnlockText8", "Star cannon charging speed +50%", "恒星炮充能速度 +50%");
		RegisterString("gmRankUnlockText9", "Droplet damage +100%", "水滴伤害 +100%");
		RegisterString("gmRankUnlockText10", "Ore loss per mining operation -40%", "采矿消耗 -40%");
		RegisterString("gmRankUnlockText10Add", "You are allowed to provide computing power to the COSMO Technology Ethics Committee in exchange for merit points", "你被允许向COSMO技术伦理委员会提供算力以换取功勋点数");
		RegisterString("gmRankReward1", "Core power generation +1 MW", "核心发电 +1MW");
		RegisterString("gmRankReward2", "Energy shield damage reduction +25%", "能量盾伤害减免 +25%");
		RegisterString("gmRankReward3", "Walk speed +4 m/s", "步行移动速度 +4 m/s");
		RegisterString("gmRankReward4", "Ore loss per mining operation -20%", "采矿消耗 -20%");
		RegisterString("gmRankReward5", "EM effect +20%", "电磁武器效果 +20%");
		RegisterString("gmRankReward6", "Droplets can quickly approach distant target", "水滴能够快速接近远距离的目标");
		RegisterString("gmRankReward7", "Ore loss per mining operation -40%", "采矿消耗 -40%");
		RegisterString("gmRankReward8", "Star cannon charging speed +50%", "恒星炮充能速度 +50%");
		RegisterString("gmRankReward9", "Droplet damage +100%", "水滴伤害 +100%");
		RegisterString("gmRankReward10", "Ore loss per mining operation  -80%", "采矿消耗 -80%");
		RegisterString("功勋阶级", "Merit Rank", "功勋阶级");
		RegisterString("当前阶级", "Current Rank", "当前等级");
		RegisterString("功勋点数", "Merit points", "功勋点数");
		RegisterString("已解锁gm", "Unlocked", "已解锁");
		RegisterString("下一功勋等级解锁", "Next rank unlocked", "下一功勋等级解锁");
		RegisterString("剩余复活币", "Resurrection Coin", "剩余复活币");
		RegisterString("真实伤害已启用", "❈ True damage activated", "❈真实伤害已启用");
		RegisterString("伤害类型特殊", " (Special)", " (特殊)");
		RegisterString("护盾承受伤害", "Shield damage taken", "护盾承受伤害");
		RegisterString("护盾造成伤害", "Shield damage dealed", "护盾造成伤害");
		RegisterString("护盾伤害减免与规避", "Shield dmg. alleviated / evaded", "护盾减免和规避伤害");
		RegisterString("护盾战时回复", "Shield restored", "护盾战时回复");
		RegisterString("水滴伤害", "Droplet damage", "水滴伤害");
		RegisterString("最小发射能量", "Launch Energy Threshold", "发射能量阈值");
		RegisterString("水滴发射耗能", "Launch Consumption", "发射耗能");
		RegisterString("水滴工作功率", "Work Consumption", "工作功率");
		RegisterString("巨构伤害", "Megastructure damage", "巨构伤害");
		RegisterString("恒星要塞导弹伤害", "StarFortress Missile dmg.", "恒星要塞导弹伤害");
		RegisterString("恒星要塞光矛伤害", "StarFortress LightSpear dmg.", "恒星要塞光矛伤害");
		RegisterString("物质解压器科技描述", "Decoding a method from the alien matrices to build a Matter Decompressor.", "从异星矩阵中解码建造物质解压器的方法。");
		RegisterString("科学枢纽科技描述", "Decoding a method from the alien matrices to build a Science Nexus.", "从异星矩阵中解码建造科学枢纽的方法。");
		RegisterString("折跃场广播阵列科技描述", "Decoding a method from the alien matrices to build a Warp Field Broadcast Array.", "从异星矩阵中解码建造折跃场广播阵列的方法。");
		RegisterString("星际组装厂科技描述", "Decoding a method from the alien matrices to build an Interstellar Assembly.", "从异星矩阵中解码建造星际组装厂的方法。");
		RegisterString("晶体重构器科技描述", "Decoding a method from the alien matrices to build a Crystal Reconstructor.", "从异星矩阵中解码建造晶体重构器的方法。");
		RegisterString("物质解压器科技结论", "You have successfully decoded the blueprint of Matter decompressor carrier rocket.", "你成功解码了物质解压器运载火箭的制造蓝图。");
		RegisterString("科学枢纽科技结论", "You have successfully decoded the blueprint of Science nexus carrier rocket.", "你成功解码了科学枢纽运载火箭的制造蓝图。");
		RegisterString("折跃场广播阵列科技结论", "You have successfully decoded the blueprint of Resonant generator carrier rocket.", "你成功解码了谐振发射器运载火箭的制造蓝图。");
		RegisterString("星际组装厂科技结论", "You have successfully decoded the blueprint of Interstellar assembly component and its carrier rocket.", "你成功解码了星际组装厂组件和运载火箭的制造蓝图。");
		RegisterString("晶体重构器科技结论", "You have successfully decoded the blueprint of Crystal reconstructor carrier rocket.", "你成功解码了晶体重构器运载火箭的制造蓝图。");
		RegisterString("多功能集成组件描述gm2", "The high level of integration makes it possible to quickly assemble a variety of production building and logistics components, while occupying very little space. Can only be produced in megastructure <color=#c2853d>Interstellar assembly</color>.", "超高集成度使其可以迅速地组装成多种生产建筑和物流组件,却仅占用极小的空间。仅能在巨构<color=#c2853d>星际组装厂</color>中制作。");
		RegisterString("被深空来敌mod禁止", "Banned by mod They Come From Void", "被深空来敌mod禁止");
		RegisterString("发现异星圣物", "Meta-drive Interpretation Complete", "元驱动解译完毕");
		RegisterString("解译异星圣物提示", "Select one decoding track from the following three to finish the interpret procedure and enable the meta drive.\nYou can use dark fog matrix to seek new decoding track with different effects.", "从以下三个亚稳态解码轨中选取一个,并完成解译的最后阶段,从而启用该元驱动。\n可以使用黑雾矩阵重随解码轨来发现新的可用效果。");
		RegisterString("重新随机", "Roll", "重新随机");
		RegisterString("重新随机可以长", "Re-roll", "重新随机");
		RegisterString("免费", "free", "免费");
		RegisterString("移除遗物", "Remove", "移除");
		RegisterString("放弃解译", "   Abort This           +", "放弃解译         +");
		RegisterString("放弃解译居中", "Abort Interpret", "放弃解译");
		RegisterString("删除遗物名称", "Remove Meta Drive", "移除元驱动");
		RegisterString("删除遗物描述", "Randomly remove a [common] meta-drive, and return the slot occupied by the meta-drive. \nIf there is no [common] meta-drive, then randomly remove a [rare] meta-drive.", "随机移除一个已拥有的[普通]稀有度的元驱动,并返还该元驱动所占用的元驱动槽位\n如果没有[普通]元驱动,则随机移除一个已拥有的[稀有]元驱动");
		RegisterString("删除遗物确认标题", "Confirm Remove Meta Drive", "确认移除元驱动");
		RegisterString("删除遗物确认警告", "This will remove {0} and return the slot occupied by the meta drive!", "这将移除圣物 {0},并返还该圣物所占用的圣物槽位!");
		RegisterString("成功移除!", "Meta drive removed", "成功移除元驱动");
		RegisterString("已移除遗物描述", "You've removed meta drive ", "你已移除");
		RegisterString("未能移除!", "No mate drive can be removed", "没有可移除的元驱动");
		RegisterString("未能移除遗物描述", "No matched meta drive can be removed", "你没有稀有度匹配的元驱动可供移除");
		RegisterString("未获取遗物标题", "Unknown mata drive", "未知元驱动");
		RegisterString("未获取遗物描述", "This slot can place a decrypted meta drive", "此位置可供已解译的元驱动放置");
		RegisterString("水滴伤害增加", "Droplet Bonus Damage", "水滴额外伤害");
		RegisterString("当前加成gm", "Current bonus damage", "当前伤害加成");
		RegisterString("已充能gm", "Charged", "已充能");
		RegisterString("女神之怒充能中", "Wrath of Goddess Charging", "女神之怒充能中");
		RegisterString("女神之怒", "† Wrath of Goddess †", "† 女神之怒 †");
		RegisterString("圣物稀有度0", "<color=#d2853d>Mensural</color>", "<color=#d2853d>定律级</color>");
		RegisterString("圣物稀有度1", "<color=#9040d0>Framed</color>", "<color=#9040d0>框架级</color>");
		RegisterString("圣物稀有度2", "<color=#2080d0>Packaged</color>", "<color=#2080d0>封装级</color>");
		RegisterString("圣物稀有度3", "<color=#30b530>Regular</color>", "<color=#30b530>常规级</color>");
		RegisterString("圣物稀有度4", "<color=#00c560>Axiomatic</color>", "<color=#00c560>公理级</color>");
		RegisterString("诅咒", "Editing Universal Axioms", "编辑宇宙公理");
		RegisterString("诅咒描述", "Attempting to touch and edit Cosmological Axioms is extremely dangerous, every time you enable an axiomatic level meta-drive, the disrupted Cosmological Axioms will cause the Dark Fog units to gain 50% extra experience and 5% damage resistence.\nYou can not remove an axiomatic meta drive once you enable it.\n\nNegative effect: ", "尝试触碰并编辑宇宙公理是极其危险的,你每启用一个公理级的元驱动,被扰乱的宇宙公理会使黑雾单位获得的经验+50%,以及5%伤害抵抗。\n公理级元驱动无法被移除。\n\n负面效果:");
		RegisterString("诅咒描述独立", "Axiomatic meta drives have different <color=#d00000>negative effects</color>. Besides, for each axiomatic meta drive you have, dark fog units gain 50% extra experience, and 5% damage resistence.\nYou can not remove an axiomatic meta drive once you enable it.", "公理级元驱动均具有各不相同的<color=#d00000>负面效果</color>,且你每拥有一个公理级元驱动,所有黑雾单位获得50%经验获取加成,以及5%伤害抵抗。\n公理级元驱动无法被移除。");
		RegisterString("诅咒描述短", "This meta drive can not be removed.\nDark fog units experience +50%, damage resistence +5%. ", "此元驱动无法被移除\n黑雾单位经验获取+50%,伤害抵抗+5%。");
		RegisterString("负面效果警告", "<color=#ff0000>Warning! This meta drive has negative effect!</color>", "<color=#ff0000>警告!此元驱动具有负面效果!</color>");
		RegisterString("已记载", "Recorded: ", "已记载:");
		RegisterString("遗物名称0-0", "Swallower\n<size=18>- Mensural -</size>", "吞噬者\n<size=18>- 定律级 -</size>");
		RegisterString("遗物名称0-1", "Blue Buff\n<size=18>- Mensural -</size>", "蓝buff\n<size=18>- 定律级 -</size>");
		RegisterString("遗物名称0-2", "Tear of the Goddess\n<size=18>- Mensural -</size>", "女神之泪\n<size=18>- 定律级 -</size>");
		RegisterString("遗物名称0-3", "The Eternal Ring\n<size=18>- Mensural -</size>", "永恒之环\n<size=18>- 定律级 -</size>");
		RegisterString("遗物名称0-4", "Widowmaker\n<size=18>- Mensural -</size>", "黑百合\n<size=18>- 定律级 -</size>");
		RegisterString("遗物名称0-5", "Thornmail\n<size=18>- Mensural -</size>", "虚空荆棘\n<size=18>- 定律级 -</size>");
		RegisterString("遗物名称0-6", "Stars Seal\n<size=18>- Mensural -</size>", "星辰封印\n<size=18>- 定律级 -</size>");
		RegisterString("遗物名称0-7", "Tearing Field\n<size=18>- Mensural -</size>", "撕裂力场\n<size=18>- 定律级 -</size>");
		RegisterString("遗物名称0-8", "Void Impact\n<size=18>- Mensural -</size>", "虚空冲击\n<size=18>- 定律级 -</size>");
		RegisterString("遗物名称0-9", "Holy ****?! Spatula!\n<size=18>- Mensural -</size>", "我超!铲!\n<size=18>- 定律级 -</size>");
		RegisterString("遗物名称0-10", "Energy Siphon\n<size=18>- Mensural -</size>", "能量虹吸\n<size=18>- 定律级 -</size>");
		RegisterString("遗物名称1-0", "Triumph\n<size=18>- Framed -</size>", "凯旋\n<size=18>- 框架级 -</size>");
		RegisterString("遗物名称1-1", "Energy Cycle\n<size=18>- Framed -</size>", "能量循环\n<size=18>- 框架级 -</size>");
		RegisterString("遗物名称1-2", "Power Surge\n<size=18>- Framed -</size>", "能量涌动\n<size=18>- 框架级 -</size>");
		RegisterString("遗物名称1-3", "Vigilance Space\n<size=18>- Framed -</size>", "敌对海域\n<size=18>- 框架级 -</size>");
		RegisterString("遗物名称1-4", "3\n<size=18>- Framed -</size>", "三体\n<size=18>- 框架级 -</size>");
		RegisterString("遗物名称1-5", "Echo II\n<size=18>- Framed -</size>", "回声 II\n<size=18>- 框架级 -</size>");
		RegisterString("遗物名称1-6", "Energy Burst\n<size=18>- Framed -</size>", "能量迸发\n<size=18>- 框架级 -</size>");
		RegisterString("遗物名称1-7", "Activated Carbon II\n<size=18>- Framed -</size>", "活性炭 II\n<size=18>- 框架级 -</size>");
		RegisterString("遗物名称1-8", "Banshee's Veil\n<size=18>- Framed -</size>", "女妖面纱\n<size=18>- 框架级 -</size>");
		RegisterString("遗物名称1-9", "Knight's Vow\n<size=18>- Framed -</size>", "骑士之誓\n<size=18>- 框架级 -</size>");
		RegisterString("遗物名称1-10", "True Damage\n<size=18>- Framed -</size>", "真实伤害\n<size=18>- 框架级 -</size>");
		RegisterString("遗物名称1-11", "Frozen Tomb\n<size=18>- Framed -</size>", "冰封陵墓\n<size=18>- 框架级 -</size>");
		RegisterString("遗物名称2-0", "Super Charger\n<size=18>- Packaged -</size>", "超充能器\n<size=18>- 封装级 -</size>");
		RegisterString("遗物名称2-1", "Honorary Promotion\n<size=18>- Packaged -</size>", "荣誉晋升\n<size=18>- 封装级 -</size>");
		RegisterString("遗物名称2-2", "Not Lose\n<size=18>- Packaged -</size>", "极限一换一\n<size=18>- 封装级 -</size>");
		RegisterString("遗物名称2-3", "Echo I\n<size=18>- Packaged -</size>", "回声 I\n<size=18>- 封装级 -</size>");
		RegisterString("遗物名称2-4", "Hyyyydrogen!\n<size=18>- Packaged -</size>", "听说有人缺氢\n<size=18>- 封装级 -</size>");
		RegisterString("遗物名称2-5", "Hyperactivity II\n<size=18>- Packaged -</size>", "多动症 II\n<size=18>- 封装级 -</size>");
		RegisterString("遗物名称2-6", "Swift Seeker\n<size=18>- Packaged -</size>", "高效索敌\n<size=18>- 封装级 -</size>");
		RegisterString("遗物名称2-7", "Foe\n<size=18>- Packaged -</size>", "仇敌\n<size=18>- 封装级 -</size>");
		RegisterString("遗物名称2-8", "Diraac Invrsooon\n<size=18>- Packaged -</size>", "狄拉克辶辶变\n<size=18>- 封装级 -</size>");
		RegisterString("遗物名称2-9", "Light Saver II\n<size=18>- Packaged -</size>", "聚能环 II\n<size=18>- 封装级 -</size>");
		RegisterString("遗物名称2-10", "Matrix Charging\n<size=18>- Packaged -</size>", "矩阵充能\n<size=18>- 封装级 -</size>");
		RegisterString("遗物名称2-11", "By-product Refining\n<size=18>- Packaged -</size>", "副产物提炼\n<size=18>- 封装级 -</size>");
		RegisterString("遗物名称2-12", "Last Breath\n<size=18>- Packaged -</size>", "强攻\n<size=18>- 封装级 -</size>");
		RegisterString("遗物名称2-13", "Infinity Edge\n<size=18>- Packaged -</size>", "无尽之刃\n<size=18>- 封装级 -</size>");
		RegisterString("遗物名称2-14", "Kleptomancy\n<size=18>- Packaged -</size>", "行窃预兆\n<size=18>- 封装级 -</size>");
		RegisterString("遗物名称2-15", "Void Burst\n<size=18>- Packaged -</size>", "虚空爆发\n<size=18>- 封装级 -</size>");
		RegisterString("遗物名称2-16", "Hardened Shield\n<size=18>- Packaged -</size>", "刚毅护盾\n<size=18>- 封装级 -</size>");
		RegisterString("遗物名称2-17", "Aegis of the Immortal\n<size=18>- Packaged -</size>", "不朽之守护\n<size=18>- 封装级 -</size>");
		RegisterString("遗物名称3-0", "Inferior Processing\n<size=18>- Regular -</size>", "劣质加工\n<size=18>- 常规级 -</size>");
		RegisterString("遗物名称3-1", "Spelltheif's Edge\n<size=18>- Regular -</size>", "窃法之刃\n<size=18>- 常规级 -</size>");
		RegisterString("遗物名称3-2", "Ark Reactor\n<size=18>- Regular -</size>", "方舟反应堆\n<size=18>- 常规级 -</size>");
		RegisterString("遗物名称3-3", "Shepherd of Souls\n<size=18>- Regular -</size>", "掘墓人\n<size=18>- 常规级 -</size>");
		RegisterString("遗物名称3-4", "Ctrl 6\n<size=18>- Regular -</size>", "装\n<size=18>- 常规级 -</size>");
		RegisterString("遗物名称3-5", "Resurrection Coin\n<size=18>- Regular -</size>", "复活币\n<size=18>- 常规级 -</size>");
		RegisterString("遗物名称3-6", "Upload\n<size=18>- Regular -</size>", "上传\n<size=18>- 常规级 -</size>");
		RegisterString("遗物名称3-7", "Void Refraction\n<size=18>- Regular -</size>", "虚空折射\n<size=18>- 常规级 -</size>");
		RegisterString("遗物名称3-8", "Matrix Rain\n<size=18>- Regular -</size>", "矩阵雨\n<size=18>- 常规级 -</size>");
		RegisterString("遗物名称3-9", "Tanking\n<size=18>- Regular -</size>", "开摆\n<size=18>- 常规级 -</size>");
		RegisterString("遗物名称3-10", "Hyperactivity I\n<size=18>- Regular -</size>", "多动症 I\n<size=18>- 常规级 -</size>");
		RegisterString("遗物名称3-11", "Activated Carbon I\n<size=18>- Regular -</size>", "活性炭 I\n<size=18>- 常规级 -</size>");
		RegisterString("遗物名称3-12", "Dynamic Giant\n<size=18>- Regular -</size>", "灵动巨物\n<size=18>- 常规级 -</size>");
		RegisterString("遗物名称3-13", "Light Saver I\n<size=18>- Regular -</size>", "聚能环 I\n<size=18>- 常规级 -</size>");
		RegisterString("遗物名称3-14", "Lovely motor\n<size=18>- Regular -</size>", "阳间马达\n<size=18>- 常规级 -</size>");
		RegisterString("遗物名称3-15", "Super Mind\n<size=18>- Regular -</size>", "超级大脑\n<size=18>- 常规级 -</size>");
		RegisterString("遗物名称3-16", "Void Lens\n<size=18>- Regular -</size>", "虚空棱镜\n<size=18>- 常规级 -</size>");
		RegisterString("遗物名称3-17", "Level Up!\n<size=18>- Regular -</size>", "升级咯!\n<size=18>- 常规级 -</size>");
		RegisterString("遗物名称4-0", "The Weaver\n<size=18>- Axiomatic -</size>", "编织者\n<size=18>- 公理级 -</size>");
		RegisterString("遗物名称4-1", "Contract of Misfortune\n<size=18>- Axiomatic -</size>", "厄运契约\n<size=18>- 公理级 -</size>");
		RegisterString("遗物名称4-2", "Crown of Rule\n<size=18>- Axiomatic -</size>", "统治之冠\n<size=18>- 公理级 -</size>");
		RegisterString("遗物名称4-3", "Precision Echo\n<size=18>- Axiomatic -</size>", "精密回响\n<size=18>- 公理级 -</size>");
		RegisterString("遗物名称4-4", "Enlightenment Echo\n<size=18>- Axiomatic -</size>", "启迪回响\n<size=18>- 公理级 -</size>");
		RegisterString("遗物名称4-5", "Aftershock Echo\n<size=18>- Axiomatic -</size>", "余震回响\n<size=18>- 公理级 -</size>");
		RegisterString("遗物名称4-6", "Rune Book\n<size=18>- Axiomatic -</size>", "符文之书\n<size=18>- 公理级 -</size>");
		RegisterString("遗物名称带颜色0-0", "<color=#d2853d>Swallower  [Mensural]</color>", "<color=#d2853d>吞噬者  [定律级]</color>");
		RegisterString("遗物名称带颜色0-1", "<color=#d2853d>Blue Buff  [Mensural]</color>", "<color=#d2853d>蓝buff  [定律级]</color>");
		RegisterString("遗物名称带颜色0-2", "<color=#d2853d>Tear of the Goddess  [Mensural]</color> ", "<color=#d2853d>女神之泪  [定律级]</color>");
		RegisterString("遗物名称带颜色0-3", "<color=#d2853d>The Eternal Ring  [Mensural]</color>", "<color=#d2853d>永恒之环  [定律级]</color>");
		RegisterString("遗物名称带颜色0-4", "<color=#d2853d>Widowmaker  [Mensural]</color>", "<color=#d2853d>黑百合  [定律级]</color>");
		RegisterString("遗物名称带颜色0-5", "<color=#d2853d>Thornmail  [Mensural]</color>", "<color=#d2853d>虚空荆棘  [定律级]</color>");
		RegisterString("遗物名称带颜色0-6", "<color=#d2853d>Stars Seal  [Mensural]</color>", "<color=#d2853d>星辰封印  [定律级]</color>");
		RegisterString("遗物名称带颜色0-7", "<color=#d2853d>Tearing Field  [Mensural]</color>", "<color=#d2853d>撕裂力场  [定律级]</color>");
		RegisterString("遗物名称带颜色0-8", "<color=#d2853d>Void Impact  [Mensural]</color>", "<color=#d2853d>虚空冲击  [定律级]</color>");
		RegisterString("遗物名称带颜色0-9", "<color=#d2853d>Holy ****?! Spatula!  [Mensural]</color>", "<color=#d2853d>我超!铲!  [定律级]</color>");
		RegisterString("遗物名称带颜色0-10", "<color=#d2853d>Energy Siphon  [Mensural]</color>", "<color=#d2853d>能量虹吸  [定律级]</color>");
		RegisterString("遗物名称带颜色1-0", "<color=#9040d0>Triumph  [Framed]</color>", "<color=#9040d0>凯旋  [框架级]</color>");
		RegisterString("遗物名称带颜色1-1", "<color=#9040d0>Energy Cycle  [Framed]</color>", "<color=#9040d0>能量循环  [框架级]</color>");
		RegisterString("遗物名称带颜色1-2", "<color=#9040d0>Power Surge  [Framed]</color>", "<color=#9040d0>能量涌动  [框架级]</color>");
		RegisterString("遗物名称带颜色1-3", "<color=#9040d0>Vigilance Space  [Framed]</color>", "<color=#9040d0>敌对海域  [框架级]</color>");
		RegisterString("遗物名称带颜色1-4", "<color=#9040d0>3  [Framed]</color>", "<color=#9040d0>三体  [框架级]</color>");
		RegisterString("遗物名称带颜色1-5", "<color=#9040d0>Echo II  [Framed]</color>", "<color=#9040d0>回声 II  [框架级]</color>");
		RegisterString("遗物名称带颜色1-6", "<color=#9040d0>Energy Burst  [Framed]</color>", "<color=#9040d0>能量迸发  [框架级]</color>");
		RegisterString("遗物名称带颜色1-7", "<color=#9040d0>Activated Carbon II  [Framed]</color>", "<color=#9040d0>活性炭 II  [框架级]</color>");
		RegisterString("遗物名称带颜色1-8", "<color=#9040d0>Banshee's Veil  [Framed]</color>", "<color=#9040d0>女妖面纱  [框架级]</color>");
		RegisterString("遗物名称带颜色1-9", "<color=#9040d0>Knight's Vow  [Framed]</color>", "<color=#9040d0>骑士之誓  [框架级]</color>");
		RegisterString("遗物名称带颜色1-10", "<color=#9040d0>True Damage  [Framed]</color>", "<color=#9040d0>真实伤害  [框架级]</color>");
		RegisterString("遗物名称带颜色1-11", "<color=#9040d0>Frozen Tomb  [Framed]</color>", "<color=#9040d0>冰封陵墓  [框架级]</color>");
		RegisterString("遗物名称带颜色2-0", "<color=#2080d0>Super Charger  [Packaged]</color>", "<color=#2080d0>超充能器  [封装级]</color>");
		RegisterString("遗物名称带颜色2-1", "<color=#2080d0>Honorary Promotion  [Packaged]</color>", "<color=#2080d0>荣誉晋升  [封装级]</color>");
		RegisterString("遗物名称带颜色2-2", "<color=#2080d0>Not Lose  [Packaged]</color>", "<color=#2080d0>极限一换一  [封装级]</color>");
		RegisterString("遗物名称带颜色2-3", "<color=#2080d0>Echo I  [Packaged]</color>", "<color=#2080d0>回声 I  [封装级]</color>");
		RegisterString("遗物名称带颜色2-4", "<color=#2080d0>Hyyyydrogen!  [Packaged]</color>", "<color=#2080d0>听说有人缺氢  [封装级]</color>");
		RegisterString("遗物名称带颜色2-5", "<color=#2080d0>Hyperactivity II  [Packaged]</color>", "<color=#2080d0>多动症 II  [封装级]</color>");
		RegisterString("遗物名称带颜色2-6", "<color=#2080d0>Swift Seeker  [Packaged]</color>", "<color=#2080d0>高效索敌  [封装级]</color>");
		RegisterString("遗物名称带颜色2-7", "<color=#2080d0>Foe  [Packaged]</color>", "<color=#2080d0>仇敌  [封装级]</color>");
		RegisterString("遗物名称带颜色2-8", "<color=#2080d0>Diraac Invrsooon  [Packaged]</color>", "<color=#2080d0>狄拉克辶辶变  [封装级]</color>");
		RegisterString("遗物名称带颜色2-9", "<color=#2080d0>Light Saver II  [Packaged]</color>", "<color=#2080d0>聚能环 II  [封装级]</color>");
		RegisterString("遗物名称带颜色2-10", "<color=#2080d0>Matrix Charging  [Packaged]</color>", "<color=#2080d0>矩阵充能  [封装级]</color>");
		RegisterString("遗物名称带颜色2-11", "<color=#2080d0>By-product Refining  [Packaged]</color>", "<color=#2080d0>副产物提炼  [封装级]</color>");
		RegisterString("遗物名称带颜色2-12", "<color=#2080d0>Last Breath  [Packaged]</color>", "<color=#2080d0>强攻  [封装级]</color>");
		RegisterString("遗物名称带颜色2-13", "<color=#2080d0>Infinity Edge  [Packaged]</color>", "<color=#2080d0>无尽之刃  [封装级]</color>");
		RegisterString("遗物名称带颜色2-14", "<color=#2080d0>Kleptomancy  [Packaged]</color>", "<color=#2080d0>行窃预兆  [封装级]</color>");
		RegisterString("遗物名称带颜色2-15", "<color=#2080d0>Gravitational Fragmentation  [Packaged -<size>", "<color=#2080d0>引力碎裂  [封装级]</color>");
		RegisterString("遗物名称带颜色2-16", "<color=#2080d0>Hardened Shield  [Packaged]</color>", "<color=#2080d0>刚毅护盾  [封装级]</color>");
		RegisterString("遗物名称带颜色2-17", "<color=#2080d0>Aegis of the Immortal  [Packaged]</color>", "<color=#2080d0>不朽之守护  [封装级]</color>");
		RegisterString("遗物名称带颜色3-0", "<color=#30b530>Inferior processing  [Regular]</color>", "<color=#30b530>劣质加工  [常规级]</color>");
		RegisterString("遗物名称带颜色3-1", "<color=#30b530>Spelltheif's Edge  [Regular]</color>", "<color=#30b530>窃法之刃  [常规级]</color>");
		RegisterString("遗物名称带颜色3-2", "<color=#30b530>Ark Reactor  [Regular]</color>", "<color=#30b530>方舟反应堆  [常规级]</color>");
		RegisterString("遗物名称带颜色3-3", "<color=#30b530>Shepherd of souls  [Regular]</color>", "<color=#30b530>掘墓人  [常规级]</color>");
		RegisterString("遗物名称带颜色3-4", "<color=#30b530>Ctrl 6  [Regular]</color>", "<color=#30b530>装  [常规级]</color>");
		RegisterString("遗物名称带颜色3-5", "<color=#30b530>Resurrection Coin  [Regular]</color>", "<color=#30b530>复活币  [常规级]</color>");
		RegisterString("遗物名称带颜色3-6", "<color=#30b530>Upload  [Regular]</color>", "<color=#30b530>上传  [常规级]</color>");
		RegisterString("遗物名称带颜色3-7", "<color=#30b530>Void Refraction  [Regular]</color>", "<color=#30b530>虚空折射  [常规级]</color>");
		RegisterString("遗物名称带颜色3-8", "<color=#30b530>Matrix Rain  [Regular]</color>", "<color=#30b530>矩阵雨  [常规级]</color>");
		RegisterString("遗物名称带颜色3-9", "<color=#30b530>Tanking  [Regular]</color>", "<color=#30b530>开摆  [常规级]</color>");
		RegisterString("遗物名称带颜色3-10", "<color=#30b530>Hyperactivity I  [Regular]</color>", "<color=#30b530>多动症 I  [常规级]</color>");
		RegisterString("遗物名称带颜色3-11", "<color=#30b530>Activated Carbon I  [Regular]</color>", "<color=#30b530>活性炭 I  [常规级]</color>");
		RegisterString("遗物名称带颜色3-12", "<color=#30b530>Dynamic Giant  [Regular]</color>", "<color=#30b530>灵动巨物  [常规级]</color>");
		RegisterString("遗物名称带颜色3-13", "<color=#30b530>Light Saver I  [Regular]</color>", "<color=#30b530>聚能环 I  [常规级]</color>");
		RegisterString("遗物名称带颜色3-14", "<color=#30b530>Lovely motor  [Regular]</color>", "<color=#30b530>阳间马达  [常规级]</color>");
		RegisterString("遗物名称带颜色3-15", "<color=#30b530>Super Mind  [Regular]</color>", "<color=#30b530>超级大脑  [常规级]</color>");
		RegisterString("遗物名称带颜色3-16", "<color=#30b530>Void Lens  [Regular]</color>", "<color=#30b530>虚空棱镜  [常规级]</color>");
		RegisterString("遗物名称带颜色3-17", "<color=#30b530>Level Up!  [Regular]</color>", "<color=#30b530>升级咯!  [常规级]</color>");
		RegisterString("遗物名称带颜色4-0", "<color=#00c560>The Weaver  [Axiomatic]</color>", "<color=#00c560>编织者  [公理级]</color>");
		RegisterString("遗物名称带颜色4-1", "<color=#00c560>Contract of Misfortune [Axiomatic]</color>", "<color=#00c560>厄运契约  [公理级]</color>");
		RegisterString("遗物名称带颜色4-2", "<color=#00c560>Crown of Rule  [Axiomatic]</color>", "<color=#00c560>统治之冠  [公理级]</color>");
		RegisterString("遗物名称带颜色4-3", "<color=#00c560>Fatal Echo  [Axiomatic]</color>", "<color=#00c560>精密回响  [公理级]</color>");
		RegisterString("遗物名称带颜色4-4", "<color=#00c560>Enlightenment Echo  [Axiomatic]</color>", "<color=#00c560>启迪回响  [公理级]</color>");
		RegisterString("遗物名称带颜色4-5", "<color=#00c560>Aftershock Echo  [Axiomatic]</color>", "<color=#00c560>余震回响  [公理级]</color>");
		RegisterString("遗物名称带颜色4-6", "<color=#00c560>Rune Book  [Axiomatic]</color>", "<color=#00c560>符文之书  [公理级]</color>");
		RegisterString("遗物描述0-0", "Each time a certain number of dark fog units are killed, a random mega structure will be partially auto-constructed", "每击杀一定数量的黑雾单位,略微推进随机星系的巨构的建造进度");
		RegisterString("遗物描述0-1", "When assembling recipes with at least 2 different materials (except when assembling antimatter fuel rods) in assembling machine or Star Assembly, every time a product is produced, one material in the first slot will be returned.", "制造厂和星际组装厂在制造原材料至少2种的配方时(反物质燃料棒的产线除外),每产出1个产物,会返还1个第1位置的原材料");
		RegisterString("遗物描述0-2", "When the sorter picks products from smelter, assembling machines, chemical plants, or particle colliders, spray them with proliferator Mk.III for free", "分拣器从熔炉、制造台、化工厂和粒子对撞机取出产物时,为他们免费喷涂三级增产剂");
		RegisterString("遗物描述0-3", "When calculating the energy level, the giant structure is regarded as a higher star luminosity", "巨构在计算能量水平时,视作拥有更高的恒星光度修正");
		RegisterString("遗物描述0-4", "The ray receiver does not need to consume the lens to achieve the maximum output efficiency, and it will no longer be blocked at night", "射线接受器无需消耗透镜即可达到最大输出效率,且不再因背向恒星影响接收效率");
		RegisterString("遗物描述0-5", "Planetary shield and Icarus' Energy Shield gain 10% damage reduction, and they return all reduced or avoided damage to the attacker as <i>additional damage</i>", "行星护盾和伊卡洛斯的能量盾获得10%伤害减免,且它们会将所有被减免或被规避的伤害全额回敬给攻击者作为<i>额外伤害</i>");
		RegisterString("遗物描述0-6", "Each time a turret uses an ammo set to reload, do free reloading and prevent the ammo set consumption", "所有防御设施的每次消耗弹药组装填时,进行免费装填而阻止消耗弹药组");
		RegisterString("遗物描述0-7", "The star system with a megastructure will deal damage (considered as <i>additional damage</i>) to all activated dark fog space ships in the star system, higher energy the megastucture generates, higher the damage it deals", "拥有巨构的星系在战斗时每秒会对星系中所有已激活的太空黑雾舰队造成伤害(视为<i>额外伤害</i>),伤害取决于巨构的能量水平");
		RegisterString("遗物描述0-8", "When enemies are interfered by non-Icarus-throwing jamming capsules, they take 20 <i>additional damage</i>. Take 30 if it is suppresing capsules", "非投掷的干扰胶囊造成电磁干扰时,对所有命中目标造成20<i>额外伤害</i>,压制胶囊则转而造成30<i>额外伤害</i>");
		RegisterString("遗物描述0-9", "It must do something...", "它必须做点什么...");
		RegisterString("遗物描述0-9实际", "You have a higher probability of getting rarer meta drives. If the first judgment fails with any probability from other meta drives, it can be judged again. And the hidden effects...", "你有更高的可能性获取更稀有的元驱动。任何概率初次判定失败时,可以再判定一次。以及隐藏效果...");
		RegisterString("遗物描述0-10", "Every time a droplet destroys an enemy, restores 2MJ power to the Mecha, and all droplets permanently obtain 10 <i>additional damage</i>. ", "水滴每击杀一个敌人,为机甲回复2MJ能量,且所有水滴永久获得+10的<i>额外伤害</i>。");
		RegisterString("遗物描述1-0", "Every time you unlock or upgrade a technology, random mega structures will be partially auto-constructed", "每解锁或升级一个科技,少量推进随机巨构的建造进度");
		RegisterString("遗物描述1-1", "Turret supernova duration +200", "防御塔的超新星持续时间+200%");
		RegisterString("遗物描述1-2", "When the planetary shield is broken, immediately restore full shield and prevent it from recharge for 10 minutes", "行星护盾被打破时,立刻回复全部的护盾,并阻止其继续充能10min");
		RegisterString("遗物描述1-3", "For every 1% of mega structure's energy stolen by dark fog, space dark fog units in that star system take 3% <i>additional damage</i>", "巨构能量每被窃取1%,该星系的太空黑雾单位受到3%的<i>额外伤害</i>");
		RegisterString("遗物描述1-4", "Unlock Boson control Technology immediately and give 3 droplet, droplets energy consumption -50%", "立刻解锁水滴科技,并获得3个水滴,水滴能量消耗-50%");
		RegisterString("遗物描述1-5", "Each time a turret uses an ammo set to reload, there is 35% chance to restore 2 identical ammo sets", "所有防御设施在装填一组弹药时,有35%概率回填两组完全相同的弹药");
		RegisterString("遗物描述1-6", "When producing megastructure rockets, each output returns 2 deuteron fuel rods", "生产巨构火箭时,每个产出返还2个氘核燃料棒");
		RegisterString("遗物描述1-7", "Solar sail absorption speed increases 300%, ejecting speed increases 100%", "巨构的太阳帆吸附速度提升300%,弹射器弹射太阳帆的速度提升100%");
		RegisterString("遗物描述1-8", "When Icarus' Energy shield is broken, depleting the Mech's fuel chamber to instantly restore up to 100% energy shield", "伊卡洛斯的能量盾被打破时,消耗机甲燃烧室储备立刻回复最多100%的能量盾");
		RegisterString("遗物描述1-9", "When an ally fleet unit is about to take damage, if Icarus' shield is charged above 50%, Icarus will take the damage instead", "我方舰队中的单位将要承受伤害时,如果伊卡洛斯的能量盾充能高于50%,则由其代为承担");
		RegisterString("遗物描述1-10", "Ally damage will permanently ignore the armor of the dark fog unit. Won't occupy the meta drive slot", "友方伤害将永久无视黑雾单位的护甲,不占用元驱动槽位");
		RegisterString("遗物描述1-11", "Greatly enhanced jamming tower's effect", "大幅强化干扰塔的效果");
		RegisterString("遗物描述2-0", "Planetary Shields gain 50% additional charge energy", "行星护盾获得50%额外的充能量");
		RegisterString("遗物描述2-1", "Each time your merit rank is promoted, random mega structures will be partly auto-constructed", "每次提升功勋阶级,显著推进各巨构的建造进度");
		RegisterString("遗物描述2-2", "Get merit points when allied buildings destroyed", "建筑被摧毁时,获得功勋点数");
		RegisterString("遗物描述2-3", "Each time a turret uses an ammo set to reload, there is 40% chance to restore an identical ammo set", "所有防御设施在装填时有40%概率回填一组弹药");
		RegisterString("遗物描述2-4", "When producing normal fuel rods, each output will returne 5 materials in the second slot", "生产常规燃料棒时,每次产出会回填5个第2位置的原材料(氢、重氢)");
		RegisterString("遗物描述2-5", "Every second, if Icaros is on the planet and have moved in the previous second, you have 8% chance to obtain a multi-functional integrated component", "每过一秒,如果伊卡洛斯处于行星上并且在上一秒进行过移动,就有8%的概率获得一个多功能集成组件");
		RegisterString("遗物描述2-6", "All your fleets energy consumption -40%", "战斗无人机各项能量消耗-40%");
		RegisterString("遗物描述2-7", "Kinetic, energy and explosive damage +10%. Won't occupy the meta drive slot", "动能武器伤害、爆破武器伤害、能量武器伤害+10%,不占用元驱动槽位");
		RegisterString("遗物描述2-8", "When decomposing critical photons, hydrogen is no longer produced, but the antimatter production increase 50%", "分解临界光子时,不再产出氢,但产出的反物质增加50%");
		RegisterString("遗物描述2-9", "Star cannon's recharging speed +50%", "恒星炮充能速度+50%");
		RegisterString("遗物描述2-10", "Turret supernova cooldown and charge time -50%", "防御塔的超新星冷却和蓄能时间-50%");
		RegisterString("遗物描述2-11", "Smelter have 30% chance to produce an additional product", "熔炉每次产出,有30%的概率额外产出一个产物");
		RegisterString("遗物描述2-12", "You gain +10% chance of critical hit", "你获得10%暴击几率");
		RegisterString("遗物描述2-13", "Double any <i>additional damage</i> (except the bonus from technology)", "你对黑雾造成的任何<i>额外伤害翻倍</i>(来自科技的加成除外)");
		RegisterString("遗物描述2-14", "Every time you destroy an enemy, you have chance to directly obtain an antimatter fuel rod or a space warper in the backpack", "每次击毁敌军单位,根据敌人强度有概率在背包直接获取1个反物质燃料棒或翘曲器,无视科技解锁进度");
		RegisterString("遗物描述2-15", "Explosive damage +10%. Won't occupy the meta drive slot", "爆破武器伤害+40%,不占用元驱动槽位");
		RegisterString("遗物描述2-16", "Planetary Shield and Icarus Shield gain 20% damage reduction", "行星护盾和伊卡洛斯的护盾获得20%伤害减免");
		RegisterString("遗物描述2-17", "When Icarus is about to be destroyed, restore all health and energy shields instead, and gains invincible for 30 seconds", "伊卡洛斯即将被摧毁时,转而立刻回复全部的生命值和能量盾,并获得30s的伤害免疫");
		RegisterString("遗物描述3-0", "Solar sail life -90%, but its production amount in assembling machine +50%", "太阳帆寿命-90%,但每次产出太阳帆会额外产出1个太阳帆");
		RegisterString("遗物描述3-1", "When enemy drops dark fog matrices, there is 30% chance to double them", "地面黑雾单位掉落黑雾矩阵时,有30%几率掉落双倍的黑雾矩阵");
		RegisterString("遗物描述3-2", "Icarus will generate additional energy without consuming fuel, which is equivalent to 50% of the base power of the fuel generation reactor", "伊卡洛斯会不消耗燃料地持续获得额外的能量回复,相当于反应堆基础功率的50%");
		RegisterString("遗物描述3-3", "Double the sand amount dropped by dark fog units", "黑雾单位掉落的沙土加倍");
		RegisterString("遗物描述3-4", "Dark fog gain +100% extra experience", "黑雾获得经验+100%");
		RegisterString("遗物描述3-5", "When Icarus is destroyed, give you options to use resurrection coins to redeploy or reassemble for free. Won't occupy the meta drive slot", "伊卡洛斯被毁时,可以选择消耗复活币来无消耗地重新部署或原地重组,不占用元驱动槽位");
		RegisterString("遗物描述3-6", "Gain some merit points based on your current rank level. Won't occupy the meta drive slot", "获得基于当前阶级的少量功勋点数,不占用元驱动槽位");
		RegisterString("遗物描述3-7", "Energy weapon damage +10%. Won't occupy the meta drive slot", "能量武器伤害+10%,不占用元驱动槽位");
		RegisterString("遗物描述3-8", "Based on the unlocked matrix technology, immediately give a large number of normal matrix. Won't occupy the meta drive slot", "基于已解锁的矩阵科技,立刻获得大量普通矩阵(异星矩阵和宇宙矩阵除外),不会占用元驱动槽位");
		RegisterString("遗物描述3-9", "When a certain number of buildings are destroyed, random mega structure will be slightly auto-constructed", "一定数量的建筑被毁时,微量推进随机星系的巨构的建造进度");
		RegisterString("遗物描述3-10", "Every second, if Icaros is on the planet and have moved in the previous second, you have 3% chance to obtain a multi-functional integrated component", "每过一秒,如果伊卡洛斯处于行星上并且在上一秒进行过移动,就有3%的概率获得一个多功能集成组件");
		RegisterString("遗物描述3-11", "Solar sial adsorption speed increases 100%", "巨构的太阳帆吸附速度提升100%");
		RegisterString("遗物描述3-12", "Planetary shield has a 15% chance to avoid the damage", "行星护盾有15%的概率完全规避伤害");
		RegisterString("遗物描述3-13", "Star cannon's recharging speed +25%", "恒星炮充能速度提高25%");
		RegisterString("遗物描述3-14", "When producing electric motors or electromagnetic turbines , every time a product is produced, one magnetic coil will be returned", "生产电动机、电磁涡轮时,每生产一个产物,回填1个磁线圈作为原材料");
		RegisterString("遗物描述3-15", "The research speed of Icarus mecha +400%, and research energy consumption +400%", "伊卡洛斯机甲的研究速度+400%,研究能耗同步增加");
		RegisterString("遗物描述3-16", "Star cannon deals 10% <i>additional damage</i>", "恒星炮对主要目标造成10%<i>额外伤害</i>");
		RegisterString("遗物描述3-17", "You get 25% extra merit points", "功勋点数获取+25%");
		RegisterString("遗物描述4-0", "The mega structure in the star system with the max luminosity in the galaxy, will be constantly auto-constructing", "星区中光度最高的恒星系的巨构会不停地自动建造");
		RegisterString("遗物描述4-1", "Every time you interpret a meta drive, at least one Mensural decoding track will be available before you reroll. Reroll cost is halved", "每次解译完毕元驱动时,必然刷新一个定律级解码轨,重随消耗减半");
		RegisterString("遗物描述4-2", "Each droplet fleet configuration can have 3 droplets", "每个水滴的舰队配置可放置3个水滴");
		RegisterString("遗物描述4-3", "Comprehensively improve the extra products effect of proliferators", "全面提升增产剂的增产效果");
		RegisterString("遗物描述4-4", "Every an enemy is destoryed, slightly advance the research progress of the current non-darkfog matrix technology for free", "每当击杀敌军单位时,无消耗地略微推进当前非黑雾矩阵科技的研究进度");
		RegisterString("遗物描述4-5", "When killing a ground dark fog unit, there is 15% chance of causing a weakened electromagnetic interference from it's place", "地面黑雾单位被击杀时,有15%概率在原地引发一次弱化的电磁干扰");
		RegisterString("遗物描述4-6", "When pick up this meta drive, permanently record the top three meta drives that you already have, retaining their effects but no longer occupying the slot", "获取此元驱动时,将左侧栏位最顶端的三个元驱动永久保存在符文之书中,保留他们的效果但是其不再占用栏位");
		RegisterString("relicTipTitle0-10", "Upper Limit", "上限");
		RegisterString("relicTipText0-10", "The upper limit is 200 at the begining. After reaching the upper limit, the mecha will automatically consume a droplet in inventory then increase the upper limit by 200. The upper limit growth is unlimited\nThe type of additional damage is is consistent with the original damage type", "加成上限初始为200,达到上限后,自动消耗背包中的一个水滴并再次提升200加成上限,提升上限的次数不受限制\n额外伤害的类型与原有伤害的类型一致");
		RegisterString("relicTipTitle1-2", "Cooldown", "冷却时间");
		RegisterString("relicTipText1-2", "This effect has a separate 10min cooldown for each planet", "这个效果对每个行星具有独立的10分钟的冷却时间");
		RegisterString("relicTipTitle1-8", "Energy consumption", "能量消耗");
		RegisterString("relicTipText1-8", "It takes twice chamber fuel's energy to recharge the shield power. If this effect is triggered repeatedly within 1 minute, the energy consumption multiplier will rapidly increase to a maximum of 20 times", "需要消耗相当于回复护盾能量2倍的燃烧室燃料。如果在1分钟内反复触发此效果,能量消耗倍率会快速增长至最高20倍");
		RegisterString("relicTipTitle2-12", "Critical hit", "暴击");
		RegisterString("relicTipText2-12", "Critical hit will deal 100% additional damage", "暴击会对目标造成100%额外伤害");
		RegisterString("relicTipTitle2-16", "Damage reduction", "伤害减免");
		RegisterString("relicTipText2-16", "If a single damage exceeds 1% of the current shield amount, it will be reduced by 80% instead", "如果单次伤害超过了当前护盾量的1%,则转而减免80%");
		RegisterString("relicTipTitle2-17", "Cooldown", "冷却时间");
		RegisterString("relicTipText2-17", "This effect can only be triggered once every 20 minutes", "这个效果每20分钟只能触发一次");
		RegisterString("relicTipText4-0", "All other galaxies receive a negative luminosity correction", "所有其他星系获得一个负的恒星光度修正");
		RegisterString("relicTipText4-1", "All meta drives with probability, their probability is halved", "所有具有概率的效果,判定成功几率减半");
		RegisterString("relicTipText4-2", "When Icarus is destroyed, downgrade your merit rank level by 1, and clear your merit points of current level", "死亡时,你降低一级功勋阶级并清空当前等级的功勋点数");
		RegisterString("relicTipText4-3", "Comprehensively reduce the production speedup effect of proliferators", "全面降低增产剂的加速效果");
		RegisterString("relicTipText4-4", "The amount of dark fog matrix drop is halved, and you won't obtain any dark fog matrix when you abort interpreting the decoding track\n(Hash gaining can be enhanced by the research speed technology)", "黑雾矩阵掉落减半,放弃解译元驱动的解码轨时不会获得黑雾矩阵\n(Hash点数获取量受研究速度科技加成)");
		RegisterString("relicTipText4-5", "You will get 90% less merit points by killing ground dark fog units", "击杀地面黑雾单位获得的功勋点数-90%");
		RegisterString("relicTipText4-6", "The required time to interpret a meta drive +15min", "解译元驱动的所需时间增加15分钟");
		RegisterString("relicTipTitle0-5", "Additional damage", "额外伤害");
		RegisterString("relicTipTitle0-7", "Additional damage", "额外伤害");
		RegisterString("relicTipTitle0-8", "Additional damage", "额外伤害");
		RegisterString("relicTipTitle1-3", "Additional damage", "额外伤害");
		RegisterString("relicTipTitle2-12", "Additional damage", "额外伤害");
		RegisterString("relicTipTitle2-13", "Additional damage", "额外伤害");
		RegisterString("relicTipTitle3-16", "Additional damage", "额外伤害");
		RegisterString("relicTipText0-5", "The type of additional damage is void damage.", "该额外伤害的类型为虚空伤害。");
		RegisterString("relicTipText0-7", "The type of additional damage is energy damage. \nIf the megastructure is star cannon, then the additional damage increases 100%.", "该额外伤害的类型为能量伤害。如果巨构为恒星炮,该伤害增加100%");
		RegisterString("relicTipText0-8", "The type of additional damage is EM damage.", "该额外伤害的类型为电磁伤害。");
		RegisterString("relicTipText1-3", "The type of additional damage is consistent with the original damage type.", "额外伤害类型与原有的伤害的类型一致。");
		RegisterString("relicTipText2-12", "The type of additional damage is consistent with the original damage type.", "额外伤害类型与原有的伤害的类型一致。");
		RegisterString("relicTipText2-13", "Any additional damage described in the meta drives will be increased.", "任何来自元驱动中所描述的额外伤害都将被增幅。");
		RegisterString("relicTipText3-16", "The type of additional damage is consistent with the original damage type.", "额外伤害类型与原有的伤害的类型一致。");
		RegisterString("当前倍率", "Current factor", "当前倍率");
		RegisterString("剩余冷却时间gm", "Cooling down", "冷却中");
		RegisterString("冷却完毕gm", "Ready", "已就绪");
		RegisterString("消退于", "Fading in", "消退于");
		RegisterString("显示/隐藏", "Show/Hide", "显示/隐藏");
		RegisterString("模块容量", "Module Capacity", "模块容量");
		RegisterString("模块容量说明", "Module capacity limits the number of defensive modules that you can build in this Star Fortress. Planning missile modules and light spear modules will consume available module capacity.\nThere are two ways to increase module capacity: \n1. Build bigger mega structure will provide more capacity; \n2. Building platform expansion modules will also increase module capacity, but the megastructure must have at least 600MW before its expansion modules work.", "模块容量决定着你可以在这个恒星要塞建造的防御性模块的数量,规划导弹模块和光矛模块都将消耗可用的模块容量,提升模块容量的方式有两个:\n1.构建更多的巨构框架和壳面将提升模块容量;\n2.在至少建造了一定能量水平的巨构后,建造平台扩展模块也会提升模块容量。");
		RegisterString("组件需求", "Component points", "组件点数");
		RegisterString("导弹模块", "Missile Mod.", "导弹模块");
		RegisterString("导弹模块说明", "The missile module will launch special antimatter missiles to attack enemy ships in combat. The antimatter missiles it uses are independently produced by the module in a stellar environment, requiring no ground supply of ammunition, and benefiting from technology upgrade. \nUse the buttons to increase or decrease the planned number, and then launch the corresponding rocket from the ground to provide component points to gradually build the module. \nHolding 'Ctrl' to make the button 10x times.", "    导弹模块会在战斗中发射反物质导弹攻击敌舰,其使用的反物质导弹是在恒星环境下由模块自主生产的,无需地面供给弹药,且享受来自科技的加成效果。\n    使用按钮来增加或减少建造的数量,然后从地面发射对应的运载火箭提供组件点数来逐步建造模块。\n    按住Ctrl将使按钮变为10倍。");
		RegisterString("光矛模块", "Lightspear Mod.", "光矛模块");
		RegisterString("光矛模块说明", "The Light Spear module can fire light spears with up to 20000 damage in combat, and can be enhanced by technology upgrades just like Phase-cracking beam. Building more Light Spear modules will accelerate the charging speed of the Light Spear and thus increase the fire rate (non-linear, max 10/s). \nUse the buttons to increase or decrease the planned number, and then launch the corresponding rocket from the ground to provide component points to gradually build the module. \nHolding 'Ctrl' to make the button 10x times.", "    光矛模块会在战斗中发射伤害高达20000的光矛攻击敌舰,且享受与相位裂解光束等同的科技加成。建造更多的光矛模块会加快光矛的充能速度从而增加射速(非线性,最大10/s)。\n    使用按钮来增加或减少建造的数量,然后从地面发射对应的运载火箭提供组件点数来逐步建造模块。\n    按住Ctrl将使按钮变为10倍。");
		RegisterString("平台扩展模块", "Expansion Mod.", "扩展模块");
		RegisterString("平台扩展模块说明", "Each platform expansion module will provide module capacity to enable you to build large defense platforms on low completion megastructures. But the megastructure must have at least 600MW before the expansion modules can work. \nThe platform expansion modules that are already built cannot be removed.\nUse the buttons to increase or decrease the planned number, and then launch the corresponding rocket from the ground to provide component points to gradually build the module. \nHolding 'Ctrl' to make the button 10x times.", "    每个平台扩展模块会提供(而非消耗)模块容量,以便使你能在低完成度的巨构上构建大型防御平台。\n    已建成的平台扩展模块无法拆除。");
		RegisterString("警告扩展模块无效", "Notice: The expansion module cannot take effect until the total energy provide by the megastructure's layers reaches 600MW.", "注意:在巨构壳层与框架能量水平总和达到一个600MW之前,扩展模块无法生效。");
		RegisterString("恒星要塞容量不足警告", "The module capacity is insufficient! Please expand the mega structure or plan more expansion modules on star fortress.", "恒星要塞模块容量不足!请扩大巨构或规划更多的扩展模块。");
		RegisterString("sf组件1火箭", "Missile module carrier rocket", "导弹模块组件运载火箭");
		RegisterString("sf组件1火箭描述", "Use the Vertical Launching Silo to launch this rocket onto the Star Fortress, carring necessary components to build the missile module. This will fill the component points of the missile module on the Star Fortress, but it is not helpful for the construction of any mega structures.", "使用发射井发射此火箭来将构建导弹模块的必须组件发射到恒星要塞上,这会填充恒星要塞的导弹模块的组件点数,但无法推进任何巨构的建造。");
		RegisterString("sf组件2火箭", "Light spear module carrier rocket", "光矛模块组件运载火箭");
		RegisterString("sf组件2火箭描述", "Use the Vertical Launching Silo to launch this rocket onto the Star Fortress, carring necessary components to build the light spear module. This will fill the component points of the light spear module on the Star Fortress, but it is not helpful for the construction of any mega structures.", "使用发射井发射此火箭来将构建光矛模块的必须组件发射到恒星要塞上,这会填充恒星要塞的光矛模块的组件点数,但无法推进任何巨构的建造。");
		RegisterString("sf组件3火箭", "Expansion module carrier rocket", "扩展模块组件运载火箭");
		RegisterString("sf组件3火箭描述", "Use the Vertical Launching Silo to launch this rocket onto the Star Fortress, carring necessary components to build the expansion module. This will fill the component points of the expansion module on the Star Fortress, but it is not helpful for the construction of any mega structures.", "使用发射井发射此火箭来将构建扩展模块的必须组件发射到恒星要塞上,这会填充恒星要塞的扩展模块的组件点数,但无法推进任何巨构的建造。");
		RegisterString("即将拆除模块标题", "Warning! Destructing modules!", "警告!即将拆除模块");
		RegisterString("即将拆除模块警告", "Since the module upper limit will be less than the number of completed modules, the overflowing completed modules will be immediately removed, and the module points will be wasted. Are you sure you want to remove them?", "由于模块上限被调整后将少于已建成的模块数,溢出的已建成的模块将被立刻拆除,模块点数将被浪费。是否确认拆除?");
		RegisterString("深空来敌介绍1标题", "They come from void player guide", "深空来敌玩法介绍");
		RegisterString("深空来敌介绍1前字", "Nothing here for now. You can check the meta drive infomation below.", "这里暂时没有东西。你可以翻看下面的元驱动介绍。");
		RegisterString("深空来敌介绍2前字", "By destroying dark fog units, you can gain experience points to promote your merit rank, and accumulate combat experience to strengthen yourself. Every time you reach the new merit rank, you will not only receive authorization points award issued by the COSMO Technology Ethics Committee, but also permanent bonus effects. Authorization points can be assigned on demand by clicking on the merit rank icon in the upper right corner, some providing bonuses for your production line, while others strengthening your combat capabilities. You can also view the bonus effect of the current rank, the experience requirements of the next level, and the bonus effect of the next level by hovering the mouse over the merit rank icon in the upper right corner. After advancing to the final rank, you will still be able to continuously earn merit points to get authorization points from the COSMO Technology Ethics Committee.\n\nExplorer I: Core power generation +1 MW\nExplorer II: Energy shield damage reduction +25%\nExplorer III: Walk speed +4 m/s\nPioneer I: Ore loss per mining operation -20%\nPioneer II: EM effect +20%\nPioneer III: Droplets can quickly approach distant target\nConqueror I: Ore loss per mining operation -20%\nConqueror II: Star cannon charging speed +50%\nConqueror III: Droplet damage +100%\nGalaxy Guardian: Ore loss per mining operation  -40%", "通过击毁黑雾单位,你可以获得经验点数来提升功勋阶级,并积累战斗经验来强化自身。每次提升功勋阶级,你除了会收到由COSMO技术伦理委员会发放的授权点奖励外,还将获得固定的永久加成效果。授权点奖励可以通过点击右上角的功勋阶级图标进行按需分配,有些为你的生产线提供加成,有些则强化你的战斗能力。你也可以通过将鼠标悬停在右上角的功勋阶级图标上来查看当前等级的加成效果,下一等级的经验需求和下一等级的加成效果。在提升到最终等级后,你仍然可以不断获取功勋点数,以不断从COSMO技术伦理委员会处获取授权点奖励。\n\n探索者 I: 核心发电 +1MW\n探索者 II: 能量盾伤害减免 +25%\n探索者 III: 步行移动速度 +4 m/s\n开拓者 I: 采矿消耗 -20%\n开拓者 II: 电磁武器效果 +20%\n开拓者 III: 水滴能够快速接近远距离的目标\n征服者 I: 采矿消耗 -20%\n征服者 II: 恒星炮充能速度 +50%\n征服者 III: 水滴伤害 +100%\n星河卫士: 采矿消耗 -40%");
		RegisterString("深空来敌介绍5标题", "Meta-Drive", "元驱动");
		RegisterString("深空来敌介绍6标题", "Axiomatic Meta-Drive", "公理级元驱动");
		ProtoRegistry.RegisterItem(8035, "水滴伤害增加", "", "Assets/DSPBattle/r0-10", 9999, 100, (EItemType)2);
		RegisterString("事件链窗口标题", "Meta Drive Event Chain", "元驱动事件链");
		RegisterString("执行此决定你", "Choose this decision", "执行此决定");
		RegisterString("需要gm", "<color=#61d8ffb4>Prerequisite:</color>", "<color=#61d8ffb4>需要:</color>");
		RegisterString("功勋阶级", "Merit rank level", "功勋阶级");
		RegisterString("伊卡洛斯被摧毁次数", "Icarus destroyed time", "伊卡洛斯被摧毁次数");
		RegisterString("消灭地面黑雾", "Kill ground dark fog units", "消灭地面黑雾单位");
		RegisterString("消灭太空黑雾", "Kill space dark fog units", "消灭太空黑雾单位");
		RegisterString("消灭任意黑雾", "Kill dark fog units", "消灭任意黑雾单位");
		RegisterString("提供物品", "Provide ", "提供 ");
		RegisterString("物品产量", "Produce speed of ", "物品产量:");
		RegisterString("解锁任意科技", "Unlock/Upgrade any technology", "解锁/升级任意科技");
		RegisterString("解锁gm", "Upgrade ", "升级");
		RegisterString("至等级", " to level", "至等级");
		RegisterString("消灭恒星系全部地面单位", "Kill all ground enemy in {0}{1}\n    remaining:{2}", "消灭恒星系{0}的全部地面单位{1}\n    剩余 {2}");
		RegisterString("数量未知gm", "unknown, please land on every planet in that star system at least once", "未知,请先降落该恒星系的所有行星至少一次");
		RegisterString("数量未知gm2", "unknown, please land on the planet at least once", "未知,请先降落该行星至少一次");
		RegisterString("点击以导航", " (click to navigate)", "(点击以导航)");
		RegisterString("消灭恒星系地面单位", "Kill ground enemy in {0}:  {1}/{2} {3}", "消灭恒星系{0}的地面单位  {1}/{2} {3}");
		RegisterString("消灭恒星系全部太空单位", "Kill all space enemy in {0}{1}\n    remaining:{2}", "消灭恒星系{0}的全部太空单位{1}\n    剩余 {2}");
		RegisterString("消灭恒星系太空单位", "Kill space enemy in {0}:  {1}/{2} {3}", "消灭恒星系{0}的太空单位  {1}/{2} {3}");
		RegisterString("提升恒星系威胁等级", "Raise any DF space hive's threat level in {0}  {1}/{2} {3}", "提升恒星系{0}的任意一个太空黑雾巢穴的威胁等级  {1}/{2} {3}");
		RegisterString("肃清恒星系", "Kill all enemies in {0}{1}\n    remaining:{2}", "清理恒星系{0}的全部黑雾单位{1}\n    剩余 {2}");
		RegisterString("提升巨构能量水平", "In {0} star system, build megastructure with energy level  {1}/{2} GW {3}", "提升{0}恒星系的巨构能量水平  {1}/{2} GW {3}");
		RegisterString("任意gm", "any", "任意");
		RegisterString("提升太空黑雾巢穴等级", "Any DF space hive in {0} reaches level  {1}/{2} {3}", "使{0}中任意一个太空黑雾巢穴等级达到  {1}/{2} {3}");
		RegisterString("消灭太空黑雾巢穴的所有单位", "Kill all enemies of {1} in {0}  remaining:{2} {3}", "消灭{0}中{1}的所有单位  剩余{2} {3}");
		RegisterString("消灭行星全部黑雾单位", "Kill all DF ground enemies on {0}{1}\n    remaining:{2}", "消灭行星{0}上的全部地面黑雾单位{1}\n    剩余 {2}");
		RegisterString("消灭行星黑雾单位", "Kill DF ground enemies on {0}  {1}/{2} {3}", "消灭行星{0}上的地面黑雾单位  {1}/{2} {3}");
		RegisterString("消灭行星全部黑雾单位", "Kill all DF ground bases on {0}{1}\n    remaining:{2}", "消灭行星{0}上的全部地面黑雾巢穴{1}\n    剩余 {2}");
		RegisterString("到达行星gm", "Arrive on planet {0}  {1}", "到达行星{0}  {1}");
		RegisterString("已到达gm", "accomplished", "已完成");
		RegisterString("这将终止序列", "<color=#cc2020c0>End this event chain</color>", "<color=#cc2020c0>此事件链将终止</color>");
		RegisterString("未知后果", "Unknow consequences", "未知后果");
		RegisterString("解译元驱动", "Interpret meta drive", "解译元驱动");
		RegisterString("获得功勋点数", "Obtain merit points ", "获得功勋点数 ");
		RegisterString("失去功勋点数", "Lose merit points ", "失去功勋点数");
		RegisterString("提升功勋阶级", "Upgrade merit rank ", "提升功勋阶级 ");
		RegisterString("降低功勋阶级", "Downgrade merit rank ", "降低功勋阶级 ");
		RegisterString("推进随机巨构", "Auto-constructed random megastructures construct points", "推进星区中随机巨构的建造进度");
		RegisterString("本次圣物解译普通概率", "Regular decode-tracks appearing probability this time ", "本次解译出常规级解码轨的概率 ");
		RegisterString("本次圣物解译稀有概率", "Packaged decode-tracks appearing probability this time ", "本次解译出封装级解码轨的概率 ");
		RegisterString("本次圣物解译史诗概率", "Framed decode-tracks appearing probability this time ", "本次解译出框架级解码轨的概率 ");
		RegisterString("本次圣物解译传说概率", "Mensural decode-tracks appearing probability this time ", "本次解译出定律级解码轨的概率 ");
		RegisterString("本次圣物解译被诅咒的概率", "Axiomatic decode-tracks appearing probability this time ", "本次解译出公理级解码轨的概率 ");
		RegisterString("免费随机次数", "Decode-track free re-roll ", "本次解码轨免费随机次数 ");
		RegisterString("获得物品", "Obtain ", "获得 ");
		RegisterString("此选项将导致", "<color=#FD965EC0>Result in:</color>", "<color=#FD965EC0>将导致:</color>");
		if (MoreMegaStructure.GenesisCompatibility)
		{
			RegisterString("打开解译事件链", "Open meta drive interpretation event chain ( Ctrl + ~ )", "打开元驱动解译事件链 ( Ctrl + ~ )");
		}
		else
		{
			RegisterString("打开解译事件链", "Open meta drive interpretation event chain ( ~ )", "打开元驱动解译事件链 ( ~ )");
		}
		RegisterString("预计剩余解译时间", "Estimated time of finishing", "预计剩余");
		RegisterString("decodeType21Title", "Analyzing Log File", "正在分析日志");
		RegisterString("decodeType22Title", "Trying to repair", "正在尝试修复");
		RegisterString("decodeType23Title", "Repairing and Analyzing Log File", "正在修复并分析日志");
		RegisterString("decodeType24Title", "Interpreting Meta Drive", "正在解译元驱动");
		RegisterString("decodeType25Title", "Repairing and Interpreting Meta Drive", "正在修复并解译元驱动");
		RegisterString("不朽之守护启动", " † Aegis of the Immortal † ", " † 不朽之守护 † ");
		RegisterString("不朽之守护就绪", "Aegis of the immortal is ready.", "不朽之守护已就绪。");
		RegisterString("消耗复活币描述", " Use 1 resurrection coin without spending any meta data.", "这会消耗复活币,但不需要消耗任何元数据。");
		RegisterString("使用复活币重新部署描述", "Use resurrection coin and redeploy Icarus to the initial planet?", "确认消耗复活币将伊卡洛斯重新部署至初始行星的降落点?");
		RegisterString("使用复活币立刻复活描述", "Use resurrection coin to reassemble Icarus?", "确认消耗复活币将伊卡洛斯立刻原地重组?");
		RegisterString("下次重新部署消耗不会增加", "Next redeployment cost won't increase.", "下次重新部署的消耗不会增加");
		RegisterString("下次立刻复活消耗不会增加", "Next reassembling cost won't increase.", "下次原地重组的消耗不会增加");
		RegisterString("使用元数据或复活币", "Use Metadata or Resurrect Coin", "使用 元数据 或 复活币");
		RegisterString("剩余技能点", "<color=#d2853d>-  {0} ap not used, click to allocate ( L )</color>", "<color=#d2853d>-  {0} 个授权点未使用,点击以进行分配 ( L )</color>");
		RegisterString("剩余技能点待确认", "<color=#d2853d>-  Ap allocation has not been confirmed ( L )</color>", "<color=#d2853d>-  有授权点分配尚未确认 ( L )</color>");
		RegisterString("技能点", "Authorization Point", "授权点");
		RegisterString("已分配技能点", "Allocated", "已分配");
		RegisterString("技能点描述", "The Authorization point is a reward from the COSMO Technology Ethics Committee for your contribution to maintaining the safety of the sector, and you can use the authorization point to exchange any approved <color=#c2853d>Cosmic mensural modification technology</color> from the COSMO Technology Ethics Committee, which will be immediately broadcast to your sector.\n\nYou are permitted to provide a reasonable number of universe matrices to the COSMO Technology Ethics Committee to <color=#c2853d>reset</color> the allocation of all the athorization points, but you are not allowed to do any reverse engineering of the modification technology. The COSMO Technology Ethics Committee has the right to withdraw all authorization points or activated modifications when detecting your violation.", "授权点是COSMO技术伦理委员会对你维护星区安全功绩的奖励,你可以使用授权点从COSMO技术伦理委员会处换取任何受认可的<color=#c2853d>宇宙定律修正技术</color>,这些修正将被立即广播至此星区。\n\n你被允许向COSMO技术伦理委员会提供合理数量的宇宙矩阵以<color=#c2853d>重置</color>对授权点的分配,但你被禁止对定律修正技术进行任何的逆向工程,COSMO技术伦理委员会有权在检测到你的违规行为后收回全部的授权点或已启用的修正。");
		RegisterString("技能点标题", "Authorization Point Allocation", "授权点分配");
		RegisterString("按下Shift分配10点说明", "Hold Shift to allocate 10 points at once\nHold Ctrl+Shift to allocate all available points", "按住Shift以一次性分配10点\n按住Ctrl+Shift以分配全部可用授权点");
		RegisterString("确认分配", "Confirm", "确认");
		RegisterString("撤销分配", "Withdraw", "全部撤销");
		RegisterString("技能点窗口取消", "Cancel", "取消");
		RegisterString("全部重置", "Reset All", "全部重置");
		RegisterString("重置技能点确认标题", "Reset All", "全部重置");
		RegisterString("重置技能点确认警告", "Confirm to use {0} universe matrix to reset all ap alloction? This will return all allocated authorization points.", "是否消耗{0}个宇宙矩阵以重置所有的授权点分配?这将返还全部已分配的授权点。");
		RegisterString("分配技能点确认标题", "Confirm Allocation", "确认分配");
		RegisterString("分配技能点确认警告", "Confirm and apply all the ap allocation?", "确认并应用所有授权点分配?");
		RegisterString("skillL0", "Walk Speed", "步行速度");
		RegisterString("skillL1", "Replicator Speed", "手动合成速度");
		RegisterString("skillL2", "Construction Drone Count", "建设无人机数量");
		RegisterString("skillL3", "Construction Drone Flight Speed", "建设无人机速度");
		RegisterString("skillL4", "Ore Consumption", "采矿消耗");
		RegisterString("skillL5", "Mining Speed", "采矿速度");
		RegisterString("skillL6", "Proliferator Extra Product Effect", "增产剂增产效果");
		RegisterString("skillL7", "Proliferator Speedup Effect", "增产剂加速效果");
		RegisterString("skillL8", "Proliferator Energy Punishment", "增产剂能量惩罚");
		RegisterString("skillL9", "GM-α Algorithm Weight", "GM-α算法权重");
		RegisterString("skillL10", "Z7-η Algorithm Weight", "Z7-η算法权重");
		RegisterString("skillR0", "Global Damage", "全局伤害");
		RegisterString("skillR1", "Critical Chance", "暴击几率");
		RegisterString("skillR2", "Armor penetration", "护甲穿透");
		RegisterString("skillR3", "Icarus Shield Avoid", "伊卡洛斯护盾规避");
		RegisterString("skillR4", "Icarus Shield Energy Efficiency", "伊卡洛斯护盾能量效率");
		RegisterString("skillR5", "Planet Shield Energy Efficiency", "行星护盾能量效率");
		RegisterString("skillR6", "Void Damage", "虚空伤害");
		RegisterString("skillR7", "Droplet Energy Punishment", "水滴超远距耗能惩罚");
		RegisterString("skillL4Desc", "The mining consumption reduction effect already includes the effect provided by the merit rank, then it will multiplies with the effect provided by research.", "采矿消耗降低效果已包含功勋阶级提供的消耗降低效果,而后与科技提供的效果乘法叠加。");
		RegisterString("skillL6Desc", "This buff will be directly increased to the percentage value of Proliferator Mk.III extra product effect. Mk.I and Mk.II only enjoys a partial buff.", "此效果的数值直接增加至Mk.III型增产剂增产效果的百分比数值上,更低阶增产剂只享受部分加成。");
		RegisterString("skillL7Desc", "This buff will be directly increased to the percentage value of Proliferator Mk.III speedup effect. Mk.I and Mk.II only enjoys a partial buff.", "此效果的数值直接增加至Mk.III型增产剂加速效果的百分比数值上,更低阶增产剂只享受部分加成。");
		RegisterString("skillL8Desc", "This buff will be directly added to the percentage value of Proliferator Mk.III energy consumption effect. Mk.I and Mk.II only enjoys a partial buff.", "此效果的数值直接增加至Mk.III型增产剂能量消耗惩罚的百分比数值上,更低阶增产剂只享受部分加成。");
		RegisterString("skillL9Desc", "The COSMO Technology Ethics Committee has expressed doubts about our request for this alternative algorithmic technology, as it hardly makes any visible improvement to the computing power of research facilities. But what they did not know was that using the GM-α algorithm to decode the meta drive could significantly increase the probability of the occurrence of the Mensural decoding track.", "COSMO技术伦理委员会对我们要求这种替代型算法技术的行为表示疑惑,因为它几乎不能对科研设施算力有任何可见的提升。但是他们不知道的是,使用GM-α算法解码元驱动可以显著提升定律级解码轨的出现概率。");
		RegisterString("skillL10Desc", "The COSMO Technology Ethics Committee has expressed doubts about our request for this alternative algorithmic technology, as it hardly makes any visible improvement to the computing power of research facilities. But what they did not know was that using the Z7-η algorithm to decode the meta drive could significantly increase the probability of the occurrence of the Mensural decoding track.", "COSMO技术伦理委员会对我们要求这种替代型算法技术的行为表示疑惑,因为它几乎不能对科研设施算力有任何可见的提升。但是他们不知道的是,使用Z7-η算法解码元驱动可以显著提升框架级解码轨的出现概率。");
		RegisterString("skillR0Desc", "The global damage bonus is multiplied with other damage bonuses. Takes effect on all allied attack.", "全局伤害加成将与其他的伤害加成以乘法叠加。对所有友方伤害生效。");
		RegisterString("skillR1Desc", "Allied attacks has a critical hit chance, dealing 100% additional damage.", "友方攻击有概率暴击,造成100%的额外伤害。");
		RegisterString("skillR2Desc", "Allied attacks can ignore a fixed amount of armor, and the value that penetrates beyond the target's armor can also increase damage.", "你的伤害可以无视固定数值的护甲,护甲穿透超出目标护甲的部分也可以继续增加伤害。");
		RegisterString("skillR3Desc", "Icarus' Energy shield will have a chance to avoid the damage.", "伊卡洛斯的能量盾将有概率直接规避一次伤害。");
		RegisterString("skillR4Desc", "Increasing the energy efficiency will increase the amount of damage the shield can take per unit of energy. But this will not be considered as damage reduction.", "提升护盾能量效率将提高每单位能量的护盾可以承受的伤害总量。但这不会被视为伤害减免。");
		RegisterString("skillR5Desc", "Increasing the energy efficiency will increase the amount of damage the shield can take per unit of energy. But this will not be considered as damage reduction.", "提升护盾的能量效率将提高每单位能量的行星护盾可以承受的伤害总量。但这不会被视为伤害减免。");
		RegisterString("skillR6Desc", "Gain a bonus when dealing void damage.", "友方造成虚空类型的伤害时,该伤害获得加成。");
		RegisterString("skillR7Desc", "Droplets have a 10x energy consumption penalty when manually summoned to attack units beyond 1AU. This reduces that penalty.\nDoes not affect the energy consumption of attacking within 1AU.", "水滴在手动召唤以攻击1AU以外的单位时,将有10倍的能量消耗惩罚,此项可以将该惩罚降低。\n不影响1AU以内的耗能。");
		RegisterString("星河卫士奖章", "Galaxy Guardian's Medal", "星河卫士勋章");
		RegisterString("星河卫士奖章描述", "This is a medal given to you by the COSMO Technology Ethics Committee for your contribution to the sector, with your name engraved on it. The COSMO Technology Ethics Committee claims that the medal is extremely expensive and rare, and suggests you not to expose it to carbon dioxide, oxygen and water at the same time.", "这是COSMO技术伦理委员会为奖励你对星区做出的贡献而为你颁发的勋章,上面刻有你的名字。COSMO技术伦理委员会声称该奖章造价昂贵、极其稀有,并建议你不要使其同时接触到二氧化碳、氧气和水。");
		RegisterString("提供算力名称", "Incorporated into the COSMO architecture", "并入COSMO架构");
		RegisterString("提供算力描述", "Provide area computing power to the COSMO Technology Ethics Committee by Incorporate all research facilities into the COSMO architecture, which will continuously earn you merit points. In addition, this protocol requires universe matrices to ensure that each section can efficiently handle the hash collision problem in the COSMO main-net.", "通过将所有科研设施并入COSMO架构来为COSMO技术伦理委员会提供星区算力,这会为你持续提供功勋点数。此外,这还需要消耗一定的宇宙矩阵来保证每个星区能高效处理主网内的散列碰撞问题。");
		RegisterString("提供算力结论", "This protocol allows unlimited progress and is automatically added to the end of the queue", "此项科技允许无限进行,已自动添加到队列末尾");
		RegisterString("版本更迭补偿", "Version change compensation", "版本更迭补偿");
		RegisterString("遗物4-5补偿说明", "Since the effect of the meta driver [Aftershock Echo] has been changed, you received a compensation from the void: you can immediately interpret a new meta drive, and a free resurrection coin. ", "由于[余震回响]元驱动的效果被更改,你收到了一个来自虚空的补偿:可以立刻解译一个新的元驱动,并获得一个复活币。");
	}

	public static void AddTutorialProtos()
	{
		TutorialProto val = MethedEx.Copy<TutorialProto>(((ProtoSet<TutorialProto>)(object)LDB.tutorial).Select(1));
		((Proto)val).Name = Localization.Translate("功勋阶级");
		((Proto)val).name = Localization.Translate("功勋阶级");
		val.Video = "";
		val.PreText = "深空来敌介绍2前字";
		val.PostText = "";
		((Proto)val).ID = 42;
		LDBTool.PreAddProto((Proto)(object)val);
		TutorialProto val2 = MethedEx.Copy<TutorialProto>(((ProtoSet<TutorialProto>)(object)LDB.tutorial).Select(1));
		((Proto)val2).Name = Localization.Translate("深空来敌介绍5标题");
		((Proto)val2).name = Localization.Translate("深空来敌介绍5标题");
		val2.Video = "";
		val2.PreText = "深空来敌介绍5前字";
		val2.PostText = "";
		((Proto)val2).ID = 43;
		LDBTool.PreAddProto((Proto)(object)val2);
		TutorialProto val3 = MethedEx.Copy<TutorialProto>(((ProtoSet<TutorialProto>)(object)LDB.tutorial).Select(1));
		((Proto)val3).Name = Localization.Translate("深空来敌介绍6标题");
		((Proto)val3).name = Localization.Translate("深空来敌介绍6标题");
		val3.Video = "";
		val3.PreText = "";
		val3.PostText = "";
		((Proto)val3).ID = 44;
		LDBTool.PreAddProto((Proto)(object)val3);
	}

	public static void RewriteTutorialProtosWhenLoad()
	{
		TutorialProto val = ((ProtoSet<TutorialProto>)(object)LDB.tutorial).Select(43);
		TutorialProto val2 = ((ProtoSet<TutorialProto>)(object)LDB.tutorial).Select(44);
		if (val == null)
		{
			return;
		}
		try
		{
			string text = "";
			string text2 = "";
			for (int num = 0; num < 2; num = (num + 1) % 5)
			{
				text = text + "<size=16>" + Localization.Translate($"圣物稀有度{num}") + "</size>\n";
				for (int i = 0; i < Relic.relicNumByType[num]; i++)
				{
					text = text + Localization.Translate($"遗物名称带颜色{num}-{i}").Split(new char[1] { '[' })[0].Trim() + "</color>\n";
					text += Localization.Translate($"遗物描述{num}-{i}");
					if (Localization.Translate($"relicTipText{num}-{i}") != $"relicTipText{num}-{i}")
					{
						text = text + "\n" + Localization.Translate($"relicTipText{num}-{i}");
					}
					text += "\n\n";
				}
				text += "\n";
			}
			val.PreText = text;
			for (int j = 2; j < 4; j++)
			{
				text2 = text2 + "<size=16>" + Localization.Translate($"圣物稀有度{j}") + "</size>\n";
				for (int k = 0; k < Relic.relicNumByType[j]; k++)
				{
					text2 = text2 + Localization.Translate($"遗物名称带颜色{j}-{k}").Split(new char[1] { '[' })[0].Trim() + "</color>\n";
					text2 += Localization.Translate($"遗物描述{j}-{k}");
					if (Localization.Translate($"relicTipText{j}-{k}") != $"relicTipText{j}-{k}")
					{
						text2 = text2 + "\n" + Localization.Translate($"relicTipText{j}-{k}");
					}
					text2 += "\n\n";
				}
				text2 += "\n";
			}
			val.PostText = text2;
			string text3 = "";
			text3 = text3 + Localization.Translate("诅咒描述独立") + "\n\n";
			for (int l = 0; l < Relic.relicNumByType[4]; l++)
			{
				text3 = text3 + Localization.Translate($"遗物名称带颜色{4}-{l}").Split(new char[1] { '[' })[0].Trim() + "</color>\n";
				text3 += Localization.Translate($"遗物描述{4}-{l}");
				if (Localization.Translate($"relicTipText{4}-{l}") != $"relicTipText{4}-{l}")
				{
					text3 = text3 + "\n" + Localization.Translate($"relicTipText{4}-{l}");
				}
				text3 += "\n\n";
			}
			text3 += "\n";
			val2.PreText = text3;
		}
		catch (Exception)
		{
		}
	}

	public static void EditProtossWhenLoad()
	{
		//IL_0033: Unknown result type (might be due to invalid IL or missing references)
		//IL_003d: Expected O, but got Unknown
		ItemProto val = ((ProtoSet<ItemProto>)(object)LDB.items).Select(9511);
		if (val != null)
		{
			val.DescFields = new int[6] { 81, 82, 80, 59, 11, 1 };
			val.prefabDesc = new PrefabDesc();
			ref PrefabDesc prefabDesc = ref val.prefabDesc;
			prefabDesc.craftUnitMaxMovementSpeed = 30000f;
			prefabDesc.workEnergyPerTick = 500000L;
			StorageComponent.itemIsFighter[9511] = true;
		}
	}

	public static void UnlockTutorials(int i = -1)
	{
		if (i == -1)
		{
			for (int j = 42; j <= 44; j++)
			{
				GameMain.history.UnlockTutorial(j);
			}
		}
		else
		{
			GameMain.history.UnlockTutorial(i);
		}
	}

	public static void InitEventProtos()
	{
		EventSystem.protos = new Dictionary<int, EventProto>();
		EventSystem.alterProtos = new Dictionary<int, Li