Decompiled source of HardFog v0.0.6

HardFog.dll

Decompiled 3 months ago
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using BepInEx;
using BepInEx.Configuration;
using BepInEx.Logging;
using HarmonyLib;
using Microsoft.CodeAnalysis;
using UXAssist.Common;
using UXAssist.UI;
using UnityEngine;
using UnityEngine.Events;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: AssemblyTitle("DSPmod")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("DSPmod")]
[assembly: AssemblyCopyright("Copyright ©  2024")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("7c8b9be3-d449-4188-b858-5efa47ca4d37")]
[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")]
[module: RefSafetyRules(11)]
namespace Microsoft.CodeAnalysis
{
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	internal sealed class EmbeddedAttribute : Attribute
	{
	}
}
namespace System.Runtime.CompilerServices
{
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	[AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)]
	internal sealed class RefSafetyRulesAttribute : Attribute
	{
		public readonly int Version;

		public RefSafetyRulesAttribute(int P_0)
		{
			Version = P_0;
		}
	}
}
namespace HardFog
{
	[BepInPlugin("me.liantian.plugin.HardFog", "HardFog", "0.0.6")]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	public class HardFog : BaseUnityPlugin
	{
		private static class MoreFrequentRelaysPatch
		{
			private static Harmony _patch;

			public static void Enable(bool enable)
			{
				if (enable)
				{
					_patch = Harmony.CreateAndPatchAll(typeof(MoreFrequentRelaysPatch), (string)null);
					return;
				}
				Harmony patch = _patch;
				if (patch != null)
				{
					patch.UnpatchSelf();
				}
				_patch = null;
			}

			[HarmonyPrefix]
			[HarmonyPatch(typeof(EnemyDFHiveSystem), "GameTickLogic")]
			public static void EnemyDFHiveSystemPreGameTickLogic(EnemyDFHiveSystem __instance, long gameTick)
			{
				_ = gameTick % 6000;
				__instance.relayNeutralizedCounter = 0;
			}

			[HarmonyPrefix]
			[HarmonyPatch(typeof(DFRelayComponent), "RelaySailLogic")]
			public static void DFRelayComponentRelaySailLogic(DFRelayComponent __instance, ref bool keyFrame)
			{
				keyFrame = true;
			}
		}

		private static class DysonSphereDebuffImmunityPatch
		{
			private static Harmony _patch;

			public static void Enable(bool enable)
			{
				if (enable)
				{
					_patch = Harmony.CreateAndPatchAll(typeof(DysonSphereDebuffImmunityPatch), (string)null);
					return;
				}
				Harmony patch = _patch;
				if (patch != null)
				{
					patch.UnpatchSelf();
				}
				_patch = null;
			}

			[HarmonyPrefix]
			[HarmonyPatch(/*Could not decode attribute arguments.*/)]
			public static bool EnergyDFHivesDebuffCoef_Patch(ref double __result)
			{
				__result = 1.0;
				return false;
			}
		}

		private static class SuperRayReceptionPatch
		{
			private static Harmony _patch;

			public static void Enable(bool enable)
			{
				if (enable)
				{
					_patch = Harmony.CreateAndPatchAll(typeof(SuperRayReceptionPatch), (string)null);
					return;
				}
				Harmony patch = _patch;
				if (patch != null)
				{
					patch.UnpatchSelf();
				}
				_patch = null;
			}

			[HarmonyPrefix]
			[HarmonyPatch(/*Could not decode attribute arguments.*/)]
			public static bool energyRespCoef_Patch(ref float __result)
			{
				__result = 1f;
				return false;
			}
		}

		private static class DFSCoreSuperEnergyPatch
		{
			private static Harmony _patch;

			public static void Enable(bool enable)
			{
				if (enable)
				{
					_patch = Harmony.CreateAndPatchAll(typeof(DFSCoreSuperEnergyPatch), (string)null);
					return;
				}
				Harmony patch = _patch;
				if (patch != null)
				{
					patch.UnpatchSelf();
				}
				_patch = null;
			}

			[HarmonyPrefix]
			[HarmonyPatch(typeof(DFSCoreComponent), "LogicTick")]
			public static void DFSCoreComponentLogicTick(DFSCoreComponent __instance, EnemyDFHiveSystem hive)
			{
				//IL_0013: Unknown result type (might be due to invalid IL or missing references)
				if (hive.isLocal)
				{
					ref EnemyBuilderComponent reference = ref hive.builders.buffer[__instance.builderId];
					reference.matter = reference.maxMatter;
					reference.energy = reference.maxEnergy;
				}
			}
		}

		private static class DFGBaseSuperEnergyPatch
		{
			private static Harmony _patch;

			public static void Enable(bool enable)
			{
				if (enable)
				{
					_patch = Harmony.CreateAndPatchAll(typeof(DFGBaseSuperEnergyPatch), (string)null);
					return;
				}
				Harmony patch = _patch;
				if (patch != null)
				{
					patch.UnpatchSelf();
				}
				_patch = null;
			}

			[HarmonyPrefix]
			[HarmonyPatch(typeof(DFGBaseComponent), "LogicTick")]
			public static void DFGBaseComponentLogicTick(DFGBaseComponent __instance, ref EnemyBuilderComponent builder)
			{
				builder.matter = builder.maxMatter;
				builder.energy = builder.maxEnergy;
			}
		}

		[CompilerGenerated]
		private static class <>O
		{
			public static Action<MyConfigWindow, RectTransform> <0>__CreateUI;

			public static UnityAction <1>__ClearCurrentPlanetEnemies;

			public static UnityAction <2>__ClearStarEnemies;

			public static UnityAction <3>__StarsFillHive;

			public static UnityAction <4>__StarResetHive;

			public static UnityAction <5>__SetCoreInvincible;

			public static UnityAction <6>__SetCoreVulnerable;

			public static UnityAction <7>__ClearAllVein;
		}

		private static ConfigEntry<bool> MoreFrequentRelaysEnable;

		private static ConfigEntry<bool> DysonSphereDebuffImmunityEnable;

		private static ConfigEntry<bool> SuperRayReceptionEnable;

		private static ConfigEntry<bool> DFSCoreSuperEnergyEnable;

		private static ConfigEntry<bool> DFGBaseSuperEnergyEnable;

		private static int Iron = 1;

		private static int Copper = 2;

		private static int Silicium = 3;

		private static int Titanium = 4;

		private static int Stone = 5;

		private static int Coal = 6;

		private static int Oil = 7;

		private static int Fireice = 8;

		private static int Diamond = 9;

		private static int Fractal = 10;

		private static int Crysrub = 11;

		private static int Grat = 12;

		private static int Bamboo = 13;

		private static int Mag = 14;

		private static UIButton buttonClearPlanet;

		private static UIButton buttonClearStar;

		private static UIButton buttonFillHive;

		private static UIButton buttonResetHive;

		public static ManualLogSource Logger;

		private static RectTransform _windowTrans;

		public void Awake()
		{
			MoreFrequentRelaysEnable = ((BaseUnityPlugin)this).Config.Bind<bool>("FogCheats", "MoreFrequentRelays", false, "巢穴更频繁的发送的中继站");
			DysonSphereDebuffImmunityEnable = ((BaseUnityPlugin)this).Config.Bind<bool>("Cheats", "DysonSphereDebuffImmunity", false, "黑雾无法偷电");
			SuperRayReceptionEnable = ((BaseUnityPlugin)this).Config.Bind<bool>("Cheats", "SuperRayReception", false, "射线接收器满速接收");
			DFSCoreSuperEnergyEnable = ((BaseUnityPlugin)this).Config.Bind<bool>("FogCheats", "DFSCoreSuperEnergy", false, "玩家所在星系黑雾巢穴满能量");
			DFGBaseSuperEnergyEnable = ((BaseUnityPlugin)this).Config.Bind<bool>("FogCheats", "DFGBaseSuperEnergy", false, "黑雾地面基地满能量");
			Logger = ((BaseUnityPlugin)this).Logger;
			Harmony.CreateAndPatchAll(typeof(HardFog), (string)null);
			I18N.Add("Clear the enemies on the current planet", "Clear the enemies on the current planet", "清理当前星球的黑雾");
			I18N.Add("Clear the space enemies of the current star", "Clear the space enemies of the current star", "清理当前恒星的太空黑雾");
			I18N.Add("Fill the galaxy with Hive", "Fill the galaxy with Hive", "为所有星系填满黑雾巢穴");
			I18N.Add("Reset the Hive in the current star", "Reset the Hive in the current star", "为当前恒星重置黑雾巢穴");
			I18N.Add("More Frequent Relays", "The HIVE is sending out Relays more frequently.", "黑雾巢穴更频繁的发送中继站");
			I18N.Add("Set HiveCore Invincible", "The HiveCore in the current star is invulnerable to attacks", "当前恒星的黑雾巢穴核心无法被攻击");
			I18N.Add("Set HiveCore Vulnerable", "The HiveCore in the current star is vulnerable to attacks.", "当前恒星的黑雾巢穴核心可以被攻击");
			I18N.Add("Fog cannot steal electricity", "Fog cannot steal electricity", "黑雾无法偷取电力");
			I18N.Add("the ray receiver receives at full power", "ray receiver receives at full power", "射线接收器满接收");
			I18N.Add("The Hive in the current star get full energy and matter", "The Hive in the current star get full energy and matter", "当前恒星的黑雾巢穴满能量/物质");
			I18N.Add("The Fogbase get full energy and matter", "The Fog core on base get full energy and matter", "黑雾地面核心获得满能量/物质");
			I18N.Add("Clear all vein on the current planet", "Clear all vein on the current planet", "清除矿脉");
			I18N.Add("Batch add vein on the current planet(candy)", "Batch add vein on the current planet(candy)", "批量添加矿脉(糖)");
			I18N.Add("Batch add vein on the current planet(2)", "Batch add vein on the current planet(2)", "批量添加矿脉(2)");
			I18N.Add("Batch add vein on the current planet(3)", "Batch add vein on the current planet(3)", "批量添加矿脉(3)");
			I18N.Add("Batch add vein on the current planet(4)", "Batch add vein on the current planet(4)", "批量添加矿脉(4)");
			I18N.Add("Reset the Hive in the current star", "reset all vein on the current planet", "重建矿物储量");
			I18N.Apply();
			MyConfigWindow.OnUICreated = (Action<MyConfigWindow, RectTransform>)Delegate.Combine(MyConfigWindow.OnUICreated, new Action<MyConfigWindow, RectTransform>(CreateUI));
			MoreFrequentRelaysEnable.SettingChanged += delegate
			{
				MoreFrequentRelaysPatch.Enable(MoreFrequentRelaysEnable.Value);
			};
			DysonSphereDebuffImmunityEnable.SettingChanged += delegate
			{
				DysonSphereDebuffImmunityPatch.Enable(DysonSphereDebuffImmunityEnable.Value);
			};
			SuperRayReceptionEnable.SettingChanged += delegate
			{
				SuperRayReceptionPatch.Enable(SuperRayReceptionEnable.Value);
			};
			DFSCoreSuperEnergyEnable.SettingChanged += delegate
			{
				DFSCoreSuperEnergyPatch.Enable(DFSCoreSuperEnergyEnable.Value);
			};
			DFGBaseSuperEnergyEnable.SettingChanged += delegate
			{
				DFGBaseSuperEnergyPatch.Enable(DFGBaseSuperEnergyEnable.Value);
			};
			Logger.LogInfo((object)"HardFog 初始化");
		}

		private static void CreateUI(MyConfigWindow wnd, RectTransform trans)
		{
			//IL_0065: Unknown result type (might be due to invalid IL or missing references)
			//IL_006a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0070: Expected O, but got Unknown
			//IL_00a7: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ac: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b2: Expected O, but got Unknown
			//IL_00e9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ee: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f4: Expected O, but got Unknown
			//IL_012b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0130: Unknown result type (might be due to invalid IL or missing references)
			//IL_0136: Expected O, but got Unknown
			//IL_018a: Unknown result type (might be due to invalid IL or missing references)
			//IL_018f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0195: Expected O, but got Unknown
			//IL_01c8: Unknown result type (might be due to invalid IL or missing references)
			//IL_01cd: Unknown result type (might be due to invalid IL or missing references)
			//IL_01d3: Expected O, but got Unknown
			//IL_027e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0283: Unknown result type (might be due to invalid IL or missing references)
			//IL_0289: Expected O, but got Unknown
			_windowTrans = trans;
			float num = 10f;
			float num2 = 10f;
			((MyWindowWithTabs)wnd).AddSplitter(trans, 10f);
			((MyWindowWithTabs)wnd).AddTabGroup(trans, "Hard fog", "tab-group-hard-fog");
			RectTransform val = ((MyWindowWithTabs)wnd).AddTab(_windowTrans, "General");
			float num3 = num;
			float num4 = num2;
			object obj = <>O.<1>__ClearCurrentPlanetEnemies;
			if (obj == null)
			{
				UnityAction val2 = ClearCurrentPlanetEnemies;
				<>O.<1>__ClearCurrentPlanetEnemies = val2;
				obj = (object)val2;
			}
			buttonClearPlanet = ((MyWindow)wnd).AddButton(num3, num4, 200f, val, "Clear the enemies on the current planet", 16, "button-clear-planet", (UnityAction)obj);
			num2 += 36f;
			float num5 = num;
			float num6 = num2;
			object obj2 = <>O.<2>__ClearStarEnemies;
			if (obj2 == null)
			{
				UnityAction val3 = ClearStarEnemies;
				<>O.<2>__ClearStarEnemies = val3;
				obj2 = (object)val3;
			}
			buttonClearStar = ((MyWindow)wnd).AddButton(num5, num6, 200f, val, "Clear the space enemies of the current star", 16, "button-clear-star", (UnityAction)obj2);
			num2 += 36f;
			float num7 = num;
			float num8 = num2;
			object obj3 = <>O.<3>__StarsFillHive;
			if (obj3 == null)
			{
				UnityAction val4 = StarsFillHive;
				<>O.<3>__StarsFillHive = val4;
				obj3 = (object)val4;
			}
			buttonFillHive = ((MyWindow)wnd).AddButton(num7, num8, 200f, val, "Fill the galaxy with Hive", 16, "button-fill-hive", (UnityAction)obj3);
			num2 += 36f;
			float num9 = num;
			float num10 = num2;
			object obj4 = <>O.<4>__StarResetHive;
			if (obj4 == null)
			{
				UnityAction val5 = StarResetHive;
				<>O.<4>__StarResetHive = val5;
				obj4 = (object)val5;
			}
			buttonResetHive = ((MyWindow)wnd).AddButton(num9, num10, 200f, val, "Reset the Hive in the current star", 16, "button-reset-hive", (UnityAction)obj4);
			num2 += 36f;
			MyCheckBox.CreateCheckBox(num, num2, val, MoreFrequentRelaysEnable, "More Frequent Relays", 15);
			num2 += 36f;
			float num11 = num;
			float num12 = num2;
			object obj5 = <>O.<5>__SetCoreInvincible;
			if (obj5 == null)
			{
				UnityAction val6 = SetCoreInvincible;
				<>O.<5>__SetCoreInvincible = val6;
				obj5 = (object)val6;
			}
			((MyWindow)wnd).AddButton(num11, num12, 200f, val, "Set HiveCore Invincible", 12, "button-set-core-invincible", (UnityAction)obj5);
			num2 += 36f;
			float num13 = num;
			float num14 = num2;
			object obj6 = <>O.<6>__SetCoreVulnerable;
			if (obj6 == null)
			{
				UnityAction val7 = SetCoreVulnerable;
				<>O.<6>__SetCoreVulnerable = val7;
				obj6 = (object)val7;
			}
			((MyWindow)wnd).AddButton(num13, num14, 200f, val, "Set HiveCore Vulnerable", 12, "button-set-core-vulnerable", (UnityAction)obj6);
			num2 += 36f;
			MyCheckBox.CreateCheckBox(num, num2, val, DysonSphereDebuffImmunityEnable, "Fog cannot steal electricity", 15);
			num2 += 36f;
			MyCheckBox.CreateCheckBox(num, num2, val, SuperRayReceptionEnable, "the ray receiver receives at full power", 15);
			num2 += 36f;
			MyCheckBox.CreateCheckBox(num, num2, val, DFSCoreSuperEnergyEnable, "The Hive in the current star get full energy and matter", 15);
			num2 += 36f;
			MyCheckBox.CreateCheckBox(num, num2, val, DFGBaseSuperEnergyEnable, "The Fogbase get full energy and matter", 15);
			num = 330f;
			num2 = 10f;
			float num15 = num;
			float num16 = num2;
			object obj7 = <>O.<7>__ClearAllVein;
			if (obj7 == null)
			{
				UnityAction val8 = ClearAllVein;
				<>O.<7>__ClearAllVein = val8;
				obj7 = (object)val8;
			}
			((MyWindow)wnd).AddButton(num15, num16, 200f, val, "Clear all vein on the current planet", 16, "button-clear-vein", (UnityAction)obj7);
		}

		private static void ClearAllVein()
		{
			//IL_0023: 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_0034: Unknown result type (might be due to invalid IL or missing references)
			//IL_0054: Unknown result type (might be due to invalid IL or missing references)
			//IL_0066: 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_008b: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a8: 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_00c4: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e1: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ec: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f1: Unknown result type (might be due to invalid IL or missing references)
			if (GameMain.mainPlayer == null)
			{
				return;
			}
			PlanetData localPlanet = GameMain.localPlanet;
			VeinData[] veinPool = localPlanet.factory.veinPool;
			foreach (VeinData val in veinPool)
			{
				localPlanet.factory.veinGroups[val.groupIndex].count--;
				localPlanet.factory.veinGroups[val.groupIndex].amount -= val.amount;
				localPlanet.factory.RemoveVeinWithComponents(val.id);
				if (localPlanet.factory.veinGroups[val.groupIndex].count == 0)
				{
					localPlanet.factory.veinGroups[val.groupIndex].type = (EVeinType)0;
					localPlanet.factory.veinGroups[val.groupIndex].amount = 0L;
					localPlanet.factory.veinGroups[val.groupIndex].pos = Vector3.zero;
				}
			}
		}

		private static void WealtAllVein()
		{
			//IL_0029: Unknown result type (might be due to invalid IL or missing references)
			//IL_002e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0030: Unknown result type (might be due to invalid IL or missing references)
			//IL_0032: Unknown result type (might be due to invalid IL or missing references)
			//IL_0038: Invalid comparison between Unknown and I4
			//IL_0073: Unknown result type (might be due to invalid IL or missing references)
			//IL_0045: Unknown result type (might be due to invalid IL or missing references)
			//IL_009a: Unknown result type (might be due to invalid IL or missing references)
			if (GameMain.mainPlayer == null)
			{
				return;
			}
			PlanetData localPlanet = GameMain.localPlanet;
			Random random = new Random();
			VeinData[] veinPool = localPlanet.factory.veinPool;
			foreach (VeinData val in veinPool)
			{
				if ((int)val.type != 7)
				{
					localPlanet.factory.veinPool[val.id].amount = random.Next(8500, 11500);
				}
				else
				{
					localPlanet.factory.veinPool[val.id].amount = random.Next(150000, 200000);
				}
				localPlanet.factory.RecalculateVeinGroup((int)val.groupIndex);
			}
		}

		private static Vector3 ConvertToVector3(int X, int Y)
		{
			//IL_00ae: Unknown result type (might be due to invalid IL or missing references)
			PlanetData localPlanet = GameMain.localPlanet;
			_ = localPlanet.radius;
			double num = Math.PI * (0.36 * (double)Y) / 180.0;
			double num2 = Math.Sin(num);
			double num3 = Math.Cos(num);
			float num4 = (float)(num2 * (double)localPlanet.radius);
			double num5 = num3 * (double)localPlanet.radius;
			double num6 = (double)X / 1000.0 * 360.0;
			double num7 = Math.Sin(Math.PI * num6 / 180.0) * num5;
			double num8 = Math.Cos(Math.PI * num6 / 180.0) * num5;
			float num9 = (float)num7;
			float num10 = (float)num8;
			return new Vector3(num9, num4, num10);
		}

		private static void AddVeinVeinByRange(int veintype, int x_start, int x_end, int y_start, int y_end)
		{
			//IL_0010: Unknown result type (might be due to invalid IL or missing references)
			for (int i = x_start; i < x_end; i++)
			{
				for (int j = y_start; j < y_end; j++)
				{
					AddVein(veintype, 50000, ConvertToVector3(i, j));
				}
			}
		}

		private static void BatchAddVein()
		{
			//IL_024b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0266: Unknown result type (might be due to invalid IL or missing references)
			//IL_0281: Unknown result type (might be due to invalid IL or missing references)
			//IL_029c: Unknown result type (might be due to invalid IL or missing references)
			//IL_02b7: Unknown result type (might be due to invalid IL or missing references)
			//IL_02d2: Unknown result type (might be due to invalid IL or missing references)
			//IL_02ed: Unknown result type (might be due to invalid IL or missing references)
			//IL_0308: Unknown result type (might be due to invalid IL or missing references)
			if (GameMain.mainPlayer != null)
			{
				_ = GameMain.localPlanet;
				int num = 13;
				int num2 = 11;
				AddVeinVeinByRange(Silicium, num, num + 5, num2, num2 + 7);
				num += 10;
				AddVeinVeinByRange(Titanium, num, num + 5, num2, num2 + 7);
				num += 10;
				AddVeinVeinByRange(Silicium, num, num + 5, num2, num2 + 7);
				num += 10;
				AddVeinVeinByRange(Copper, num, num + 5, num2, num2 + 7);
				num += 10;
				AddVeinVeinByRange(Iron, num, num + 5, num2, num2 + 7);
				num += 10;
				AddVeinVeinByRange(Silicium, num, num + 5, num2, num2 + 7);
				num += 10;
				AddVeinVeinByRange(Copper, num, num + 5, num2, num2 + 7);
				num += 10;
				AddVeinVeinByRange(Iron, num, num + 5, num2, num2 + 7);
				num = 13;
				num2 = 31;
				AddVeinVeinByRange(Grat, num, num + 5, num2, num2 + 7);
				num += 10;
				AddVeinVeinByRange(Fractal, num, num + 5, num2, num2 + 7);
				num += 10;
				AddVeinVeinByRange(Fireice, num, num + 5, num2, num2 + 7);
				num += 10;
				AddVeinVeinByRange(Stone, num, num + 5, num2, num2 + 7);
				num += 10;
				AddVeinVeinByRange(Diamond, num, num + 5, num2, num2 + 7);
				num += 10;
				AddVeinVeinByRange(Titanium, num, num + 5, num2, num2 + 7);
				num += 10;
				AddVeinVeinByRange(Crysrub, num, num + 5, num2, num2 + 7);
				num += 10;
				AddVeinVeinByRange(Coal, num, num + 5, num2, num2 + 7);
				num = 13;
				num2 = 51;
				AddVeinVeinByRange(Bamboo, num, num + 5, num2, num2 + 7);
				num += 10;
				AddVeinVeinByRange(Silicium, num, num + 5, num2, num2 + 7);
				num += 10;
				AddVeinVeinByRange(Grat, num, num + 5, num2, num2 + 7);
				num += 10;
				AddVeinVeinByRange(Bamboo, num, num + 5, num2, num2 + 7);
				num += 10;
				AddVeinVeinByRange(Mag, num, num + 5, num2, num2 + 7);
				num += 10;
				AddVeinVeinByRange(Coal, num, num + 5, num2, num2 + 7);
				num += 10;
				AddVeinVeinByRange(Copper, num, num + 5, num2, num2 + 7);
				num += 10;
				AddVeinVeinByRange(Mag, num, num + 5, num2, num2 + 7);
				num = 15;
				num2 = 65;
				AddVein(Oil, 175000, ConvertToVector3(num, num2));
				num += 10;
				AddVein(Oil, 175000, ConvertToVector3(num, num2));
				num += 10;
				AddVein(Oil, 175000, ConvertToVector3(num, num2));
				num += 10;
				AddVein(Oil, 175000, ConvertToVector3(num, num2));
				num += 10;
				AddVein(Oil, 175000, ConvertToVector3(num, num2));
				num += 10;
				AddVein(Oil, 175000, ConvertToVector3(num, num2));
				num += 10;
				AddVein(Oil, 175000, ConvertToVector3(num, num2));
				num += 10;
				AddVein(Oil, 175000, ConvertToVector3(num, num2));
			}
		}

		private static void BatchAddVein2()
		{
			if (GameMain.mainPlayer != null)
			{
				_ = GameMain.localPlanet;
				int num = 13;
				int num2 = 11;
				AddVeinVeinByRange(Fireice, num, num + 5, num2, num2 + 7);
				num += 10;
				AddVeinVeinByRange(Silicium, num, num + 5, num2, num2 + 7);
				num += 10;
				AddVeinVeinByRange(Mag, num, num + 5, num2, num2 + 7);
				num += 10;
				AddVeinVeinByRange(Iron, num, num + 5, num2, num2 + 7);
				num += 10;
				AddVeinVeinByRange(Mag, num, num + 5, num2, num2 + 7);
				num += 10;
				AddVeinVeinByRange(Iron, num, num + 5, num2, num2 + 7);
				num += 10;
				AddVeinVeinByRange(Mag, num, num + 5, num2, num2 + 7);
				num += 10;
				AddVeinVeinByRange(Iron, num, num + 5, num2, num2 + 7);
				num = 13;
				num2 = 31;
				AddVeinVeinByRange(Copper, num, num + 5, num2, num2 + 7);
				num += 10;
				AddVeinVeinByRange(Diamond, num, num + 5, num2, num2 + 7);
				num += 10;
				AddVeinVeinByRange(Copper, num, num + 5, num2, num2 + 7);
				num += 10;
				AddVeinVeinByRange(Bamboo, num, num + 5, num2, num2 + 7);
				num += 10;
				AddVeinVeinByRange(Copper, num, num + 5, num2, num2 + 7);
				num += 10;
				AddVeinVeinByRange(Silicium, num, num + 5, num2, num2 + 7);
				num += 10;
				AddVeinVeinByRange(Copper, num, num + 5, num2, num2 + 7);
				num += 10;
				AddVeinVeinByRange(Titanium, num, num + 5, num2, num2 + 7);
				num = 13;
				num2 = 51;
				AddVeinVeinByRange(Mag, num, num + 5, num2, num2 + 7);
				num += 10;
				AddVeinVeinByRange(Silicium, num, num + 5, num2, num2 + 7);
				num += 10;
				AddVeinVeinByRange(Mag, num, num + 5, num2, num2 + 7);
				num += 10;
				AddVeinVeinByRange(Iron, num, num + 5, num2, num2 + 7);
				num += 10;
				AddVeinVeinByRange(Mag, num, num + 5, num2, num2 + 7);
				num += 10;
				AddVeinVeinByRange(Iron, num, num + 5, num2, num2 + 7);
				num += 10;
				AddVeinVeinByRange(Mag, num, num + 5, num2, num2 + 7);
				num += 10;
				AddVeinVeinByRange(Iron, num, num + 5, num2, num2 + 7);
			}
		}

		private static void BatchAddVein3()
		{
			if (GameMain.mainPlayer != null)
			{
				_ = GameMain.localPlanet;
				int num = 13;
				int num2 = 11;
				AddVeinVeinByRange(Diamond, num, num + 5, num2, num2 + 7);
				num += 10;
				AddVeinVeinByRange(Coal, num, num + 5, num2, num2 + 7);
				num += 10;
				AddVeinVeinByRange(Bamboo, num, num + 5, num2, num2 + 7);
				num += 10;
				AddVeinVeinByRange(Coal, num, num + 5, num2, num2 + 7);
				num += 10;
				AddVeinVeinByRange(Bamboo, num, num + 5, num2, num2 + 7);
				num += 10;
				AddVeinVeinByRange(Coal, num, num + 5, num2, num2 + 7);
				num += 10;
				AddVeinVeinByRange(Bamboo, num, num + 5, num2, num2 + 7);
				num += 10;
				AddVeinVeinByRange(Coal, num, num + 5, num2, num2 + 7);
				num = 13;
				num2 = 31;
				AddVeinVeinByRange(Bamboo, num, num + 5, num2, num2 + 7);
				num += 10;
				AddVeinVeinByRange(Diamond, num, num + 5, num2, num2 + 7);
				num += 10;
				AddVeinVeinByRange(Coal, num, num + 5, num2, num2 + 7);
				num += 10;
				AddVeinVeinByRange(Bamboo, num, num + 5, num2, num2 + 7);
				num += 10;
				AddVeinVeinByRange(Coal, num, num + 5, num2, num2 + 7);
				num += 10;
				AddVeinVeinByRange(Bamboo, num, num + 5, num2, num2 + 7);
				num += 10;
				AddVeinVeinByRange(Coal, num, num + 5, num2, num2 + 7);
				num += 10;
				AddVeinVeinByRange(Bamboo, num, num + 5, num2, num2 + 7);
				num = 13;
				num2 = 51;
				AddVeinVeinByRange(Diamond, num, num + 5, num2, num2 + 7);
				num += 10;
				AddVeinVeinByRange(Coal, num, num + 5, num2, num2 + 7);
				num += 10;
				AddVeinVeinByRange(Bamboo, num, num + 5, num2, num2 + 7);
				num += 10;
				AddVeinVeinByRange(Coal, num, num + 5, num2, num2 + 7);
				num += 10;
				AddVeinVeinByRange(Bamboo, num, num + 5, num2, num2 + 7);
				num += 10;
				AddVeinVeinByRange(Coal, num, num + 5, num2, num2 + 7);
				num += 10;
				AddVeinVeinByRange(Bamboo, num, num + 5, num2, num2 + 7);
				num += 10;
				AddVeinVeinByRange(Coal, num, num + 5, num2, num2 + 7);
			}
		}

		private static void BatchAddVein4()
		{
			if (GameMain.mainPlayer != null)
			{
				_ = GameMain.localPlanet;
				int num = 13;
				int num2 = 11;
				num += 10;
				AddVeinVeinByRange(Stone, num, num + 5, num2, num2 + 7);
				num += 10;
				AddVeinVeinByRange(Iron, num, num + 5, num2, num2 + 7);
				num += 10;
				AddVeinVeinByRange(Copper, num, num + 5, num2, num2 + 7);
				num += 10;
				AddVeinVeinByRange(Silicium, num, num + 5, num2, num2 + 7);
				num += 10;
				AddVeinVeinByRange(Titanium, num, num + 5, num2, num2 + 7);
				num += 10;
				AddVeinVeinByRange(Mag, num, num + 5, num2, num2 + 7);
				num += 10;
				num = 13;
				num2 = 31;
				num += 10;
				AddVeinVeinByRange(Mag, num, num + 5, num2, num2 + 7);
				num += 10;
				AddVeinVeinByRange(Grat, num, num + 5, num2, num2 + 7);
				num += 10;
				AddVeinVeinByRange(Mag, num, num + 5, num2, num2 + 7);
				num += 10;
				AddVeinVeinByRange(Diamond, num, num + 5, num2, num2 + 7);
				num += 10;
				AddVeinVeinByRange(Mag, num, num + 5, num2, num2 + 7);
				num += 10;
				AddVeinVeinByRange(Fireice, num, num + 5, num2, num2 + 7);
				num += 10;
			}
		}

		public static void AddVein(int veintype, int number, Vector3 pos)
		{
			//IL_0008: 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_0021: Unknown result type (might be due to invalid IL or missing references)
			//IL_0022: Unknown result type (might be due to invalid IL or missing references)
			//IL_0056: Unknown result type (might be due to invalid IL or missing references)
			//IL_0057: Unknown result type (might be due to invalid IL or missing references)
			//IL_0060: Unknown result type (might be due to invalid IL or missing references)
			//IL_008e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0096: Unknown result type (might be due to invalid IL or missing references)
			//IL_0097: Unknown result type (might be due to invalid IL or missing references)
			//IL_009c: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a8: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ad: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b2: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ce: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d4: Unknown result type (might be due to invalid IL or missing references)
			//IL_00da: Unknown result type (might be due to invalid IL or missing references)
			//IL_00db: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e0: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e1: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f1: Unknown result type (might be due to invalid IL or missing references)
			//IL_0121: Unknown result type (might be due to invalid IL or missing references)
			//IL_0127: 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_0133: Unknown result type (might be due to invalid IL or missing references)
			//IL_0151: Unknown result type (might be due to invalid IL or missing references)
			PlanetData localPlanet = GameMain.localPlanet;
			VeinData val = default(VeinData);
			val.amount = number;
			val.type = (EVeinType)(byte)veintype;
			val.pos = pos;
			val.productId = ((ProtoSet<VeinProto>)(object)LDB.veins).Select(veintype).MiningItem;
			val.modelIndex = (short)((ProtoSet<VeinProto>)(object)LDB.veins).Select(veintype).ModelIndex;
			VeinData val2 = val;
			val2.id = localPlanet.factory.AddVeinData(val2);
			val2.colliderId = localPlanet.physics.AddColliderData(((ColliderData)(ref ((ProtoSet<VeinProto>)(object)LDB.veins).Select(veintype).prefabDesc.colliders[0])).BindToObject(val2.id, 0, (EObjectType)2, val2.pos, Quaternion.FromToRotation(Vector3.up, ((Vector3)(ref val2.pos)).normalized)));
			val2.modelId = localPlanet.factoryModel.gpuiManager.AddModel((int)val2.modelIndex, val2.id, val2.pos, Maths.SphericalRotation(val2.pos, Random.value * 360f), true);
			val2.minerCount = 0;
			localPlanet.factory.AssignGroupIndexForNewVein(ref val2);
			localPlanet.factory.veinPool[val2.id] = val2;
			localPlanet.factory.RefreshVeinMiningDisplay(val2.id, 0, 0);
			localPlanet.factory.RecalculateVeinGroup((int)localPlanet.factory.veinPool[val2.id].groupIndex);
		}

		private static void ClearCurrentPlanetEnemies()
		{
			((Behaviour)buttonClearPlanet).enabled = false;
			string arg = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
			string arg2 = GameMain.data.gameDesc.galaxySeed.ToString("00000000");
			GameSave.SaveCurrentGame($"[{arg2}] {arg}");
			if (GameMain.mainPlayer != null)
			{
				ClearPlanetEnemies(GameMain.localPlanet);
				((Behaviour)buttonClearPlanet).enabled = true;
			}
		}

		private static void ClearPlanetEnemies(PlanetData planet)
		{
			Player mainPlayer = GameMain.mainPlayer;
			if (mainPlayer == null)
			{
				return;
			}
			Logger.LogInfo((object)("planet.name: " + planet.name));
			int astroId = planet.astroId;
			Logger.LogInfo((object)("astroid" + astroId));
			PlanetFactory orCreateFactory = GameMain.data.GetOrCreateFactory(planet);
			CombatStat[] buffer = orCreateFactory.skillSystem.combatStats.buffer;
			ObjectPool<DFGBaseComponent> bases = orCreateFactory.enemySystem.bases;
			for (int i = 1; i < bases.cursor; i++)
			{
				DFGBaseComponent val = bases.buffer[i];
				EnemyFormation[] forms = val.forms;
				for (int j = 0; j < forms.Length; j++)
				{
					if (forms[j].unitCount > 0)
					{
						try
						{
							Logger.LogInfo((object)("clear DFGBaseComponent:" + val.id + "  -> form count : " + forms[j].unitCount));
							forms[j].Clear();
						}
						catch (Exception)
						{
							Logger.LogInfo((object)("error to kill  forms" + j));
						}
					}
				}
			}
			for (int num = orCreateFactory.enemyCursor - 1; num > 0; num--)
			{
				ref EnemyData reference = ref orCreateFactory.enemyPool[num];
				if (reference.id == num)
				{
					try
					{
						Logger.LogInfo((object)("KillEnemyFinally -> enemyData.id: " + reference.id));
						int combatStatId = reference.combatStatId;
						orCreateFactory.skillSystem.OnRemovingSkillTarget(combatStatId, buffer[combatStatId].originAstroId, (ETargetType)64);
						orCreateFactory.skillSystem.combatStats.Remove(combatStatId);
						orCreateFactory.KillEnemyFinally(mainPlayer, num, ref CombatStat.empty);
					}
					catch (Exception)
					{
						Logger.LogInfo((object)("error to kill  KillEnemyFinally" + reference.id));
					}
				}
			}
			Logger.LogInfo((object)"------------------------------------");
			Logger.LogInfo((object)("planetFactory.craftPool.Length " + orCreateFactory.craftPool.Length));
			SpaceSector spaceSector = GameMain.spaceSector;
			for (int num2 = spaceSector.enemyCursor - 1; num2 > 0; num2--)
			{
				ref EnemyData reference2 = ref spaceSector.enemyPool[num2];
				if (reference2.id == num2 && reference2.astroId == planet.id)
				{
					Logger.LogInfo((object)("KillEnemyFinal -> enemyData.id: " + reference2.id));
					spaceSector.KillEnemyFinal(reference2.id, ref CombatStat.empty);
				}
			}
		}

		private static void ClearStarEnemies()
		{
			((Behaviour)buttonClearStar).enabled = false;
			string arg = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
			string arg2 = GameMain.data.gameDesc.galaxySeed.ToString("00000000");
			GameSave.SaveCurrentGame($"[{arg2}] {arg}");
			if (GameMain.mainPlayer == null)
			{
				return;
			}
			_ = GameMain.localPlanet;
			StarData localStar = GameMain.localStar;
			SpaceSector spaceSector = GameMain.spaceSector;
			List<int> list = new List<int>();
			for (int num = spaceSector.enemyCursor - 1; num > 0; num--)
			{
				ref EnemyData reference = ref spaceSector.enemyPool[num];
				if (reference.id == num && !((EnemyData)(ref reference)).isInvincible && reference.dfSCoreId <= 0 && reference.astroId == localStar.astroId)
				{
					Logger.LogInfo((object)("active replys->" + reference.id));
					list.Add(reference.id);
				}
			}
			for (EnemyDFHiveSystem val = spaceSector.dfHives[localStar.index]; val != null; val = val.nextSibling)
			{
				if (val.isAlive)
				{
					Logger.LogInfo((object)("enemyDFHiveSystem.hiveAstroId " + val.hiveAstroId));
					Logger.LogInfo((object)("enemyDFHiveSystem.rootEnemyId " + val.rootEnemyId));
					for (int num2 = val.units.cursor - 1; num2 > 0; num2--)
					{
						int enemyId = val.units.buffer[num2].enemyId;
						if (enemyId > 0)
						{
							ref EnemyData reference2 = ref spaceSector.enemyPool[enemyId];
							if (!((EnemyData)(ref reference2)).isInvincible && reference2.dfSCoreId <= 0)
							{
								list.Add(enemyId);
							}
						}
					}
					for (int num3 = val.tinders.cursor - 1; num3 > 0; num3--)
					{
						int enemyId2 = val.tinders.buffer[num3].enemyId;
						if (enemyId2 > 0)
						{
							ref EnemyData reference3 = ref spaceSector.enemyPool[enemyId2];
							if (!((EnemyData)(ref reference3)).isInvincible && reference3.dfSCoreId <= 0)
							{
								list.Add(enemyId2);
							}
						}
					}
					for (int num4 = val.idleRelayCount - 1; num4 > 0; num4--)
					{
						int enemyId3 = val.relays.buffer[val.idleRelayIds[num4]].enemyId;
						if (enemyId3 > 0)
						{
							ref EnemyData reference4 = ref spaceSector.enemyPool[enemyId3];
							if (!((EnemyData)(ref reference4)).isInvincible && reference4.dfSCoreId <= 0)
							{
								list.Add(enemyId3);
							}
						}
					}
					for (int num5 = val.turrets.cursor - 1; num5 > 0; num5--)
					{
						int enemyId4 = val.turrets.buffer[num5].enemyId;
						if (enemyId4 > 0)
						{
							ref EnemyData reference5 = ref spaceSector.enemyPool[enemyId4];
							if (!((EnemyData)(ref reference5)).isInvincible && reference5.dfSCoreId <= 0)
							{
								list.Add(enemyId4);
							}
						}
					}
					for (int num6 = val.gammas.cursor - 1; num6 > 0; num6--)
					{
						int enemyId5 = val.gammas.buffer[num6].enemyId;
						if (enemyId5 > 0)
						{
							ref EnemyData reference6 = ref spaceSector.enemyPool[enemyId5];
							if (!((EnemyData)(ref reference6)).isInvincible && reference6.dfSCoreId <= 0)
							{
								list.Add(enemyId5);
							}
						}
					}
					for (int num7 = val.replicators.cursor - 1; num7 > 0; num7--)
					{
						int enemyId6 = val.replicators.buffer[num7].enemyId;
						if (enemyId6 > 0)
						{
							ref EnemyData reference7 = ref spaceSector.enemyPool[enemyId6];
							if (!((EnemyData)(ref reference7)).isInvincible && reference7.dfSCoreId <= 0)
							{
								list.Add(enemyId6);
							}
						}
					}
					for (int num8 = val.connectors.cursor - 1; num8 > 0; num8--)
					{
						int enemyId7 = val.connectors.buffer[num8].enemyId;
						if (enemyId7 > 0)
						{
							ref EnemyData reference8 = ref spaceSector.enemyPool[enemyId7];
							if (!((EnemyData)(ref reference8)).isInvincible && reference8.dfSCoreId <= 0)
							{
								list.Add(enemyId7);
							}
						}
					}
					for (int num9 = val.nodes.cursor - 1; num9 > 0; num9--)
					{
						int enemyId8 = val.nodes.buffer[num9].enemyId;
						if (enemyId8 > 0)
						{
							ref EnemyData reference9 = ref spaceSector.enemyPool[enemyId8];
							if (!((EnemyData)(ref reference9)).isInvincible && reference9.dfSCoreId <= 0)
							{
								list.Add(enemyId8);
							}
						}
					}
					for (int num10 = val.builders.cursor - 1; num10 > 0; num10--)
					{
						int enemyId9 = val.builders.buffer[num10].enemyId;
						if (enemyId9 > 0)
						{
							ref EnemyData reference10 = ref spaceSector.enemyPool[enemyId9];
							if (!((EnemyData)(ref reference10)).isInvincible && reference10.dfSCoreId <= 0)
							{
								list.Add(enemyId9);
							}
						}
					}
					EnemyFormation[] forms = val.forms;
					for (int i = 0; i < forms.Length; i++)
					{
						if (forms[i].unitCount > 0)
						{
							Logger.LogInfo((object)("clear form " + forms[i].unitCount));
							forms[i].Clear();
						}
					}
					for (int num11 = val.cores.cursor - 1; num11 > 0; num11--)
					{
						ref EnemyBuilderComponent reference11 = ref val.builders.buffer[val.cores.buffer[num11].builderId];
						reference11.matter = 0;
						reference11.energy = 0;
					}
				}
			}
			foreach (int item in list.Distinct().ToList())
			{
				try
				{
					spaceSector.KillEnemyFinal(item, ref CombatStat.empty);
				}
				catch (Exception)
				{
					Logger.LogInfo((object)("error to kill " + item));
				}
			}
			((Behaviour)buttonClearStar).enabled = true;
		}

		private static void StarsFillHive()
		{
			((Behaviour)buttonFillHive).enabled = false;
			string arg = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
			string arg2 = GameMain.data.gameDesc.galaxySeed.ToString("00000000");
			GameSave.SaveCurrentGame($"[{arg2}] {arg}");
			if (GameMain.mainPlayer == null)
			{
				return;
			}
			GalaxyData galaxy = GameMain.galaxy;
			SpaceSector spaceSector = GameMain.spaceSector;
			for (int i = 0; i < galaxy.starCount; i++)
			{
				StarData val = galaxy.stars[i];
				int num = val.maxHiveCount;
				if (num > 8)
				{
					num = 8;
				}
				EnemyDFHiveSystem val2 = spaceSector.dfHives[val.index];
				int num2 = 0;
				while (val2 != null)
				{
					num2++;
					val2 = val2.nextSibling;
				}
				for (int j = 0; j < num - num2; j++)
				{
					EnemyDFHiveSystem val3 = spaceSector.TryCreateNewHive(val);
					if (val3 == null)
					{
						continue;
					}
					Logger.LogInfo((object)(val.displayName + " Add 1 hive"));
					val3.isEmpty = false;
					val3.matterStatComplete = false;
					float num3 = Mathf.Pow(1f - val3.starData.safetyFactor, 1.4f);
					int num4 = RandomTable.Integer(ref val3.rtseed, 600);
					float initialGrowth = val3.history.combatSettings.initialGrowth;
					val3.ticks = 600 + (int)(num3 * 72000f) + num4;
					val3.ticks = (int)((float)val3.ticks * initialGrowth);
					val3.ticks = val3.InitialGrowthToTicks(val3.ticks);
					if (val3.ticks < 4)
					{
						val3.ticks = 4;
					}
					if (initialGrowth > 1f)
					{
						float num5 = initialGrowth - 1f;
						val3.evolve.rankBase = (int)((float)val3.evolve.rankBase * initialGrowth + 0.5f);
						val3.evolve.rankBase = val3.evolve.rankBase + (int)(num5 * 40f + 0.5f);
						if (val3.evolve.rankBase > 127)
						{
							val3.evolve.rankBase = 127;
						}
					}
					else if (initialGrowth < 1f)
					{
						val3.evolve.rankBase = (int)((float)val3.evolve.rankBase * Mathf.Lerp(initialGrowth, 1f, 0.5f) + 0.5f);
					}
					val3.isCarrierRealized = val3.starData.id == val3.galaxy.birthStarId;
					val3.tindersInTransit = 0;
				}
			}
		}

		private static void StarResetHive()
		{
			((Behaviour)buttonResetHive).enabled = false;
			string arg = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
			string arg2 = GameMain.data.gameDesc.galaxySeed.ToString("00000000");
			GameSave.SaveCurrentGame($"[{arg2}] {arg}");
			if (GameMain.mainPlayer != null)
			{
				_ = GameMain.localPlanet;
				StarData localStar = GameMain.localStar;
				for (EnemyDFHiveSystem val = GameMain.spaceSector.dfHives[localStar.index]; val != null; val = val.nextSibling)
				{
					val.SetForNewGame();
				}
				((Behaviour)buttonResetHive).enabled = true;
			}
		}

		private static void SetCoreInvincible()
		{
			if (GameMain.mainPlayer == null)
			{
				return;
			}
			_ = GameMain.localPlanet;
			StarData localStar = GameMain.localStar;
			SpaceSector spaceSector = GameMain.spaceSector;
			for (EnemyDFHiveSystem val = spaceSector.dfHives[localStar.index]; val != null; val = val.nextSibling)
			{
				for (int num = val.cores.cursor - 1; num > 0; num--)
				{
					((EnemyData)(ref spaceSector.enemyPool[val.cores.buffer[num].enemyId])).isInvincible = true;
				}
			}
		}

		private static void SetCoreVulnerable()
		{
			if (GameMain.mainPlayer == null)
			{
				return;
			}
			_ = GameMain.localPlanet;
			StarData localStar = GameMain.localStar;
			SpaceSector spaceSector = GameMain.spaceSector;
			for (EnemyDFHiveSystem val = spaceSector.dfHives[localStar.index]; val != null; val = val.nextSibling)
			{
				for (int num = val.cores.cursor - 1; num > 0; num--)
				{
					((EnemyData)(ref spaceSector.enemyPool[val.cores.buffer[num].enemyId])).isInvincible = false;
				}
			}
		}
	}
}
namespace DSPmod
{
	public class Class1
	{
	}
}