Decompiled source of WeaponPlus v1.0.6

DSP_WeaponPlus.dll

Decompiled 2 months ago
using System;
using System.Collections;
using System.Diagnostics;
using System.IO;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using BepInEx;
using BepInEx.Bootstrap;
using CheatEnabler;
using CommonAPI;
using CommonAPI.Systems;
using DSP_WeaponPlus.Compatibility;
using DSP_WeaponPlus.Nebula;
using DSP_WeaponPlus.Utils;
using HarmonyLib;
using NebulaAPI;
using NebulaAPI.GameState;
using NebulaAPI.Interfaces;
using NebulaAPI.Networking;
using NebulaAPI.Packets;
using UnityEngine;
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_WeaponPlus")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Organization")]
[assembly: AssemblyProduct("DSP_WeaponPlus")]
[assembly: AssemblyCopyright("Copyright © Organization 2024")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("2c822bf9-d1bc-4f1b-8b48-e8ce5dbc08b6")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: TargetFramework(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")]
[assembly: AssemblyVersion("1.0.0.0")]
namespace CheatEnabler
{
	public static class AbnormalDisabler
	{
		[HarmonyPrefix]
		[HarmonyPatch(typeof(AbnormalityLogic), "NotifyBeforeGameSave")]
		[HarmonyPatch(typeof(AbnormalityLogic), "NotifyOnAssemblerRecipePick")]
		[HarmonyPatch(typeof(AbnormalityLogic), "NotifyOnGameBegin")]
		[HarmonyPatch(typeof(AbnormalityLogic), "NotifyOnMechaForgeTaskComplete")]
		[HarmonyPatch(typeof(AbnormalityLogic), "NotifyOnUnlockTech")]
		[HarmonyPatch(typeof(AbnormalityLogic), "NotifyOnUseConsole")]
		private static bool DisableAbnormalLogic()
		{
			return false;
		}

		[HarmonyPostfix]
		[HarmonyPatch(typeof(AbnormalityLogic), "InitDeterminators")]
		private static void DisableAbnormalDeterminators(AbnormalityLogic __instance)
		{
		}
	}
}
namespace DSP_WeaponPlus
{
	[BepInPlugin("org.weaponplus.plugins.Xiaokls", "weaponplus", "1.0.6")]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[ModSaveSettings(/*Could not decode attribute arguments.*/)]
	[CommonAPISubmoduleDependency(new string[] { "ProtoRegistry", "TabSystem" })]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	public class DSP_WeaponPlus : BaseUnityPlugin, IModCanSave, IMultiplayerModWithSettings, IMultiplayerMod
	{
		public const string MODGUID = "org.weaponplus.plugins.Xiaokls";

		public const string MODNAME = "weaponplus";

		public const string VERSION = "1.0.6";

		public static ResourceData resources;

		public static int tab装备1;

		public static TabData weapon_page_data;

		public string Version => "1.0.6";

		private void Awake()
		{
			//IL_006c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0076: Expected O, but got Unknown
			//IL_009b: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a5: Expected O, but got Unknown
			Harmony.CreateAndPatchAll(typeof(Equipmentcolumn), (string)null);
			Harmony.CreateAndPatchAll(typeof(DSP_WeaponPlus), (string)null);
			Harmony.CreateAndPatchAll(typeof(WPAddItem), (string)null);
			Harmony.CreateAndPatchAll(typeof(AbnormalDisabler), (string)null);
			using (ProtoRegistry.StartModLoad("org.weaponplus.plugins.Xiaokls"))
			{
				string directoryName = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
				resources = new ResourceData("org.weaponplus.plugins.Xiaokls", "weapon", directoryName);
				resources.LoadAssetBundle("weapon");
				ProtoRegistry.AddResource(resources);
				weapon_page_data = new TabData("装备", "Icons/Tech/5705");
				tab装备1 = TabSystem.RegisterTab("org.weaponplus.plugins.Xiaokls:org.weaponplus.plugins.XiaoklsTab1", weapon_page_data);
			}
			if (Chainloader.PluginInfos.ContainsKey("dsp.nebula-multiplayer"))
			{
				NebulaWarper.OnAwake();
			}
			NebulaModAPI.RegisterPackets(Assembly.GetExecutingAssembly());
			LDBTool.PreAddDataAction = (Action)Delegate.Combine(LDBTool.PreAddDataAction, new Action(PreAddDataAction));
			LDBTool.PostAddDataAction = (Action)Delegate.Combine(LDBTool.PostAddDataAction, new Action(PostAddDataAction));
		}

		private void Start()
		{
			Debug.Log((object)"【DSP_WeaponPlus】 Start");
			WPAddItem wPAddItem = new WPAddItem();
			wPAddItem.AddWPItems();
		}

		public bool CheckVersion(string hostVersion, string clientVersion)
		{
			return hostVersion.Equals(clientVersion);
		}

		private void PreAddDataAction()
		{
		}

		private void PostAddDataAction()
		{
			Skillfunction();
			Equipmentcolumn.EquipUICreate();
			MoreMegaStructure.Compatible();
		}

		public void Import(BinaryReader r)
		{
			Debug.Log((object)"读取存档");
			SkillComponent.GetPlayer();
			Equipmentcolumn.Init();
			Equipmentcolumn.equistorage.Import(r);
			GameManager.InitializePlayers(100);
			GameManager._playerData.Import(r);
		}

		public void Export(BinaryWriter w)
		{
			Debug.Log((object)"写入存档");
			Equipmentcolumn.equistorage.Export(w);
			GameManager._playerData.Export(w);
		}

		public void IntoOtherSave()
		{
			SkillComponent.GetPlayer();
			Equipmentcolumn.Init();
			GameManager.InitializePlayers(100);
		}

		public int GetGirdindex(int x, int y)
		{
			return tab装备1 * 1000 + x * 100 + y;
		}

		private static void Skillfunction()
		{
			//IL_002f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0035: Expected O, but got Unknown
			//IL_00c3: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ca: Expected O, but got Unknown
			//IL_0159: Unknown result type (might be due to invalid IL or missing references)
			//IL_0160: Expected O, but got Unknown
			SkillUI skillUI = new SkillUI();
			skillUI.Creat();
			skillUI.Init(1, "机甲巨大化", "需消耗1个<color=\"#FD965ECC\">结构结晶</color>,并增加机体耐久和恢复速度(装备芯片后无CD冷却)", 90, 120, "skill_1");
			GameObject val = new GameObject();
			SkillComponent skill1 = val.AddComponent<SkillComponent>();
			skill1.Getskilltimer(skillUI.skilltimer);
			skill1.Init(1, 9701, "结构结晶", 9761, 180, 300, 2101, "机甲核心 I");
			skillUI.skButtn.onClick += delegate
			{
				skill1.SkillButtonClick();
			};
			SkillUI skillUI2 = new SkillUI();
			skillUI2.Creat();
			skillUI2.Init(2, "超新星爆发", "需消耗1个<color=\"#FD965ECC\">操控结晶</color>,武器射速全面爆发(装备芯片后无CD冷却)", 20, 120, "skill_3");
			GameObject val2 = new GameObject();
			SkillComponent skill2 = val2.AddComponent<SkillComponent>();
			skill2.Getskilltimer(skillUI2.skilltimer);
			skill2.Init(2, 9702, "操控结晶", 9762, 120, 180, 1807, "聚爆加农炮");
			skillUI2.skButtn.onClick += delegate
			{
				skill2.SkillButtonClick();
			};
			SkillUI skillUI3 = new SkillUI();
			skillUI3.Creat();
			skillUI3.Init(3, "护盾力场", "需消耗1个<color=\"#FD965ECC\">力场结晶</color>,增加护盾投射范围及恢复速度(装备芯片后无CD冷却)", -50, 120, "skill_2");
			GameObject val3 = new GameObject();
			SkillComponent skill3 = val3.AddComponent<SkillComponent>();
			skill3.Getskilltimer(skillUI3.skilltimer);
			skill3.Init(3, 9703, "力场结晶", 9763, 120, 180, 2803, "能量护盾");
			skillUI3.skButtn.onClick += delegate
			{
				skill3.SkillButtonClick();
			};
		}
	}
}
namespace DSP_WeaponPlus.Nebula
{
	public class GameManager
	{
		public static PlayerWpStorage _playerData;

		public static void InitializePlayers(int numberOfPlayers)
		{
			_playerData = new PlayerWpStorage(Equipmentcolumn.equistorage.grids.Length, numberOfPlayers);
		}

		public static void UpdatePlayer(int playerId, int[] itemid, int[] count)
		{
			if (playerId >= 0 && playerId < _playerData.data.Length)
			{
				_playerData.data[playerId].inited = true;
				_playerData.data[playerId].itemId = itemid;
				_playerData.data[playerId].count = count;
			}
		}

		public static PlayerWpStorage.WPDATA LoadPlayerData(int playerId)
		{
			if (playerId > 1 && playerId < _playerData.data.Length)
			{
				return _playerData.data[playerId];
			}
			return default(PlayerWpStorage.WPDATA);
		}
	}
	public class PlayerWpStorage
	{
		public struct WPDATA
		{
			public int[] itemId { get; set; }

			public int[] count { get; set; }

			public bool inited { get; set; }
		}

		public WPDATA[] data;

		public int size { get; set; }

		public int length { get; set; }

		public PlayerWpStorage(int _size, int _length)
		{
			size = _size;
			length = _length;
			data = new WPDATA[length];
			for (int i = 0; i < length; i++)
			{
				data[i] = default(WPDATA);
				data[i].itemId = new int[size];
				data[i].count = new int[size];
				data[i].inited = false;
			}
		}

		public void Export(BinaryWriter w)
		{
			w.Write(size);
			w.Write(length);
			for (int i = 0; i < length; i++)
			{
				w.Write(data[i].inited);
				for (int j = 0; j < size; j++)
				{
					w.Write(data[i].itemId[j]);
					w.Write(data[i].count[j]);
				}
			}
		}

		public void Import(BinaryReader r)
		{
			size = r.ReadInt32();
			length = r.ReadInt32();
			for (int i = 0; i < length; i++)
			{
				data[i].inited = false;
				if (r.ReadBoolean())
				{
					data[i].inited = true;
				}
				for (int j = 0; j < size; j++)
				{
					data[i].itemId[j] = r.ReadInt32();
					data[i].count[j] = r.ReadInt32();
				}
			}
		}
	}
	public class PlayerInfoPacket
	{
		public int playerId { get; set; }

		public string username { get; set; }

		public int bigstate { get; set; }

		public byte[] data { get; set; }

		public PlayerInfoPacket()
		{
		}

		public PlayerInfoPacket(int playerId, string username, int bigstate)
		{
			this.playerId = playerId;
			this.username = username;
			this.bigstate = bigstate;
		}
	}
	[RegisterPacketProcessor]
	public class PlayerInfoPacketProcessor : BasePacketProcessor<PlayerInfoPacket>
	{
		public override void ProcessPacket(PlayerInfoPacket packet, INebulaConnection conn)
		{
			//IL_006f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0076: Unknown result type (might be due to invalid IL or missing references)
			int playerId = packet.playerId;
			string username = packet.username;
			int bigstate = packet.bigstate;
			if (playerId < 1)
			{
				return;
			}
			if (playerId != NebulaModAPI.MultiplayerSession.LocalPlayer.Id)
			{
				GameObject val = GameObject.Find($"Remote Player ({playerId})");
				if ((Object)(object)val == (Object)null)
				{
					return;
				}
				val.transform.localScale = Vector3.one * (float)bigstate;
			}
			if (base.IsHost && playerId > 1)
			{
				conn.SendPacket<PlayerInfoPacket>(new PlayerInfoPacket(playerId, username, bigstate));
			}
		}
	}
	public class WpdataPacket
	{
		public int playerId { get; set; }

		public bool save { get; set; }

		public int[] itemId { get; set; }

		public int[] count { get; set; }

		public byte[] bdata { get; set; }

		public WpdataPacket()
		{
		}

		public WpdataPacket(int playerId, bool save, int[] itemId, int[] count)
		{
			this.playerId = playerId;
			this.save = save;
			this.itemId = itemId;
			this.count = count;
		}
	}
	[RegisterPacketProcessor]
	public class WpdataPacketProcessor : BasePacketProcessor<WpdataPacket>
	{
		public override void ProcessPacket(WpdataPacket packet, INebulaConnection conn)
		{
			int playerId = packet.playerId;
			bool save = packet.save;
			if (base.IsHost)
			{
				if (save)
				{
					GameManager.UpdatePlayer(playerId, packet.itemId, packet.count);
					return;
				}
				PlayerWpStorage.WPDATA wPDATA = GameManager.LoadPlayerData(playerId);
				if (wPDATA.inited)
				{
					int[] itemId = wPDATA.itemId;
					int[] count = wPDATA.count;
					conn.SendPacket<WpdataPacket>(new WpdataPacket(playerId, save: false, itemId, count));
				}
			}
			else
			{
				if (playerId != NebulaModAPI.MultiplayerSession.LocalPlayer.Id)
				{
					return;
				}
				for (int i = 0; i < Equipmentcolumn.equistorage.grids.Length; i++)
				{
					if (packet.itemId[i] > 0)
					{
						Equipmentcolumn.equistorage.grids[i].itemId = packet.itemId[i];
					}
					if (packet.count[i] > 0)
					{
						Equipmentcolumn.equistorage.grids[i].count = packet.count[i];
					}
				}
				SkillComponent.CheckWeaponGrids();
			}
		}
	}
	public class NebulaWarper
	{
		public static bool IsMultiplayerActive;

		public static bool IsClient;

		public static bool IsHost;

		public static void OnAwake()
		{
			NebulaModAPI.RegisterPackets(Assembly.GetExecutingAssembly());
			NebulaModAPI.OnMultiplayerGameStarted = (Action)Delegate.Combine(NebulaModAPI.OnMultiplayerGameStarted, new Action(OnMultiplayerGameStarted));
			NebulaModAPI.OnMultiplayerGameEnded = (Action)Delegate.Combine(NebulaModAPI.OnMultiplayerGameEnded, new Action(OnMultiplayerGameEnded));
			NebulaModAPI.OnPlayerJoinedGame = (Action<IPlayerData>)Delegate.Combine(NebulaModAPI.OnPlayerJoinedGame, new Action<IPlayerData>(OnPlayerJoin));
		}

		public static void OnMultiplayerGameStarted()
		{
			IsMultiplayerActive = NebulaModAPI.IsMultiplayerActive;
			IsClient = IsMultiplayerActive && NebulaModAPI.MultiplayerSession.LocalPlayer.IsClient;
			IsHost = IsMultiplayerActive && NebulaModAPI.MultiplayerSession.LocalPlayer.IsHost;
		}

		public static void OnMultiplayerGameEnded()
		{
			IsMultiplayerActive = false;
			IsClient = false;
			SkillComponent.CloseSkill();
		}

		public static void OnPlayerJoin(IPlayerData playerData)
		{
			PlayerWpStorage.WPDATA wPDATA = GameManager.LoadPlayerData(playerData.PlayerId);
			if (wPDATA.inited)
			{
				NebulaModAPI.MultiplayerSession.Network.SendPacket<WpdataPacket>(new WpdataPacket(playerData.PlayerId, save: false, wPDATA.itemId, wPDATA.count));
			}
		}
	}
}
namespace DSP_WeaponPlus.Compatibility
{
	public class MoreMegaStructure
	{
		internal const string GUID = "Gnimaerd.DSP.plugin.MoreMegaStructure";

		internal static bool Enable;

		internal static void Compatible()
		{
			//IL_0044: Unknown result type (might be due to invalid IL or missing references)
			//IL_0053: Unknown result type (might be due to invalid IL or missing references)
			//IL_006f: Unknown result type (might be due to invalid IL or missing references)
			//IL_007e: Unknown result type (might be due to invalid IL or missing references)
			Enable = Chainloader.PluginInfos.TryGetValue("Gnimaerd.DSP.plugin.MoreMegaStructure", out var _);
			if (Enable)
			{
				Debug.LogError((object)"是巨构,挪位置");
				((RectTransform)((Component)UIRoot.instance.uiGame.mechaWindow).transform).anchorMax = new Vector2(0.5f, 0.62f);
				GameObject val = GameObject.Find("UI Root/Overlay Canvas/In Game/Windows/Mecha Window/information/gear-max-num");
				((RectTransform)val.transform).anchoredPosition = new Vector2(0f, -520f);
			}
		}
	}
}
namespace DSP_WeaponPlus.Utils
{
	public interface IItemTypeChecker
	{
	}
	public enum EItemTypeD
	{
		Unknown,
		Resource,
		Material,
		Component,
		Product,
		Logistics,
		Production,
		Decoration,
		Turret,
		Defense,
		DarkFog,
		Matrix,
		消耗品,
		装备,
		强化芯片
	}
	public class MultiplayerWPpacket
	{
	}
	public class Equipmentcolumn : ManualBehaviour
	{
		private const string Mechaindow = "UI Root/Overlay Canvas/In Game/Windows/Mecha Window";

		[SerializeField]
		public static UIStorageGrid equiUIStorageGrid;

		public static GameObject clonedGameObject;

		private static bool _fuelisset = false;

		public static StorageComponent equistorage;

		public static int set_size = 8;

		public static int gird_r = 2;

		public static int gird_c = 4;

		public static int itemCount;

		public static bool[] itemIsWeapon;

		public static bool[] itemIsPower;

		public static bool[] itemIsPrinter;

		private static void MultiplayerSaveStorage()
		{
			if (NebulaModAPI.IsMultiplayerActive)
			{
				if (NebulaModAPI.MultiplayerSession.IsServer)
				{
				}
				int id = NebulaModAPI.MultiplayerSession.LocalPlayer.Id;
				int[] array = new int[equistorage.grids.Length];
				int[] array2 = new int[equistorage.grids.Length];
				for (int i = 0; i < equistorage.grids.Length; i++)
				{
					array[i] = equistorage.grids[i].itemId;
					array2[i] = equistorage.grids[i].count;
				}
				if (NebulaModAPI.MultiplayerSession.IsClient)
				{
					NebulaModAPI.MultiplayerSession.Network.SendPacket<WpdataPacket>(new WpdataPacket(id, save: true, array, array2));
				}
				else
				{
					GameManager.UpdatePlayer(id, array, array2);
				}
			}
		}

		private static void onStorageUpdate()
		{
			SkillComponent.CheckWeaponGrids();
			MultiplayerSaveStorage();
		}

		private static void onStorageGridUpdate()
		{
			//IL_003a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0040: Invalid comparison between Unknown and I4
			//IL_0029: Unknown result type (might be due to invalid IL or missing references)
			//IL_0075: Unknown result type (might be due to invalid IL or missing references)
			//IL_0109: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b7: Unknown result type (might be due to invalid IL or missing references)
			//IL_00fa: Unknown result type (might be due to invalid IL or missing references)
			if (SkillComponent.player.inhandItemId == 0 && SkillComponent.player.inhandItemCount == 0)
			{
				equistorage.type = (EStorageType)9;
			}
			else if ((int)equistorage.type > 0 && !itemIsWeapon[SkillComponent.player.inhandItemId])
			{
				UIRealtimeTip.Popup(Localization.Translate("只能放入装备和芯片"), true, 0);
				equistorage.type = (EStorageType)8;
			}
			else if (CheckisPower(SkillComponent.player.inhandItemId) && CheckisPower(0))
			{
				UIRealtimeTip.Popup(Localization.Translate("只允许装备1种反应堆"), true, 0);
				equistorage.type = (EStorageType)8;
			}
			else if (Checkisprinter(SkillComponent.player.inhandItemId) && Checkisprinter(0))
			{
				UIRealtimeTip.Popup(Localization.Translate("只允许装备1种打印机"), true, 0);
				equistorage.type = (EStorageType)8;
			}
			else
			{
				equistorage.type = (EStorageType)9;
			}
		}

		public static void setList()
		{
			itemIsWeapon = new bool[12000];
			itemIsWeapon[9725] = true;
			itemIsWeapon[9724] = true;
			itemIsWeapon[9723] = true;
			itemIsWeapon[9722] = true;
			itemIsWeapon[9763] = true;
			itemIsWeapon[9761] = true;
			itemIsWeapon[9721] = true;
			itemIsWeapon[9762] = true;
			itemIsWeapon[9726] = true;
			itemIsPower = new bool[12000];
			itemIsPower[9724] = true;
			itemIsPower[9723] = true;
			itemIsPower[9722] = true;
			itemIsPrinter = new bool[12000];
			itemIsPrinter[9725] = true;
			itemIsPrinter[9726] = true;
		}

		private static bool Checkisprinter(int itemid)
		{
			int num = itemid;
			if (num == 0)
			{
				for (int i = 0; i < equistorage.grids.Length; i++)
				{
					if (itemIsPrinter[equistorage.grids[i].itemId])
					{
						num = equistorage.grids[i].itemId;
						break;
					}
				}
			}
			return itemIsPrinter[num];
		}

		private static bool CheckisPower(int itemid)
		{
			int num = itemid;
			if (num == 0)
			{
				for (int i = 0; i < equistorage.grids.Length; i++)
				{
					if (itemIsPower[equistorage.grids[i].itemId])
					{
						num = equistorage.grids[i].itemId;
						break;
					}
				}
			}
			return itemIsPower[num];
		}

		public static void Init()
		{
			//IL_0010: Unknown result type (might be due to invalid IL or missing references)
			//IL_001a: Expected O, but got Unknown
			//IL_004a: Unknown result type (might be due to invalid IL or missing references)
			SkillComponent.player = GameMain.mainPlayer;
			equistorage = new StorageComponent(set_size);
			Debug.Log((object)$"StorageComponent _Init set={set_size}  size={equistorage.size}");
			equistorage.type = (EStorageType)9;
			setList();
			equistorage.onStorageChange += onStorageUpdate;
		}

		public static void EquipUICreate()
		{
			//IL_0081: Unknown result type (might be due to invalid IL or missing references)
			//IL_0090: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a5: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b4: Unknown result type (might be due to invalid IL or missing references)
			//IL_0100: Unknown result type (might be due to invalid IL or missing references)
			//IL_010f: Unknown result type (might be due to invalid IL or missing references)
			if (!_fuelisset)
			{
				set_size = gird_r * gird_c;
				GameObject gameObject = ((Component)((Component)UIRoot.instance.uiGame.mechaWindow.fuelGrid).GetComponentInChildren<UIStorageGrid>()).gameObject;
				clonedGameObject = Object.Instantiate<GameObject>(gameObject, ((Component)UIRoot.instance.uiGame.mechaWindow).transform);
				((Object)clonedGameObject).name = "weapon-group";
				((RectTransform)((Component)UIRoot.instance.uiGame.mechaWindow).transform).anchorMax = new Vector2(0.5f, 0.61f);
				((RectTransform)clonedGameObject.transform).anchoredPosition = new Vector2(467f, -480f);
				GameObject val = Object.Instantiate<GameObject>(GameObject.Find("UI Root/Overlay Canvas/In Game/Windows/Mecha Window/information/construction-panel/title"), clonedGameObject.transform);
				((Object)val).name = "weapon-title";
				val.GetComponent<Localizer>().stringKey = Localization.Translate("装备栏");
				((RectTransform)val.transform).anchoredPosition = new Vector2(8f, 20f);
				equiUIStorageGrid = clonedGameObject.GetComponent<UIStorageGrid>();
				equiUIStorageGrid.beforeManualChange += onStorageGridUpdate;
				if (equistorage != null)
				{
					equistorage.Free();
				}
				Init();
				((ManualBehaviour)equiUIStorageGrid)._Create();
				equiUIStorageGrid.rowCount = gird_r;
				equiUIStorageGrid.colCount = gird_c;
				_fuelisset = true;
			}
		}

		[HarmonyPostfix]
		[HarmonyPatch(typeof(UIMechaWindow), "_OnOpen")]
		public static void UIMechaWindow_OnOpen_Postfix()
		{
			//IL_0018: Unknown result type (might be due to invalid IL or missing references)
			((ManualBehaviour)equiUIStorageGrid)._Init((object)equistorage);
			equistorage.type = (EStorageType)9;
			((ManualBehaviour)equiUIStorageGrid)._Open();
		}

		[HarmonyPrefix]
		[HarmonyPatch(typeof(UIMechaWindow), "_OnClose")]
		public static void UIMechaWindow_OnClose_Prefix()
		{
			((ManualBehaviour)equiUIStorageGrid)._Free();
		}

		[HarmonyPostfix]
		[HarmonyPatch(typeof(UIMechaWindow), "_OnDestroy")]
		public static void UIMechaWindow_OnDestroy_Postfix()
		{
			((ManualBehaviour)equiUIStorageGrid)._Destroy();
		}
	}
	public static class ProtoID
	{
		internal const int I伊卡洛斯 = 0;

		internal const int I行星基地 = 1;

		internal const int I巨构星际组装厂 = 2;

		internal const int I铁矿 = 1001;

		internal const int I铜矿 = 1002;

		internal const int I硅石 = 1003;

		internal const int I钛石 = 1004;

		internal const int I石矿 = 1005;

		internal const int I煤矿 = 1006;

		internal const int I木材 = 1030;

		internal const int I植物燃料 = 1031;

		internal const int I可燃冰 = 1011;

		internal const int I金伯利矿石 = 1012;

		internal const int I分形硅石 = 1013;

		internal const int I光栅石 = 1014;

		internal const int I刺笋结晶 = 1015;

		internal const int I单极磁石 = 1016;

		internal const int I铁块 = 1101;

		internal const int I铜块 = 1104;

		internal const int I高纯硅块 = 1105;

		internal const int I钛块 = 1106;

		internal const int I石材 = 1108;

		internal const int I高能石墨 = 1109;

		internal const int I钢材 = 1103;

		internal const int I钛合金 = 1107;

		internal const int I玻璃 = 1110;

		internal const int I钛化玻璃 = 1119;

		internal const int I棱镜 = 1111;

		internal const int I金刚石 = 1112;

		internal const int I晶格硅 = 1113;

		internal const int I齿轮 = 1201;

		internal const int I磁铁 = 1102;

		internal const int I磁线圈_GB铜线圈 = 1202;

		internal const int I电动机 = 1203;

		internal const int I电磁涡轮 = 1204;

		internal const int I超级磁场环 = 1205;

		internal const int I粒子容器 = 1206;

		internal const int I奇异物质 = 1127;

		internal const int I电路板 = 1301;

		internal const int I处理器 = 1303;

		internal const int I量子芯片 = 1305;

		internal const int I微晶元件 = 1302;

		internal const int I位面过滤器 = 1304;

		internal const int I粒子宽带 = 1402;

		internal const int I电浆激发器 = 1401;

		internal const int I光子合并器 = 1404;

		internal const int I太阳帆 = 1501;

		internal const int I = 1000;

		internal const int I原油 = 1007;

		internal const int I精炼油_GB焦油 = 1114;

		internal const int I硫酸 = 1116;

		internal const int I = 1120;

		internal const int I重氢 = 1121;

		internal const int I反物质 = 1122;

		internal const int I临界光子 = 1208;

		internal const int I液氢燃料棒 = 1801;

		internal const int I氘核燃料棒 = 1802;

		internal const int I反物质燃料棒 = 1803;

		internal const int I奇异湮灭燃料棒 = 1804;

		internal const int I塑料_GB聚丙烯 = 1115;

		internal const int I石墨烯 = 1123;

		internal const int I碳纳米管 = 1124;

		internal const int I有机晶体 = 1117;

		internal const int I钛晶石 = 1118;

		internal const int I卡西米尔晶体 = 1126;

		internal const int I燃烧单元 = 1128;

		internal const int I爆破单元 = 1129;

		internal const int I晶石爆破单元 = 1130;

		internal const int I引力透镜 = 1209;

		internal const int I空间翘曲器 = 1210;

		internal const int I湮灭约束球 = 1403;

		internal const int I动力引擎 = 1407;

		internal const int I推进器 = 1405;

		internal const int I加力推进器 = 1406;

		internal const int I配送运输机 = 5003;

		internal const int I物流运输机 = 5001;

		internal const int I星际物流运输船 = 5002;

		internal const int I框架材料 = 1125;

		internal const int I戴森球组件 = 1502;

		internal const int I小型运载火箭 = 1503;

		internal const int I地基 = 1131;

		internal const int I增产剂MkI = 1141;

		internal const int I增产剂MkII = 1142;

		internal const int I增产剂MkIII_GB增产剂 = 1143;

		internal const int I机枪弹箱 = 1601;

		internal const int I钛化弹箱 = 1602;

		internal const int I超合金弹箱 = 1603;

		internal const int I炮弹组 = 1604;

		internal const int I高爆炮弹组 = 1605;

		internal const int I晶石炮弹组 = 1606;

		internal const int I等离子胶囊 = 1607;

		internal const int I反物质胶囊 = 1608;

		internal const int I导弹组 = 1609;

		internal const int I超音速导弹组 = 1610;

		internal const int I引力导弹组 = 1611;

		internal const int I干扰胶囊 = 1612;

		internal const int I压制胶囊 = 1613;

		internal const int I原型机 = 5101;

		internal const int I精准无人机 = 5102;

		internal const int I攻击无人机 = 5103;

		internal const int I护卫舰 = 5111;

		internal const int I驱逐舰 = 5112;

		internal const int I黑雾矩阵 = 5201;

		internal const int I硅基神经元 = 5202;

		internal const int I物质重组器 = 5203;

		internal const int I负熵奇点 = 5204;

		internal const int I核心素 = 5205;

		internal const int I能量碎片 = 5206;

		internal const int I传送带 = 2001;

		internal const int I高速传送带 = 2002;

		internal const int I极速传送带 = 2003;

		internal const int I分拣器 = 2011;

		internal const int I高速分拣器 = 2012;

		internal const int I极速分拣器 = 2013;

		internal const int I集装分拣器 = 2014;

		internal const int I四向分流器 = 2020;

		internal const int I自动集装机 = 2040;

		internal const int I流速监测器 = 2030;

		internal const int I喷涂机 = 2313;

		internal const int I物流配送器 = 2107;

		internal const int I小型储物仓 = 2101;

		internal const int I大型储物仓 = 2102;

		internal const int I储液罐 = 2106;

		internal const int I制造台MkI_GB基础制造台 = 2303;

		internal const int I制造台MkII_GB标准制造单元 = 2304;

		internal const int I制造台MkIII_GB高精度装配线 = 2305;

		internal const int I重组式制造台_GB物质重组工厂 = 2318;

		internal const int I电力感应塔 = 2201;

		internal const int I无线输电塔 = 2202;

		internal const int I卫星配电站 = 2212;

		internal const int I风力涡轮机 = 2203;

		internal const int I火力发电厂 = 2204;

		internal const int I微型聚变发电站_GB裂变能源发电站 = 2211;

		internal const int I地热发电站 = 2213;

		internal const int I采矿机 = 2301;

		internal const int I大型采矿机 = 2316;

		internal const int I抽水站 = 2306;

		internal const int I电弧熔炉 = 2302;

		internal const int I位面熔炉 = 2315;

		internal const int I负熵熔炉 = 2319;

		internal const int I原油萃取站 = 2307;

		internal const int I原油精炼厂 = 2308;

		internal const int I化工厂 = 2309;

		internal const int I量子化工厂_GB先进化学反应釜 = 2317;

		internal const int I分馏塔 = 2314;

		internal const int I太阳能板 = 2205;

		internal const int I蓄电器 = 2206;

		internal const int I蓄电器满 = 2207;

		internal const int I电磁轨道弹射器 = 2311;

		internal const int I射线接收站 = 2208;

		internal const int I垂直发射井 = 2312;

		internal const int I能量枢纽 = 2209;

		internal const int I微型粒子对撞机 = 2310;

		internal const int I人造恒星_GB人造恒星MKI = 2210;

		internal const int I行星内物流运输站 = 2103;

		internal const int I星际物流运输站 = 2104;

		internal const int I轨道采集器 = 2105;

		internal const int I矩阵研究站 = 2901;

		internal const int I自演化研究站 = 2902;

		internal const int I高斯机枪塔 = 3001;

		internal const int I高频激光塔_GB高频激光塔MKI = 3002;

		internal const int I聚爆加农炮_GB聚爆加农炮MKI = 3003;

		internal const int I磁化电浆炮 = 3004;

		internal const int I导弹防御塔 = 3005;

		internal const int I干扰塔 = 3006;

		internal const int I信号塔 = 3007;

		internal const int I行星护盾发生器 = 3008;

		internal const int I战场分析基站 = 3009;

		internal const int I近程电浆塔 = 3010;

		internal const int I电磁矩阵 = 6001;

		internal const int I能量矩阵 = 6002;

		internal const int I结构矩阵 = 6003;

		internal const int I信息矩阵 = 6004;

		internal const int I引力矩阵 = 6005;

		internal const int I宇宙矩阵 = 6006;

		internal const int I沙土 = 1099;

		internal const int IMS引力发生装置 = 9480;

		internal const int IMS位面约束环 = 9481;

		internal const int IMS引力钻头 = 9482;

		internal const int IMS隧穿激发装置 = 9483;

		internal const int IMS谐振盘 = 9484;

		internal const int IMS光子探针 = 9485;

		internal const int IMS量子计算机 = 9486;

		internal const int IMS星际组装厂组件 = 9487;

		internal const int IMS物质解压器运载火箭 = 9488;

		internal const int IMS科学枢纽运载火箭 = 9489;

		internal const int IMS谐振发射器运载火箭 = 9490;

		internal const int IMS星际组装厂运载火箭 = 9491;

		internal const int IMS晶体重构器运载火箭 = 9492;

		internal const int IMS多功能集成组件 = 9500;

		internal const int IMS力场发生器 = 9503;

		internal const int IMS复合态晶体 = 9504;

		internal const int IMS电磁力抑制器 = 9505;

		internal const int IMS胶子发生器 = 9506;

		internal const int IMS强力过载装置 = 9507;

		internal const int IMS导流框架 = 9508;

		internal const int IMS恒星炮组件 = 9509;

		internal const int IMS恒星炮运载火箭 = 9510;

		internal const int IVD水滴 = 9511;

		internal const int IMS铁金属重构装置 = 9493;

		internal const int IMS铜金属重构装置 = 9494;

		internal const int IMS高纯硅重构装置 = 9495;

		internal const int IMS钛金属重构装置 = 9496;

		internal const int IMS单极磁石重构装置 = 9497;

		internal const int IMS晶体接收器 = 9498;

		internal const int IMS组件集成装置 = 9499;

		internal const int IMS石墨提炼装置 = 9501;

		internal const int IMS光栅晶体接收器 = 9502;

		internal const int IMS物资交换物流站 = 9512;

		internal const int IVD水滴额外伤害 = 8035;

		internal const int IVD星河卫士勋章 = 9513;

		internal const int IGB钨矿 = 6201;

		internal const int IGB铝矿 = 6202;

		internal const int IGB铝块 = 6203;

		internal const int IGB铝合金 = 6204;

		internal const int IGB二氧化碳 = 6206;

		internal const int IGB硫矿 = 6207;

		internal const int IGB混凝土 = 6208;

		internal const int IGB四氢双环戊二烯JP10 = 6212;

		internal const int IGB四氢双环戊二烯燃料棒 = 6216;

		internal const int IGB煤油燃料棒 = 6217;

		internal const int IGB = 6220;

		internal const int IGB同位素温差发电机 = 6221;

		internal const int IGB放射性矿物 = 6222;

		internal const int IGB铀矿 = 6225;

		internal const int IGB钚矿 = 6226;

		internal const int IGB含铀核燃料 = 6227;

		internal const int IGB含钚核燃料 = 6228;

		internal const int IGB量子储液罐 = 6229;

		internal const int IGB矿物处理厂 = 6230;

		internal const int IGB量子储物仓 = 6231;

		internal const int IGB = 6234;

		internal const int IGB氦三 = 6235;

		internal const int IGB钚燃料棒 = 6241;

		internal const int IGB铀燃料棒 = 6242;

		internal const int IGBMOX燃料棒 = 6243;

		internal const int IGB氦三燃料棒 = 6244;

		internal const int IGB氘氦混合燃料棒 = 6245;

		internal const int IGB石粉 = 6251;

		internal const int IGB铁矿粉 = 6252;

		internal const int IGB铜矿粉 = 6253;

		internal const int IGB硅矿粉 = 6254;

		internal const int IGB钛矿粉 = 6255;

		internal const int IGB煤矿粉 = 6256;

		internal const int IGB天穹装配厂 = 6257;

		internal const int IGB物质裂解塔 = 6258;

		internal const int IGB埃克森美孚化工厂 = 6259;

		internal const int IGB工业先锋精密加工中心 = 6260;

		internal const int IGB人造恒星MKII = 6261;

		internal const int IGB氦闪约束器 = 6263;

		internal const int IGB物质分解设施 = 6264;

		internal const int IGB苍穹粒子加速器 = 6265;

		internal const int IGB聚束液体汲取设施 = 6266;

		internal const int IGB大气采集站 = 6267;

		internal const int IGB三元精金 = 6271;

		internal const int IGB铝矿粉 = 6273;

		internal const int IGB硫粉 = 6277;

		internal const int IGB通量矩阵 = 6278;

		internal const int IGB空间矩阵 = 6279;

		internal const int IGB宇宙矩阵粗坯 = 6280;

		internal const int IGB钨矿粉 = 6281;

		internal const int IGB基础机械组件 = 6501;

		internal const int IGB先进机械组件 = 6502;

		internal const int IGB尖端机械组件 = 6503;

		internal const int IGB超级机械组件 = 6504;

		internal const int IGB创世之书 = 6506;

		internal const int IGB虚空之书 = 6507;

		internal const int IGB起源之书 = 6508;

		internal const int IGB空燃料棒 = 6509;

		internal const int IGB开发者日志01 = 6511;

		internal const int IGB开发者日志02 = 6512;

		internal const int IGB开发者日志03 = 6513;

		internal const int IGB开发者日志04 = 6514;

		internal const int IGB开发者日志05 = 6515;

		internal const int IGB开发者日志06 = 6516;

		internal const int IGB开发者日志07 = 6517;

		internal const int IGB开发者日志08 = 6518;

		internal const int IGB开发者日志09 = 6519;

		internal const int IGB开发者日志10 = 6520;

		internal const int IGB开发者日志11 = 6521;

		internal const int IGB电力节约 = 6522;

		internal const int IGB上传扩容 = 6523;

		internal const int IGB燃料回收 = 6524;

		internal const int IGB风力扩容 = 6525;

		internal const int IGB光伏扩容 = 6526;

		internal const int IGB热聚增效 = 6527;

		internal const int IGB资源采掘 = 6528;

		internal const int IGB裂变增效 = 6529;

		internal const int IGB先进推进 = 6530;

		internal const int IGB特征向量模拟 = 6531;

		internal const int IGB中继信号干扰 = 6532;

		internal const int IGB神经元重编程 = 6533;

		internal const int IGB异常代码分析 = 6534;

		internal const int IGB = 7002;

		internal const int IGB = 7006;

		internal const int IGB丙烯 = 7009;

		internal const int IGB盐酸 = 7014;

		internal const int IGB三氯化铁 = 7015;

		internal const int IGB硝酸 = 7017;

		internal const int IGB海水 = 7018;

		internal const int IGB = 7019;

		internal const int IGB氢氧化钠 = 7020;

		internal const int IGB氯化钠 = 7101;

		internal const int IGB塑料基板 = 7501;

		internal const int IGB光学基板 = 7504;

		internal const int IGB钢芯弹箱 = 7607;

		internal const int IGB钨芯弹箱 = 7608;

		internal const int IGB三元弹箱 = 7609;

		internal const int IGB核子爆破单元 = 7610;

		internal const int IGB反物质湮灭单元 = 7611;

		internal const int IGB微型核弹组 = 7612;

		internal const int IGB反物质炮弹组 = 7613;

		internal const int IGB反物质导弹组 = 7615;

		internal const int IGB湮灭弹箱 = 7616;

		internal const int IGB聚爆加农炮MKII = 7617;

		internal const int IGB高频激光塔MKII = 7618;

		internal const int IGB钨块 = 7705;

		internal const int IGB钨强化玻璃 = 7706;

		internal const int IGB钨合金 = 7707;

		internal const int IGB聚苯硫醚PPS = 7708;

		internal const int IGB聚酰亚胺PI = 7709;

		internal const int IGB光学处理器 = 7803;

		internal const int IGB光学信息传输纤维 = 7804;

		internal const int IGB量子计算主机 = 7805;

		internal const int IGB超越X1型光学主机 = 7806;

		internal const int IFE自然资源分馏塔 = 2321;

		internal const int IFE升级分馏塔 = 2322;

		internal const int IFE降级分馏塔 = 2323;

		internal const int IFE垃圾回收分馏塔 = 2324;

		internal const int IFE点数聚集分馏塔 = 2325;

		internal const int IFE增产分馏塔 = 2326;

		internal const int IWP结构结晶 = 9701;

		internal const int IWP操控结晶 = 9702;

		internal const int IWP力场结晶 = 9703;

		internal const int IWP电弧采矿器 = 9721;

		internal const int IWPS型反应堆 = 9722;

		internal const int IWPM型反应堆 = 9723;

		internal const int IWPL型反应堆 = 9724;

		internal const int IWP3D打印机 = 9725;

		internal const int IWP量子打印机 = 9726;

		internal const int IWP机体重构芯片 = 9761;

		internal const int IWP神经元芯片 = 9762;

		internal const int IWP护盾力场芯片 = 9763;

		internal const int M = 494;

		internal const int M燃烧单元 = 489;

		internal const int M爆破单元 = 490;

		internal const int M晶石爆破单元_GB反物质湮灭单元 = 491;

		internal const int M配送运输机 = 372;

		internal const int M物流运输机 = 47;

		internal const int M星际物流运输船 = 48;

		internal const int M小型运载火箭 = 75;

		internal const int M炮弹组 = 486;

		internal const int M高爆炮弹组 = 487;

		internal const int M晶石炮弹组_GB微型核弹组 = 488;

		internal const int M导弹组 = 432;

		internal const int M超音速导弹组 = 433;

		internal const int M引力导弹组 = 434;

		internal const int M干扰胶囊 = 492;

		internal const int M压制胶囊 = 493;

		internal const int M原型机 = 448;

		internal const int M精准无人机 = 449;

		internal const int M攻击无人机 = 450;

		internal const int M护卫舰 = 451;

		internal const int M驱逐舰 = 452;

		internal const int M传送带 = 35;

		internal const int M高速传送带 = 36;

		internal const int M极速传送带 = 37;

		internal const int M分拣器 = 41;

		internal const int M高速分拣器 = 42;

		internal const int M极速分拣器 = 43;

		internal const int M集装分拣器 = 483;

		internal const int M四向分流器 = 38;

		internal const int M自动集装机 = 257;

		internal const int M流速监测器 = 208;

		internal const int M喷涂机 = 120;

		internal const int M物流配送器 = 371;

		internal const int M小型储物仓 = 51;

		internal const int M大型储物仓 = 52;

		internal const int M储液罐 = 121;

		internal const int M制造台MkI_GB基础制造台 = 65;

		internal const int M制造台MkII_GB标准制造单元 = 66;

		internal const int M制造台MkIII_GB高精度装配线 = 67;

		internal const int M重组式制造台_GB物质重组工厂 = 456;

		internal const int M电力感应塔 = 44;

		internal const int M无线输电塔 = 71;

		internal const int M卫星配电站 = 68;

		internal const int M风力涡轮机 = 53;

		internal const int M火力发电厂 = 54;

		internal const int M微型聚变发电站_GB裂变能源发电站 = 118;

		internal const int M地热发电站 = 255;

		internal const int M采矿机 = 57;

		internal const int M大型采矿机 = 256;

		internal const int M抽水站 = 60;

		internal const int M电弧熔炉 = 62;

		internal const int M位面熔炉 = 194;

		internal const int M负熵熔炉 = 457;

		internal const int M原油萃取站 = 61;

		internal const int M原油精炼厂 = 63;

		internal const int M化工厂 = 64;

		internal const int M量子化工厂_GB先进化学反应釜 = 376;

		internal const int M分馏塔 = 119;

		internal const int M太阳能板 = 55;

		internal const int M蓄电器 = 46;

		internal const int M蓄电器满 = 46;

		internal const int M电磁轨道弹射器 = 72;

		internal const int M射线接收站 = 73;

		internal const int M垂直发射井 = 74;

		internal const int M能量枢纽 = 45;

		internal const int M微型粒子对撞机 = 69;

		internal const int M人造恒星_GB人造恒星MKI = 56;

		internal const int M行星内物流运输站 = 49;

		internal const int M星际物流运输站 = 50;

		internal const int M轨道采集器 = 117;

		internal const int M矩阵研究站 = 70;

		internal const int M自演化研究站 = 455;

		internal const int M高斯机枪塔 = 374;

		internal const int M高频激光塔_GB高频激光塔MKI = 373;

		internal const int M聚爆加农炮_GB聚爆加农炮MKI = 375;

		internal const int M磁化电浆炮 = 408;

		internal const int M导弹防御塔 = 407;

		internal const int M干扰塔 = 422;

		internal const int M信号塔 = 403;

		internal const int M行星护盾发生器 = 402;

		internal const int M战场分析基站 = 453;

		internal const int M近程电浆塔 = 482;

		internal const int MMS铁金属重构装置 = 73;

		internal const int MMS铜金属重构装置 = 73;

		internal const int MMS高纯硅重构装置 = 73;

		internal const int MMS钛金属重构装置 = 73;

		internal const int MMS单极磁石重构装置 = 73;

		internal const int MMS晶体接收器 = 73;

		internal const int MMS组件集成装置 = 73;

		internal const int MMS石墨提炼装置 = 73;

		internal const int MMS光栅晶体接收器 = 73;

		internal const int MMS物资交换物流站 = 50;

		internal const int MGB量子储液罐 = 801;

		internal const int MGB矿物处理厂 = 802;

		internal const int MGB天穹装配厂 = 803;

		internal const int MGB物质裂解塔 = 804;

		internal const int MGB埃克森美孚化工厂 = 805;

		internal const int MGB工业先锋精密加工中心 = 806;

		internal const int MGB人造恒星MKII = 807;

		internal const int MGB聚束液体汲取设施 = 808;

		internal const int MGB同位素温差发电机 = 809;

		internal const int MGB物质分解设施 = 810;

		internal const int MGB苍穹粒子加速器 = 811;

		internal const int MGB大气采集站 = 812;

		internal const int MGB反物质导弹组 = 813;

		internal const int MGB量子储物仓 = 814;

		internal const int MGB聚爆加农炮MKII = 815;

		internal const int MGB高频激光塔MKII = 816;

		internal const int MGB核子爆破单元 = 817;

		internal const int MGB反物质炮弹组 = 818;

		internal const int MFE自然资源分馏塔 = 531;

		internal const int MFE升级分馏塔 = 532;

		internal const int MFE降级分馏塔 = 533;

		internal const int MFE垃圾回收分馏塔 = 534;

		internal const int MFE点数聚集分馏塔 = 535;

		internal const int MFE增产分馏塔 = 536;

		internal const int R铁块 = 1;

		internal const int R磁铁_GB铜线圈 = 2;

		internal const int R铜块 = 3;

		internal const int R石材 = 4;

		internal const int R齿轮 = 5;

		internal const int R磁线圈_GB电路板 = 6;

		internal const int R风力涡轮机 = 7;

		internal const int R电力感应塔 = 8;

		internal const int R电磁矩阵 = 9;

		internal const int R矩阵研究站 = 10;

		internal const int R棱镜 = 11;

		internal const int R电浆激发器 = 12;

		internal const int R无线输电塔 = 13;

		internal const int R原油萃取站 = 14;

		internal const int R原油精炼厂 = 15;

		internal const int R等离子精炼 = 16;

		internal const int R高能石墨 = 17;

		internal const int R能量矩阵 = 18;

		internal const int R液氢燃料棒 = 19;

		internal const int R推进器 = 20;

		internal const int R加力推进器 = 21;

		internal const int R化工厂 = 22;

		internal const int R塑料_GB聚丙烯 = 23;

		internal const int R硫酸 = 24;

		internal const int R有机晶体_GB铝块 = 25;

		internal const int R钛晶石_GB铝合金 = 26;

		internal const int R结构矩阵 = 27;

		internal const int R卡西米尔晶体 = 28;

		internal const int R卡西米尔晶体高效 = 29;

		internal const int R钛化玻璃 = 30;

		internal const int R石墨烯 = 31;

		internal const int R石墨烯高效 = 32;

		internal const int R碳纳米管 = 33;

		internal const int R硅石_硅石筛选 = 34;

		internal const int R碳纳米管高效 = 35;

		internal const int R粒子宽带 = 36;

		internal const int R晶格硅 = 37;

		internal const int R位面过滤器 = 38;

		internal const int R微型粒子对撞机 = 39;

		internal const int R重氢 = 40;

		internal const int R氘核燃料棒 = 41;

		internal const int R湮灭约束球 = 42;

		internal const int R人造恒星_GB人造恒星MKI = 43;

		internal const int R反物质燃料棒 = 44;

		internal const int R制造台MkI_GB基础制造台 = 45;

		internal const int R制造台MkII_GB标准制造单元 = 46;

		internal const int R制造台MkIII_GB高精度装配线 = 47;

		internal const int R采矿机 = 48;

		internal const int R抽水站 = 49;

		internal const int R电路板_玻璃 = 50;

		internal const int R处理器 = 51;

		internal const int R量子芯片 = 52;

		internal const int R微晶元件 = 53;

		internal const int R有机晶体原始_GB埃克森美孚化工厂 = 54;

		internal const int R信息矩阵 = 55;

		internal const int R电弧熔炉 = 56;

		internal const int R玻璃_GB三元精金 = 57;

		internal const int RX射线裂解 = 58;

		internal const int R高纯硅块 = 59;

		internal const int R金刚石 = 60;

		internal const int R金刚石高效 = 61;

		internal const int R晶格硅高效 = 62;

		internal const int R钢材 = 63;

		internal const int R火力发电厂 = 64;

		internal const int R钛块 = 65;

		internal const int R钛合金 = 66;

		internal const int R太阳能板 = 67;

		internal const int R光子合并器 = 68;

		internal const int R光子合并器高效 = 69;

		internal const int R太阳帆 = 70;

		internal const int R电磁轨道弹射器 = 71;

		internal const int R射线接收站 = 72;

		internal const int R卫星配电站 = 73;

		internal const int R质能储存 = 74;

		internal const int R宇宙矩阵 = 75;

		internal const int R蓄电器 = 76;

		internal const int R能量枢纽 = 77;

		internal const int R空间翘曲器 = 78;

		internal const int R空间翘曲器高级 = 79;

		internal const int R框架材料 = 80;

		internal const int R戴森球组件 = 81;

		internal const int R垂直发射井 = 82;

		internal const int R小型运载火箭 = 83;

		internal const int R传送带 = 84;

		internal const int R分拣器 = 85;

		internal const int R小型储物仓 = 86;

		internal const int R四向分流器 = 87;

		internal const int R高速分拣器 = 88;

		internal const int R高速传送带 = 89;

		internal const int R极速分拣器 = 90;

		internal const int R大型储物仓 = 91;

		internal const int R极速传送带 = 92;

		internal const int R行星内物流运输站 = 93;

		internal const int R物流运输机 = 94;

		internal const int R星际物流运输站 = 95;

		internal const int R星际物流运输船 = 96;

		internal const int R电动机 = 97;

		internal const int R电磁涡轮 = 98;

		internal const int R粒子容器 = 99;

		internal const int R粒子容器高效 = 100;

		internal const int R引力透镜 = 101;

		internal const int R引力矩阵 = 102;

		internal const int R超级磁场环 = 103;

		internal const int R奇异物质 = 104;

		internal const int R增产剂MkI_GB氦三 = 106;

		internal const int R增产剂MkII_GB氦原子提取 = 107;

		internal const int R增产剂MkIII_GB增产剂 = 108;

		internal const int R喷涂机 = 109;

		internal const int R分馏塔_GB人造恒星MKII = 110;

		internal const int R轨道采集器 = 111;

		internal const int R地基 = 112;

		internal const int R微型聚变发电站_GB裂变能源发电站 = 113;

		internal const int R储液罐 = 114;

		internal const int R重氢分馏_GB氦闪约束器 = 115;

		internal const int R位面熔炉 = 116;

		internal const int R流速监测器 = 117;

		internal const int R地热发电站 = 118;

		internal const int R大型采矿机 = 119;

		internal const int R自动集装机 = 120;

		internal const int R重整精炼_GB铝矿粉 = 121;

		internal const int R物流配送器 = 122;

		internal const int R配送运输机 = 123;

		internal const int R量子化工厂_GB先进化学反应釜 = 124;

		internal const int R高斯机枪塔 = 125;

		internal const int R高频激光塔_GB高频激光塔MKI = 126;

		internal const int R聚爆加农炮_GB聚爆加农炮MKI = 127;

		internal const int R磁化电浆炮 = 128;

		internal const int R导弹防御塔 = 129;

		internal const int R干扰塔 = 130;

		internal const int R信号塔 = 131;

		internal const int R行星护盾发生器 = 132;

		internal const int R燃烧单元 = 133;

		internal const int R爆破单元 = 134;

		internal const int R晶石爆破单元_GB核子爆破单元 = 135;

		internal const int R机枪弹箱 = 136;

		internal const int R钛化弹箱 = 137;

		internal const int R超合金弹箱 = 138;

		internal const int R炮弹组 = 139;

		internal const int R高爆炮弹组 = 140;

		internal const int R晶石炮弹组_GB微型核弹组 = 141;

		internal const int R等离子胶囊 = 142;

		internal const int R反物质胶囊 = 143;

		internal const int R导弹组 = 144;

		internal const int R超音速导弹组 = 145;

		internal const int R引力导弹组 = 146;

		internal const int R原型机 = 147;

		internal const int R精准无人机 = 148;

		internal const int R攻击无人机 = 149;

		internal const int R护卫舰 = 150;

		internal const int R驱逐舰 = 151;

		internal const int R动力引擎 = 105;

		internal const int R战场分析基站 = 152;

		internal const int R自演化研究站 = 153;

		internal const int R重组式制造台_GB物质重组工厂 = 154;

		internal const int R负熵熔炉 = 155;

		internal const int R奇异湮灭燃料棒 = 156;

		internal const int R近程电浆塔 = 157;

		internal const int R干扰胶囊 = 158;

		internal const int R压制胶囊 = 159;

		internal const int R集装分拣器 = 160;

		internal const int RMS引力发生装置 = 530;

		internal const int RMS位面约束环 = 531;

		internal const int RMS引力钻头 = 532;

		internal const int RMS隧穿激发装置 = 533;

		internal const int RMS谐振盘 = 534;

		internal const int RMS光子探针 = 535;

		internal const int RMS量子计算机 = 536;

		internal const int RMS星际组装厂组件 = 537;

		internal const int RMS多功能集成组件 = 550;

		internal const int RMS物质解压器运载火箭 = 538;

		internal const int RMS科学枢纽运载火箭 = 539;

		internal const int RMS谐振发射器运载火箭 = 540;

		internal const int RMS星际组装厂运载火箭 = 541;

		internal const int RMS晶体重构器运载火箭 = 542;

		internal const int RMS力场发生器Recipe = 565;

		internal const int RMS复合态晶体Recipe = 566;

		internal const int RMS电磁力抑制器Recipe = 567;

		internal const int RMS胶子发生器Recipe = 568;

		internal const int RMS强力过载装置Recipe = 569;

		internal const int RMS导流框架Recipe = 570;

		internal const int RMS恒星炮组件Recipe = 571;

		internal const int RMS恒星炮运载火箭Recipe = 572;

		internal const int RMS水滴gmRecipe = 573;

		internal const int RMS制造台快速组装 = 554;

		internal const int RMS传送带快速组装 = 551;

		internal const int RMS化工厂快速组装 = 556;

		internal const int RMS对撞机快速组装 = 558;

		internal const int RMS星际物流快速组装 = 562;

		internal const int RMS研究站快速组装 = 559;

		internal const int RMS行星内物流快速组装 = 561;

		internal const int RMS配电站快速组装 = 553;

		internal const int RMS人造恒星快速组装 = 560;

		internal const int RMS精炼厂快速组装 = 557;

		internal const int RMS位面熔炉快速组装 = 555;

		internal const int RMS分拣器快速组装 = 552;

		internal const int RMS铁金属重构装置 = 543;

		internal const int RMS铜金属重构装置 = 544;

		internal const int RMS高纯硅重构装置 = 545;

		internal const int RMS钛金属重构装置 = 546;

		internal const int RMS单极磁石重构装置 = 547;

		internal const int RMS晶体接收器 = 548;

		internal const int RMS组件集成装置 = 549;

		internal const int RMS石墨提炼装置 = 563;

		internal const int RMS光栅晶体接收器 = 564;

		internal const int RMS物资交换物流站 = 575;

		internal const int RVD星河卫士奖章Recipe = 382;

		internal const int RGB放射性矿物处理 = 401;

		internal const int RGB铝矿精炼 = 402;

		internal const int RGB钨矿精炼 = 404;

		internal const int RGB钨矿粉 = 405;

		internal const int RGB含铀核燃料 = 406;

		internal const int RGB含钚核燃料 = 407;

		internal const int RGB铀燃料棒 = 408;

		internal const int RGB钚燃料棒 = 409;

		internal const int RGBMOX燃料棒 = 410;

		internal const int RGB铁矿精炼 = 411;

		internal const int RGB铜矿精炼 = 412;

		internal const int RGB硅矿精炼 = 413;

		internal const int RGB钛矿精炼 = 414;

		internal const int RGB混凝土 = 415;

		internal const int RGB天穹装配厂 = 416;

		internal const int RGB苍穹粒子加速器 = 417;

		internal const int RGB聚束液体汲取设施 = 418;

		internal const int RGB大气采集站 = 419;

		internal const int RGB石矿精炼 = 420;

		internal const int RGB煤矿精炼 = 421;

		internal const int RGB工业先锋精密加工中心 = 422;

		internal const int RGB物质分解设施 = 423;

		internal const int RGB物质回收 = 429;

		internal const int RGB焦油裂化 = 501;

		internal const int RGB二氧化碳 = 506;

		internal const int RGB催化重整 = 509;

		internal const int RGB四氢双环戊二烯JP10 = 512;

		internal const int RGB四氢双环戊二烯燃料棒 = 515;

		internal const int RGB煤油燃料棒 = 516;

		internal const int RGB处理器高效 = 519;

		internal const int RGB量子储液罐 = 522;

		internal const int RGB矿物处理厂 = 523;

		internal const int RGB量子储物仓 = 524;

		internal const int RGB铁矿粉 = 531;

		internal const int RGB铜矿粉 = 532;

		internal const int RGB硅矿粉 = 533;

		internal const int RGB钛矿粉 = 534;

		internal const int RGB石粉 = 535;

		internal const int RGB煤矿粉 = 536;

		internal const int RGB硫粉 = 537;

		internal const int RGB通量矩阵 = 539;

		internal const int RGB空间矩阵 = 540;

		internal const int RGB质能储存高效 = 541;

		internal const int RGB物质裂解塔 = 542;

		internal const int RGB宇宙矩阵粗坯 = 544;

		internal const int RGB活性纤维重组 = 550;

		internal const int RGB超越X1型光学主机 = 569;

		internal const int RGB氘氦混合燃料棒 = 624;

		internal const int RGB氦三燃料棒 = 625;

		internal const int RGB基础机械组件 = 641;

		internal const int RGB先进机械组件 = 642;

		internal const int RGB尖端机械组件 = 643;

		internal const int RGB空燃料棒 = 644;

		internal const int RGB水电解 = 702;

		internal const int RGB盐水电解 = 703;

		internal const int RGB钛晶石高效 = 709;

		internal const int RGB合成氨 = 710;

		internal const int RGB煤炭干馏 = 712;

		internal const int RGB焦油分馏 = 713;

		internal const int RGB钛晶石 = 714;

		internal const int RGB三氯化铁 = 716;

		internal const int RGB氨氧化 = 717;

		internal const int RGB羰基合成 = 720;

		internal const int RGB塑料基板 = 751;

		internal const int RGB同位素温差发电机 = 752;

		internal const int RGB光学基板 = 754;

		internal const int RGB聚苯硫醚PPS = 771;

		internal const int RGB聚酰亚胺PI = 772;

		internal const int RGB钨矿筛选 = 773;

		internal const int RGB钨块 = 774;

		internal const int RGB钨强化玻璃 = 775;

		internal const int RGB钨合金 = 776;

		internal const int RGB钢芯弹箱 = 781;

		internal const int RGB钨芯弹箱 = 782;

		internal const int RGB三元弹箱 = 783;

		internal const int RGB反物质湮灭单元 = 785;

		internal const int RGB反物质炮弹组 = 787;

		internal const int RGB反物质导弹组 = 789;

		internal const int RGB湮灭弹箱 = 790;

		internal const int RGB聚爆加农炮MKII = 791;

		internal const int RGB高频激光塔MKII = 792;

		internal const int RGB光学处理器 = 793;

		internal const int RGB光学信息传输纤维 = 794;

		internal const int RGB量子计算主机 = 795;

		internal const int RGB海水淡化 = 801;

		internal const int RFE自然资源分馏塔 = 1001;

		internal const int RFE升级分馏塔 = 1002;

		internal const int RFE降级分馏塔 = 1003;

		internal const int RFE垃圾回收分馏塔 = 1004;

		internal const int RFE点数聚集分馏塔 = 1005;

		internal const int RFE增产分馏塔 = 1006;

		internal const int RWP结构结晶 = 9801;

		internal const int RWP操控结晶 = 9802;

		internal const int RWP力场结晶 = 9803;

		internal const int RWP电弧采矿器 = 9721;

		internal const int RWPS型反应堆 = 9722;

		internal const int RWPM型反应堆 = 9723;

		internal const int RWPL型反应堆 = 9724;

		internal const int RWP3D打印机 = 9825;

		internal const int RWP量子打印机 = 9826;

		internal const int RWP机体重构芯片 = 9861;

		internal const int RWP神经元芯片 = 9862;

		internal const int RWP护盾力场芯片 = 9863;

		internal const int T戴森球计划 = 1;

		internal const int T电磁学 = 1001;

		internal const int T电磁矩阵 = 1002;

		internal const int T高效电浆控制 = 1101;

		internal const int T等离子萃取精炼 = 1102;

		internal const int TX射线裂解 = 1103;

		internal const int T重整精炼_GB先进有机合成技术 = 1104;

		internal const int T能量矩阵 = 1111;

		internal const int T氢燃料棒_GB气体冷凝 = 1112;

		internal const int T推进器 = 1113;

		internal const int T加力推进器 = 1114;

		internal const int T流体储存封装 = 1120;

		internal const int T基础化工 = 1121;

		internal const int T高分子化工 = 1122;

		internal const int T高强度晶体 = 1123;

		internal const int T结构矩阵 = 1124;

		internal const int T卡西米尔晶体 = 1125;

		internal const int T高强度玻璃 = 1126;

		internal const int T应用型超导体 = 1131;

		internal const int T高强度材料 = 1132;

		internal const int T粒子可控 = 1133;

		internal const int T重氢分馏_GB强相互作用力材料 = 1134;

		internal const int T波函数干扰 = 1141;

		internal const int T微型粒子对撞机_GB粒子对撞机 = 1142;

		internal const int T奇异物质 = 1143;

		internal const int T人造恒星_质能转换利用 = 1144;

		internal const int T可控湮灭反应 = 1145;

		internal const int T增产剂MkI_GB物品增产 = 1151;

		internal const int T增产剂MkII_GB虫洞航行 = 1152;

		internal const int T增产剂MkIII_GB人造恒星MKI = 1153;

		internal const int T基础制造 = 1201;

		internal const int T高速制造_GB标准制造单元 = 1202;

		internal const int T量子打印_GB高精度加工 = 1203;

		internal const int T处理器 = 1302;

		internal const int T量子芯片 = 1303;

		internal const int T光子聚束采矿 = 1304;

		internal const int T亚微观量子纠缠_GB化学反应釜压力容器 = 1305;

		internal const int T半导体材料 = 1311;

		internal const int T信息矩阵 = 1312;

		internal const int T自动化冶金 = 1401;

		internal const int T冶炼提纯 = 1402;

		internal const int T晶体冶炼 = 1403;

		internal const int T钢材冶炼 = 1411;

		internal const int T火力发电 = 1412;

		internal const int T钛矿冶炼 = 1413;

		internal const int T高强度钛合金 = 1414;

		internal const int T移山填海工程_GB工业生产 = 1415;

		internal const int T微型核聚变发电_GB裂变发电站 = 1416;

		internal const int T位面冶金 = 1417;

		internal const int T太阳能收集 = 1501;

		internal const int T光子变频 = 1502;

		internal const int T太阳帆轨道系统 = 1503;

		internal const int T射线接收站 = 1504;

		internal const int T行星电离层利用 = 1505;

		internal const int T狄拉克逆变机制 = 1506;

		internal const int T宇宙矩阵 = 1507;

		internal const int T任务完成 = 1508;

		internal const int T能量储存 = 1511;

		internal const int T星际电力运输 = 1512;

		internal const int T地热开采 = 1513;

		internal const int T高强度轻质结构 = 1521;

		internal const int T垂直发射井 = 1522;

		internal const int T戴森球应力系统 = 1523;

		internal const int T基础物流系统 = 1601;

		internal const int T改良物流系统 = 1602;

		internal const int T高效物流系统 = 1603;

		internal const int T行星物流系统 = 1604;

		internal const int T星际物流系统 = 1605;

		internal const int T气态行星开采 = 1606;

		internal const int T集装物流系统_GB物品仓储 = 1607;

		internal const int T配送物流系统 = 1608;

		internal const int T电磁驱动 = 1701;

		internal const int T磁悬浮 = 1702;

		internal const int T粒子磁力阱 = 1703;

		internal const int T引力波折射 = 1704;

		internal const int T引力矩阵 = 1705;

		internal const int T超级磁场发生器 = 1711;

		internal const int T卫星配电系统 = 1712;

		internal const int T武器系统 = 1801;

		internal const int T燃烧单元 = 1802;

		internal const int T爆破单元 = 1803;

		internal const int T晶石爆破单元_GB核能爆破单元 = 1804;

		internal const int T动力引擎 = 1805;

		internal const int T导弹防御塔 = 1806;

		internal const int T聚爆加农炮 = 1807;

		internal const int T信号塔 = 1808;

		internal const int T行星防御系统 = 1809;

		internal const int T干扰塔 = 1810;

		internal const int T磁化电浆炮 = 1811;

		internal const int T钛化弹箱_GB钢芯穿甲弹 = 1812;

		internal const int T超合金弹箱_GB钛金强化弹壳 = 1813;

		internal const int T高爆炮弹组 = 1814;

		internal const int T超音速导弹组 = 1815;

		internal const int T晶石炮弹组_GB微型核弹 = 1816;

		internal const int T引力导弹组 = 1817;

		internal const int T反物质胶囊 = 1818;

		internal const int T原型机 = 1819;

		internal const int T精准无人机 = 1820;

		internal const int T攻击无人机 = 1821;

		internal const int T护卫舰 = 1822;

		internal const int T驱逐舰 = 1823;

		internal const int T压制胶囊 = 1824;

		internal const int T战场分析基站 = 1826;

		internal const int T数字模拟计算 = 1901;

		internal const int T物质重组 = 1902;

		internal const int T负熵递归 = 1903;

		internal const int T高密度可控湮灭 = 1904;

		internal const int T机甲核心 = 2101;

		internal const int T机械骨骼 = 2201;

		internal const int T机舱容量 = 2301;

		internal const int T通讯控制 = 2401;

		internal const int T能量回路 = 2501;

		internal const int T无人机引擎 = 2601;

		internal const int T批量建造 = 2701;

		internal const int T能量护盾 = 2801;

		internal const int T驱动引擎 = 2901;

		internal const int T自动标记重建 = 2951;

		internal const int T太阳帆寿命 = 3101;

		internal const int T射线传输效率 = 3201;

		internal const int T分拣器货物叠加 = 3301;

		internal const int T分拣器货物集装 = 3306;

		internal const int T集装分拣器改良 = 3311;

		internal const int T配送范围 = 4001;

		internal const int T运输船引擎 = 3401;

		internal const int T运输机舱扩容 = 3501;

		internal const int T运输站集装物流 = 3801;

		internal const int T矿物利用 = 3601;

		internal const int T垂直建造 = 3701;

		internal const int T研究速度 = 3901;

		internal const int T宇宙探索 = 4101;

		internal const int T动能武器伤害 = 5001;

		internal const int T能量武器伤害 = 5101;

		internal const int T爆破武器伤害 = 5201;

		internal const int T战斗无人机伤害 = 5301;

		internal const int T战斗无人机射速 = 5401;

		internal const int T战斗无人机耐久 = 5601;

		internal const int T行星护盾 = 5701;

		internal const int T地面编队扩容 = 5801;

		internal const int T太空编队扩容 = 5901;

		internal const int T结构强化 = 6001;

		internal const int TVD电磁武器效果 = 6101;

		internal const int TMS尼科尔戴森光束 = 1918;

		internal const int TVD玻色子操控 = 1999;

		internal const int TVD并入COSMO架构 = 1998;

		internal const int TGB科学理论 = 1900;

		internal const int TGB钨强化玻璃 = 1911;

		internal const int TGB焦油精炼 = 1915;

		internal const int TGB放射性矿物提炼 = 1916;

		internal const int TGB裂变能源燃料棒 = 1919;

		internal const int TGB同位素温差发电 = 1920;

		internal const int TGB聚变燃料提取 = 1921;

		internal const int TGB聚变能源燃料棒 = 1922;

		internal const int TGB巨型建筑天穹装配厂 = 1923;

		internal const int TGB巨型建筑物质裂解塔 = 1924;

		internal const int TGB巨型建筑行星级化学反应釜 = 1925;

		internal const int TGB巨型建筑精密结构组装厂 = 1926;

		internal const int TGB巨型建筑巨型粒子对撞机 = 1927;

		internal const int TGB化学能燃料棒 = 1928;

		internal const int TGB矿物处理 = 1929;

		internal const int TGB先进化工 = 1930;

		internal const int TGB巨型建筑物质分解设施 = 1931;

		internal const int TGB化工厂 = 1932;

		internal const int TGB巨型建筑工程学 = 1934;

		internal const int TGB行星协调中心 = 1936;

		internal const int TGB基础机械组件 = 1941;

		internal const int TGB先进机械组件 = 1942;

		internal const int TGB尖端机械组件 = 1943;

		internal const int TGB钨强化金属 = 1944;

		internal const int TGB家园世界虚拟技术革新 = 1947;

		internal const int TGB家园世界光学信息传输技术 = 1948;

		internal const int TGB超级量子计算机 = 1949;

		internal const int TGB家园世界光学计算机 = 1950;

		internal const int TGB反物质湮灭单元 = 1952;

		internal const int TGB湮灭战斗部 = 1954;

		internal const int TGB超重型穿甲弹 = 1955;

		internal const int TGB强互作用力弹药 = 1956;

		internal const int TGB小型化湮灭反应 = 1957;

		internal const int TGB反物质飞弹 = 1959;

		internal const int TGB行星协调中心黑雾数据库 = 1960;

		internal const int TGB虚数空间存储 = 1962;

		internal const int TGB集装物流系统 = 1963;

		internal const int TFE自然资源分馏 = 1621;

		internal const int TFE升降级分馏 = 1622;

		internal const int TFE垃圾回收 = 1623;

		internal const int TFE增产点数聚集 = 1159;

		internal const int TFE增产分馏 = 1908;

		internal const int TFE分馏塔流动输出集装 = 3807;

		internal const int TFE分馏塔产物输出集装 = 3804;
	}
	public class WPAddItem
	{
		public void AddWPItems()
		{
			AddDiyItem(9701, 9801, EItemTypeD.消耗品, "结构结晶", "经过学习黑雾的科技,融合出一种新的结晶,能强化机甲结构,使机甲在一段时间内巨大化(持续3分钟,CD冷却5分钟)", new int[3] { 5206, 1203, 1103 }, new int[3] { 10, 4, 5 }, new int[1] { 1 }, 180, "assets/weapon/jt_1", GetGirdindex(1, 1), 2101, 50);
			AddDiyItem(9761, 9861, EItemTypeD.强化芯片, "机体重构芯片", "深入的研究了黑雾的重构技术,利用物质重组器重构了机甲,发挥了重构结晶的完整效果\n(自动使用巨大化技能,无冷却,消耗品翻倍)\n打开<color=\"#FD965ECC\">机甲界面</color>放入装备栏生效", new int[4] { 5203, 1125, 9701, 1303 }, new int[4] { 50, 30, 50, 20 }, new int[1] { 1 }, 3600, "assets/weapon/xp_4", GetGirdindex(5, 1), 1703, 1);
			AddDiyItem(9702, 9802, EItemTypeD.消耗品, "操控结晶", "通过研究黑雾的科技发现,除了通过电子信号操控,还有更好的方法,能使机甲同时操控更多的武器发射平台(持续3分钟,冷却5分钟)", new int[3] { 5206, 1123, 1302 }, new int[3] { 10, 10, 4 }, new int[1] { 1 }, 180, "assets/weapon/jt_3", GetGirdindex(1, 2), 1807, 50);
			AddDiyItem(9762, 9862, EItemTypeD.强化芯片, "神经元芯片", "掌握了黑雾的神经元操控方法,使用操控结晶时能得到更好的效果,大幅提升所有武器的操作速度\n(自动使用武器强化技能,无冷却,消耗品翻倍)\n打开<color=\"#FD965ECC\">机甲界面</color>放入装备栏生效", new int[4] { 5202, 3005, 3003, 9702 }, new int[4] { 200, 50, 20, 50 }, new int[1] { 1 }, 3600, "assets/weapon/xp_2", GetGirdindex(5, 2), 1815, 1);
			AddDiyItem(9703, 9803, EItemTypeD.消耗品, "力场结晶", "深入的研究了黑雾的能量输出方式,融合出一种新的力场能量材料,能提升机甲护盾值与恢复速度(技能持续3分钟,冷却5分钟)", new int[3] { 1112, 1106, 1205 }, new int[3] { 6, 4, 1 }, new int[1] { 1 }, 180, "assets/weapon/jt_2", GetGirdindex(1, 3), 2803, 50);
			AddDiyItem(9763, 9863, EItemTypeD.强化芯片, "护盾力场芯片", "护盾力场芯片,COSMO技术伦理委员会最新逆向研究黑雾材料得到的全新科技,这是一种全新的力场结构,更节能更高效\n(自动使用护盾强化技能,无冷却,消耗品翻倍)\n打开<color=\"#FD965ECC\">机甲界面</color>放入装备栏生效", new int[4] { 5201, 3008, 9703, 1305 }, new int[4] { 200, 5, 50, 50 }, new int[1] { 1 }, 3600, "assets/weapon/xp_3", GetGirdindex(5, 3), 1511, 1);
			AddDiyItem(9721, 9721, EItemTypeD.装备, "电弧采矿器", "古语有云:只要铲子用得好,没有矿脉挖不倒(装备后可以获得更高的<color=\"#FD965ECC\">手动采矿速度</color>)\n打开<color=\"#FD965ECC\">机甲界面</color>放入装备栏生效", new int[2] { 1301, 1202 }, new int[2] { 10, 10 }, new int[1] { 1 }, 600, "assets/weapon/gather", GetGirdindex(4, 1), 1002, 1);
			AddDiyItem(9722, 9722, EItemTypeD.装备, "S型反应堆", "一种微型反应堆,装备后可给机甲提供<color=\"#FD965ECC\">500KW</color>电力\n打开<color=\"#FD965ECC\">机甲界面</color>放入装备栏生效", new int[3] { 5206, 1401, 1801 }, new int[3] { 50, 20, 20 }, new int[1] { 1 }, 600, "assets/weapon/rl_1", GetGirdindex(4, 2), 2502, 1);
			AddDiyItem(9723, 9723, EItemTypeD.装备, "M型反应堆", "一种微型反应堆,装备后可给机甲提供<color=\"#FD965ECC\">2MW</color>电力\n打开<color=\"#FD965ECC\">机甲界面</color>放入装备栏生效", new int[4] { 9722, 5206, 1406, 1802 }, new int[4] { 1, 100, 20, 20 }, new int[1] { 1 }, 600, "assets/weapon/rl_2", GetGirdindex(4, 3), 2503, 1);
			AddDiyItem(9724, 9724, EItemTypeD.装备, "L型反应堆", "一种微型反应堆,装备后可给机甲提供<color=\"#FD965ECC\">5MW</color>电力\n打开<color=\"#FD965ECC\">机甲界面</color>放入装备栏生效", new int[4] { 9723, 5205, 1403, 1803 }, new int[4] { 1, 50, 30, 10 }, new int[1] { 1 }, 1200, "assets/weapon/rl_4", GetGirdindex(4, 4), 2505, 1);
			AddDiyItem(9725, 9825, EItemTypeD.装备, "3D打印机", "3D打印机,提升<color=\"#FD965ECC\">手动制造速度30%</color>\n打开<color=\"#FD965ECC\">机甲界面</color>放入装备栏生效", new int[3] { 1201, 1301, 2303 }, new int[3] { 10, 10, 3 }, new int[1] { 1 }, 600, "assets/weapon/printer_3", GetGirdindex(3, 1), 1201, 1);
			AddDiyItem(9726, 9826, EItemTypeD.装备, "量子打印机", "量子打印机,提升<color=\"#FD965ECC\">手动制造速度100%</color>\n打开<color=\"#FD965ECC\">机甲界面</color>放入装备栏生效", new int[4] { 9725, 1402, 2305, 1305 }, new int[4] { 1, 40, 20, 20 }, new int[1] { 1 }, 1800, "assets/weapon/printer_2", GetGirdindex(3, 2), 1203, 1);
		}

		[HarmonyPostfix]
		[HarmonyPatch(/*Could not decode attribute arguments.*/)]
		public static void ItemProto_typeString(ItemProto __instance, ref string __result)
		{
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_0008: Expected I4, but got Unknown
			switch ((EItemTypeD)(int)__instance.Type)
			{
			case EItemTypeD.消耗品:
				__result = Localization.Translate("技能消耗品");
				break;
			case EItemTypeD.强化芯片:
				__result = Localization.Translate("强化芯片");
				break;
			case EItemTypeD.装备:
				__result = Localization.Translate("装备");
				break;
			default:
				__result = Localization.Translate("其他分类");
				break;
			}
		}

		public int GetGirdindex(int x, int y)
		{
			return DSP_WeaponPlus.tab装备1 * 1000 + x * 100 + y;
		}

		public void AddDiyItem(int itemID, int recipeId, EItemTypeD itemtype, string itemName, string itemDesc, int[] inputIds, int[] inputCounts, int[] outputCounts, int craftingTime, string iconPath, int gridIndex, int techID, int stackSize)
		{
			//IL_0014: Unknown result type (might be due to invalid IL or missing references)
			//IL_001a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0038: Unknown result type (might be due to invalid IL or missing references)
			ItemProto val = ProtoRegistry.RegisterItem(itemID, itemName, itemDesc, iconPath, gridIndex, stackSize);
			val.Type = (EItemType)itemtype;
			ERecipeType val2 = (ERecipeType)4;
			int[] array = new int[1] { ((Proto)val).ID };
			if (recipeId != -1)
			{
				RecipeProto val3 = ProtoRegistry.RegisterRecipe(recipeId, val2, craftingTime, inputIds, inputCounts, array, outputCounts, itemDesc, techID, gridIndex, iconPath);
			}
		}
	}
	public class SkillComponent : MonoBehaviour
	{
		public Text skilltimertext;

		public GameObject skilltimer;

		public static Player player;

		public static GameObject playerObject;

		public static Mecha mecha;

		public bool isbuff;

		private int SkillID;

		public bool isBigskill;

		private int cmpitemId;

		private int cmpitemCount = 1;

		private string cmpitemtitle;

		private int skillitemplus;

		public bool state = false;

		private bool isCD = false;

		public bool noCD = false;

		private bool first = true;

		public static int isBigstate = 1;

		private int skillstatetime;

		private int skillCDtime;

		private static float walkSpeed;

		private int TchId;

		private string Tchtitle;

		public void SendSkillPacket(int bigstate)
		{
			ILocalPlayer localPlayer = NebulaModAPI.MultiplayerSession.LocalPlayer;
			INetworkProvider network = NebulaModAPI.MultiplayerSession.Network;
			network.SendPacket<PlayerInfoPacket>(new PlayerInfoPacket(localPlayer.Data.PlayerId, localPlayer.Data.Username, bigstate));
		}

		public static void GetPlayer()
		{
			player = GameMain.mainPlayer;
			playerObject = player.gameObject;
			mecha = player.mecha;
		}

		public void Getskilltimer(GameObject sktimer)
		{
			skilltimer = sktimer;
			skilltimertext = skilltimer.GetComponent<Text>();
			if (!Object.op_Implicit((Object)(object)skilltimertext))
			{
				Debug.LogError((object)$"skill_{SkillID}  获取倒计时组件失败!");
			}
		}

		public void Init(int skID, int skitem, string itemname, int plusitemid, int sktime, int skcd, int tchid, string tchname)
		{
			SkillID = skID;
			cmpitemId = skitem;
			cmpitemtitle = itemname;
			skillitemplus = plusitemid;
			skillstatetime = sktime;
			skillCDtime = skcd;
			TchId = tchid;
			Tchtitle = tchname;
		}

		public void SkillButtonClick()
		{
			if (player == null)
			{
				GetPlayer();
			}
			first = true;
			if (!state)
			{
				RunSkill();
				return;
			}
			((MonoBehaviour)this).StopAllCoroutines();
			skilltimertext.text = "";
			StopSkill();
		}

		private bool CheckState()
		{
			if (Equipmentcolumn.equistorage.GetItemCount(skillitemplus) > 0)
			{
				noCD = true;
				cmpitemCount = 2;
			}
			else
			{
				noCD = false;
				cmpitemCount = 1;
			}
			if (!GameMain.history.TechUnlocked(TchId))
			{
				UIRealtimeTip.Popup("未解" + Tchtitle, true, 0);
				return false;
			}
			if (isCD && !noCD)
			{
				UIRealtimeTip.Popup("CD冷却中", true, 0);
				return false;
			}
			if (!ConsumableItems(cmpitemId, cmpitemCount))
			{
				UIRealtimeTip.Popup($"{cmpitemtitle}不足{cmpitemCount}个", true, 0);
				if (state)
				{
					StopSkill();
					return false;
				}
				return false;
			}
			if (noCD && !state && first)
			{
				((MonoBehaviour)this).StopCoroutine(CDCountdown(0));
				UIRealtimeTip.Popup("已装备芯片\n自动维持该技能", true, 0);
			}
			return true;
		}

		private string FormatTimer(int time)
		{
			int num = time / 60;
			int num2 = time % 60;
			return $"{num:D2}:{num2:D2}";
		}

		private bool CheckPlayitem(int itemId)
		{
			return CheckPlayitem(itemId, 1);
		}

		private bool CheckPlayitem(int itemId, int itemCount)
		{
			int num = itemId;
			int num2 = itemCount;
			int num3 = default(int);
			player.TakeItemFromPlayer(ref num, ref num2, ref num3, false, (ItemBundle)null);
			if (itemId != num)
			{
				return false;
			}
			if (itemCount != num2)
			{
				return false;
			}
			return true;
		}

		private bool ConsumableItems(int itemId, int itemCount)
		{
			int num = itemId;
			int num2 = itemCount;
			int num3 = default(int);
			player.TakeItemFromPlayer(ref num, ref num2, ref num3, true, (ItemBundle)null);
			if (itemId != num)
			{
				return false;
			}
			if (itemCount != num2)
			{
				return false;
			}
			return true;
		}

		public void RunSkill()
		{
			if (!CheckState())
			{
				return;
			}
			if (!state)
			{
				first = false;
				state = true;
				((MonoBehaviour)this).StopCoroutine(CDCountdown(0));
				switch (SkillID)
				{
				case 1:
					ResizeGameObject(state);
					break;
				case 2:
					supernova(state);
					break;
				case 3:
					ShieldPlus(state);
					break;
				}
			}
			isCD = false;
			StartCountdown(skillstatetime);
			if (NebulaModAPI.IsMultiplayerActive && SkillID == 1)
			{
				SendSkillPacket(isBigstate);
			}
		}

		public static void CloseSkill()
		{
			//IL_000b: Unknown result type (might be due to invalid IL or missing references)
			playerObject.transform.localScale = Vector3.one;
			mecha.hpMaxUpgrade = 30000;
			mecha.hpRecover = 150;
			mecha.walkPower = 500000.0;
			isBigstate = 1;
			mecha.jumpSpeed = 32f;
			mecha.walkSpeed = ResetwalkSpeed();
		}

		public void StopSkill()
		{
			state = false;
			first = true;
			((MonoBehaviour)this).StopCoroutine(RunCountdown(0));
			switch (SkillID)
			{
			case 1:
				ResizeGameObject(enlarge: false);
				if (NebulaModAPI.IsMultiplayerActive)
				{
					SendSkillPacket(isBigstate);
				}
				break;
			case 2:
				supernova(enlarge: false);
				break;
			case 3:
				ShieldPlus(enlarge: false);
				break;
			}
			if (!noCD)
			{
				isCD = true;
				StartCountdown(skillCDtime);
			}
			else
			{
				skilltimertext.text = "";
			}
		}

		public IEnumerator RunCountdown(int dtimer)
		{
			while (dtimer >= 0)
			{
				if (dtimer < 1)
				{
					if (noCD)
					{
						RunSkill();
					}
					else
					{
						StopSkill();
					}
					break;
				}
				skilltimertext.text = FormatTimer(dtimer);
				if ((Object)(object)playerObject != (Object)null && playerObject.transform.localScale == Vector3.one)
				{
					playerObject.transform.localScale = Vector3.one * (float)isBigstate;
				}
				yield return (object)new WaitForSeconds(1f);
				dtimer--;
			}
		}

		public IEnumerator CDCountdown(int dtimer)
		{
			while (dtimer >= 0)
			{
				if (dtimer < 1)
				{
					isCD = false;
					((MonoBehaviour)this).StopAllCoroutines();
					skilltimertext.text = "";
					break;
				}
				if (noCD)
				{
					((MonoBehaviour)this).StopCoroutine(CDCountdown(0));
					break;
				}
				skilltimertext.text = FormatTimer(dtimer);
				yield return (object)new WaitForSeconds(1f);
				dtimer--;
			}
		}

		public bool StartCountdown(int dtimer)
		{
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_002b: Unknown result type (might be due to invalid IL or missing references)
			if (isCD)
			{
				skilltimer.GetComponent<Graphic>().color = new Color(1f, 0.2f, 1f, 1f);
				((MonoBehaviour)this).StartCoroutine(CDCountdown(dtimer));
				return false;
			}
			skilltimer.GetComponent<Graphic>().color = new Color(0.2f, 1f, 1f, 1f);
			((MonoBehaviour)this).StartCoroutine(RunCountdown(dtimer));
			return true;
		}

		private void ResizeGameObject(bool enlarge)
		{
			//IL_0142: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c4: Unknown result type (might be due to invalid IL or missing references)
			//IL_0028: Unknown result type (might be due to invalid IL or missing references)
			//IL_0033: Unknown result type (might be due to invalid IL or missing references)
			if (enlarge)
			{
				if (noCD)
				{
					isBigstate = 4;
					playerObject.transform.localScale = Vector3.one * (float)isBigstate;
					mecha.hpMaxUpgrade = 3000000;
					mecha.hpRecover = 50000;
					mecha.hp = 3000000;
					mecha.walkPower = 1000000.0;
					mecha.jumpSpeed = 52f;
					mecha.walkSpeed = ResetwalkSpeed() + 8f;
				}
				else
				{
					isBigstate = 2;
					playerObject.transform.localScale = Vector3.one * (float)isBigstate;
					mecha.hpMaxUpgrade = 1000000;
					mecha.hpRecover = 20000;
					mecha.hp = 1000000;
					mecha.walkPower = 700000.0;
					mecha.jumpSpeed = 40f;
					mecha.walkSpeed = ResetwalkSpeed() + 4f;
				}
			}
			else
			{
				playerObject.transform.localScale = Vector3.one;
				mecha.hpMaxUpgrade = 30000;
				mecha.hpRecover = 150;
				mecha.walkPower = 500000.0;
				isBigstate = 1;
				mecha.jumpSpeed = 32f;
				mecha.walkSpeed = ResetwalkSpeed();
			}
		}

		private void ShieldPlus(bool enlarge)
		{
			if (enlarge)
			{
				if (noCD)
				{
					mecha.energyShieldRadius = 20f;
					mecha.energyShieldEnergyRate = 20L;
				}
				else
				{
					mecha.energyShieldRadius = 10f;
					mecha.energyShieldEnergyRate = 50L;
				}
			}
			else
			{
				ResetShieldRadius();
			}
		}

		private void supernova(bool enlarge)
		{
			if (enlarge)
			{
				if (noCD)
				{
					mecha.laserLocalAttackRange = 60f;
					mecha.bulletLocalAttackRange = 60f;
					mecha.bulletMuzzleCount = 60;
					mecha.bulletMuzzleInterval = 35000;
					mecha.cannonLocalAttackRange = 100f;
					mecha.cannonMuzzleCount = 10;
					mecha.cannonMuzzleInterval = 200000;
					mecha.missileLocalAttackRange = 120f;
					mecha.missileMuzzleCount = 80;
					mecha.missileMuzzleInterval = 48000;
					mecha.missileROF = 25000;
					mecha.missileSpaceAttackRange = 10000f;
				}
				else
				{
					mecha.laserLocalAttackRange = 40f;
					mecha.bulletLocalAttackRange = 40f;
					mecha.bulletMuzzleCount = 20;
					mecha.bulletMuzzleInterval = 120000;
					mecha.cannonLocalAttackRange = 60f;
					mecha.cannonMuzzleCount = 4;
					mecha.cannonMuzzleInterval = 400000;
					mecha.missileLocalAttackRange = 70f;
					mecha.missileMuzzleCount = 20;
					mecha.missileMuzzleInterval = 80000;
				}
			}
			else
			{
				mecha.laserLocalAttackRange = 10f;
				mecha.bulletLocalAttackRange = 32f;
				mecha.bulletMuzzleCount = 4;
				mecha.bulletMuzzleInterval = 105000;
				mecha.cannonLocalAttackRange = 38f;
				mecha.cannonMuzzleCount = 1;
				mecha.cannonMuzzleInterval = 600000;
				mecha.missileLocalAttackRange = 46f;
				mecha.missileMuzzleCount = 4;
				mecha.missileMuzzleInterval = 88000;
				mecha.missileROF = 8000;
				mecha.missileSpaceAttackRange = 1800f;
			}
		}

		private static float GetreplicateSpeed(float add)
		{
			if (GameMain.history.TechUnlocked(1202))
			{
				add += 0.5f;
			}
			if (GameMain.history.TechUnlocked(1203))
			{
				add += 0.5f;
			}
			add += 1f;
			return add;
		}

		private static float Getpower(float add)
		{
			mecha.corePowerGen = 80000.0;
			Mecha obj = mecha;
			obj.corePowerGen += (double)add;
			return add;
		}

		public static bool CheckWeaponGrids()
		{
			if (player == null)
			{
				player = GameMain.mainPlayer;
				playerObject = player.gameObject;
				mecha = player.mecha;
			}
			StorageComponent equistorage = Equipmentcolumn.equistorage;
			mecha.miningSpeed = Configs.freeMode.miningSpeedScale;
			mecha.replicateSpeed = GetreplicateSpeed(0f);
			Getpower(0f);
			for (int i = 0; i < equistorage.grids.Length; i++)
			{
				if (equistorage.grids[i].itemId == 9721)
				{
					mecha.miningSpeed = 2.2f;
				}
				if (equistorage.grids[i].itemId == 9725)
				{
					mecha.replicateSpeed = GetreplicateSpeed(0.3f);
				}
				if (equistorage.grids[i].itemId == 9726)
				{
					mecha.replicateSpeed = GetreplicateSpeed(1f);
				}
				if (equistorage.grids[i].itemId == 9722)
				{
					Getpower(500000f);
				}
				if (equistorage.grids[i].itemId == 9723)
				{
					Getpower(2000000f);
				}
				if (equistorage.grids[i].itemId == 9724)
				{
					Getpower(5000000f);
				}
			}
			return false;
		}

		public static float ResetShieldRadius()
		{
			int num = -1;
			for (int i = 0; i < 25; i++)
			{
				if (GameMain.history.TechUnlocked(2801 + i))
				{
					num = i + 1;
				}
			}
			mecha.energyShieldEnergyRate = 500L;
			switch (num)
			{
			case -1:
				mecha.energyShieldRadius = 0f;
				break;
			case 0:
				mecha.energyShieldRadius = 0f;
				break;
			case 1:
				mecha.energyShieldRadius = 2f;
				break;
			case 2:
				mecha.energyShieldRadius = 2.5f;
				break;
			case 3:
				mecha.energyShieldRadius = 3f;
				break;
			default:
				mecha.energyShieldRadius = num + 1;
				break;
			}
			return mecha.energyShieldRadius;
		}

		public static float ResetwalkSpeed()
		{
			int num = -1;
			for (int i = 0; i < 8; i++)
			{
				if (GameMain.history.TechUnlocked(2201 + i))
				{
					num = i + 1;
				}
			}
			switch (num)
			{
			case -1:
				walkSpeed = 6f;
				break;
			case 7:
				walkSpeed = (float)num + 7f;
				break;
			case 8:
				walkSpeed = (float)num + 8f;
				break;
			default:
				walkSpeed = (float)num + 6f;
				break;
			}
			return walkSpeed;
		}
	}
	public class SkillUI
	{
		private static Font font;

		public GameObject skbutGameObject;

		public GameObject skilltimer;

		private Text skilltimertext;

		public UIButton skButtn;

		private static string Objname;

		private static string Imgname;

		private static string TipTitle;

		private static string TipDesc;

		private static int Btnx;

		private static int Btny;

		public void Init(int skillid, string title, string desc, int x, int y, string imgname)
		{
			Objname = $"skill-{skillid}";
			TipTitle = title;
			TipDesc = desc;
			Btnx = x;
			Btny = y;
			Imgname = imgname;
			((Object)skbutGameObject).name = Objname;
			CreatdownTime();
			SetTimerpoint(Btnx, Btny);
			AddSkillIcon();
			SetBtnTip();
		}

		public static Texture2D LoadTextureFromAssetBundle(string assetBundlePath, string textureName)
		{
			AssetBundle val = AssetBundle.LoadFromFile(assetBundlePath);
			if ((Object)(object)val == (Object)null)
			{
				Debug.LogError((object)"Failed to load asset bundle.");
				return null;
			}
			Texture2D result = val.LoadAsset<Texture2D>(textureName);
			val.Unload(false);
			return result;
		}

		public void Creat()
		{
			GameObject val = GameObject.Find("UI Root/Overlay Canvas/In Game/Game Menu/time-text");
			font = val.GetComponent<Text>().font;
			GameObject val2 = GameObject.Find("UI Root/Overlay Canvas/In Game/Game Menu/button-2-bg");
			if ((Object)(object)val2 == (Object)null)
			{
				Debug.LogError((object)"未能找到原始按钮对象!");
				return;
			}
			skbutGameObject = Object.Instantiate<GameObject>(val2, GameObject.Find("UI Root/Overlay Canvas/In Game/Z Screen/weapon-group").transform);
			if ((Object)(object)skbutGameObject == (Object)null)
			{
				Debug.LogError((object)"实例化按钮对象失败!");
			}
		}

		private void SetTimerpoint(float x, float y)
		{
			//IL_000c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0013: Unknown result type (might be due to invalid IL or missing references)
			((RectTransform)skbutGameObject.transform).anchoredPosition = new Vector2(x, y);
		}

		private void SetBtnTip()
		{
			skButtn = skbutGameObject.GetComponent<UIButton>();
			skButtn.tips.tipTitle = TipTitle;
			skButtn.tips.tipText = TipDesc;
		}

		private void CreatdownTime()
		{
			//IL_0007: Unknown result type (might be due to invalid IL or missing references)
			//IL_0011: Expected O, but got Unknown
			//IL_0085: Unknown result type (might be due to invalid IL or missing references)
			//IL_0094: Unknown result type (might be due to invalid IL or missing references)
			skilltimer = new GameObject("skilltimer");
			skilltimer.transform.SetParent(skbutGameObject.transform, false);
			skilltimer.AddComponent<RectTransform>();
			skilltimertext = skilltimer.AddComponent<Text>();
			skilltimertext.font = font;
			skilltimertext.alignment = (TextAnchor)7;
			skilltimertext.text = "";
			((RectTransform)((Component)skilltimertext).transform).anchoredPosition = new Vector2(2f, 36f);
			skilltimertext.fontSize = 16;
		}

		private void AddSkillIcon()
		{
			//IL_006b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0071: Expected O, but got Unknown
			//IL_00a0: Unknown result type (might be due to invalid IL or missing references)
			//IL_0114: Unknown result type (might be due to invalid IL or missing references)
			//IL_0123: Unknown result type (might be due to invalid IL or missing references)
			//IL_0148: Unknown result type (might be due to invalid IL or missing references)
			//IL_014d: Unknown result type (might be due to invalid IL or missing references)
			GameObject val = GameObject.Find("UI Root/Overlay Canvas/In Game/Z Screen/weapon-group/" + Objname + "/button-2");
			GameObject val2 = GameObject.Find("UI Root/Overlay Canvas/In Game/Z Screen/weapon-group/" + Objname + "/button-2/icon");
			if (Object.op_Implicit((Object)(object)val2))
			{
				Object.Destroy((Object)(object)val2);
			}
			if (!Object.op_Implicit((Object)(object)val))
			{
				Debug.LogError((object)"查询对象失败!");
			}
			GameObject val3 = new GameObject("skillicon");
			val3.transform.SetParent(val.transform, false);
			Image val4 = val3.AddComponent<Image>();
			((Component)val4).transform.localScale = new Vector3(0.5f, 0.5f, 0.5f);
			if ((Object)(object)val4 != (Object)null)
			{
				string directoryName = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
				directoryName += "\\skill";
				Texture2D val5 = LoadTextureFromAssetBundle(directoryName, Imgname);
				if (Object.op_Implicit((Object)(object)val5))
				{
					val4.sprite = Sprite.Create(val5, new Rect(0f, 0f, (float)((Texture)val5).width, (float)((Texture)val5).height), new Vector2(0.5f, 0.5f));
					((Graphic)val4).color = Color.op_Implicit(new Vector4(1f, 1f, 1f, 0.7f));
				}
			}
		}
	}
}