using System; using System.Collections.Generic; using System.Diagnostics; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using BepInEx; using BepInEx.Configuration; using BepInEx.Logging; using HarmonyLib; using Microsoft.CodeAnalysis; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: TargetFramework(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")] [assembly: AssemblyCompany("EpicResearch")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("EpicResearch")] [assembly: AssemblyTitle("EpicResearch")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] [module: RefSafetyRules(11)] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)] internal sealed class RefSafetyRulesAttribute : Attribute { public readonly int Version; public RefSafetyRulesAttribute(int P_0) { Version = P_0; } } } namespace DysonSphereProgram.Modding.StarterTemplate { public static class Configs { public static bool AdjustTechUnlocks = true; public static bool AdjustTechCosts = true; public static double TechCostMultiple = 100.0; public static float ResourceMultiple = 1f; } [BepInPlugin("mrrvlad.epic.research", "EpicResearch", "0.4.4")] [BepInProcess("DSPGAME.exe")] public class EpicResearchPlugin : BaseUnityPlugin { public const string GUID = "mrrvlad.epic.research"; public const string NAME = "EpicResearch"; public const string VERSION = "0.4.4"; private Harmony _harmony; internal static ManualLogSource Log; private static readonly int[,] remove_dependencies_data = new int[3, 2] { { 1303, 1312 }, { 3901, 1312 }, { 3404, 2904 } }; private static readonly int[,] unlocks_move_data = new int[9, 3] { { 1705, 1507, 79 }, { 1703, 1507, 100 }, { 1125, 1417, 29 }, { 1502, 1202, 69 }, { 1132, 1305, 35 }, { 1133, 1203, 62 }, { 1403, 1203, 61 }, { 1416, 1142, 41 }, { 1131, 1304, 32 } }; private static readonly float[,] unlocks_bonus_data = new float[37, 3] { { 3403f, 16f, 6f }, { 3404f, 16f, 8f }, { 3405f, 16f, 10f }, { 3503f, 19f, 2f }, { 3504f, 19f, 2f }, { 3507f, 19f, 0.5f }, { 3508f, 19f, 0.5f }, { 3601f, 20f, 0.95f }, { 3601f, 21f, 2f }, { 3602f, 20f, 0.95f }, { 3602f, 21f, 2f }, { 3603f, 20f, 0.95f }, { 3603f, 21f, 2f }, { 3101f, 12f, 3f }, { 3102f, 12f, 3f }, { 3103f, 12f, 2f }, { 3104f, 12f, 2f }, { 3105f, 12f, 2f }, { 3106f, 12f, 2f }, { 2101f, 6f, 2f }, { 2102f, 6f, 2f }, { 2103f, 6f, 2f }, { 2104f, 6f, 2f }, { 2202f, 3f, 2f }, { 2203f, 3f, 2f }, { 2204f, 3f, 2f }, { 2401f, 1f, 2f }, { 2402f, 1f, 2f }, { 2403f, 9f, 2f }, { 2404f, 1f, 2f }, { 2501f, 2f, 2f }, { 2502f, 2f, 3f }, { 2503f, 2f, 3f }, { 2504f, 2f, 3f }, { 2602f, 10f, 2f }, { 2603f, 10f, 2f }, { 2604f, 10f, 2f } }; private static Dictionary tech_data; private string Print(int[] val) { string text = "("; for (int i = 0; i < val.Length; i++) { if (i > 0) { text += ","; } text += val[i]; } return text + ")"; } private string Print(double[] val) { string text = "("; for (int i = 0; i < val.Length; i++) { if (i > 0) { text += ","; } text += val[i]; } return text + ")"; } [HarmonyPrefix] [HarmonyPatch(typeof(GameMain), "Begin")] public static void GameMain_Begin_Prefix() { //IL_01be: Unknown result type (might be due to invalid IL or missing references) //IL_01c4: Invalid comparison between Unknown and I4 //IL_02cb: Unknown result type (might be due to invalid IL or missing references) //IL_02d1: Invalid comparison between Unknown and I4 if (GameMain.instance.isMenuDemo) { return; } Log.LogInfo((object)("GameMain_Begin_Postfix called at gameTick: " + GameMain.gameTick + " , resource multiple: " + Configs.ResourceMultiple)); StarData[] stars = GameMain.data.galaxy.stars; foreach (StarData val in stars) { val.resourceCoef *= Configs.ResourceMultiple; PlanetData[] planets = val.planets; foreach (PlanetData val2 in planets) { if (val2.gasSpeeds != null) { for (int k = 0; k < val2.gasSpeeds.GetLength(0); k++) { val2.gasSpeeds[k] *= Configs.ResourceMultiple; } continue; } if (val2.runtimeVeinGroups != null && val2.factory == null) { int length = val2.runtimeVeinGroups.GetLength(0); for (int l = 0; l < length; l++) { val2.runtimeVeinGroups[l].amount = (long)(Configs.ResourceMultiple * (float)val2.runtimeVeinGroups[l].amount); } } if (GameMain.gameTick != 0) { continue; } if (val2.factory != null && val2.factory.veinPool != null) { int length2 = val2.factory.veinPool.GetLength(0); for (int m = 0; m < length2; m++) { if ((int)val2.factory.veinPool[m].type == 7) { val2.factory.veinPool[m].amount = (int)(Math.Sqrt((double)Configs.ResourceMultiple + 1E-08) * (double)val2.factory.veinPool[m].amount); } else { val2.factory.veinPool[m].amount = (int)(Configs.ResourceMultiple * (float)val2.factory.veinPool[m].amount); } } val2.factory.RecalculateAllVeinGroups(); } if (val2.data == null || val2.data.veinPool == null) { continue; } int length3 = val2.data.veinPool.GetLength(0); for (int n = 0; n < length3; n++) { if ((int)val2.data.veinPool[n].type == 7) { val2.data.veinPool[n].amount = (int)(Math.Sqrt((double)Configs.ResourceMultiple + 1E-08) * (double)val2.data.veinPool[n].amount); } else { val2.data.veinPool[n].amount = (int)(Configs.ResourceMultiple * (float)val2.data.veinPool[n].amount); } } } } } private void Awake() { //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Expected O, but got Unknown Log = ((BaseUnityPlugin)this).Logger; _harmony = new Harmony("mrrvlad.epic.research"); Harmony.CreateAndPatchAll(typeof(EpicResearchPlugin), (string)null); ((BaseUnityPlugin)this).Logger.LogInfo((object)"EpicResearch Awake() called"); ConfigEntry val = ((BaseUnityPlugin)this).Config.Bind("General", "AdjustTechUnlocks", true, "Modify tech tree unlocks for rare receips"); ConfigEntry val2 = ((BaseUnityPlugin)this).Config.Bind("General", "AdjustTechCosts", true, "Modify type and quantity of materials needed to unlock a tech"); ConfigEntry val3 = ((BaseUnityPlugin)this).Config.Bind("General", "TechCostMultiple", 100, "Apply this multiple to tech costs. Valid vaules are 1, 5, 10, 20, 50, 100."); ConfigEntry val4 = ((BaseUnityPlugin)this).Config.Bind("General", "ResourceMultiple", 1f, "Additional resource multipler for the galaxy. Affects all ore, gas giants, oil. Remote oil seems to be affected as sqrt of this value."); Configs.AdjustTechUnlocks = val.Value; Configs.AdjustTechCosts = val2.Value; if (val3.Value <= 1) { Configs.TechCostMultiple = 1.0; } else if (val3.Value <= 5) { Configs.TechCostMultiple = 5.0; } else if (val3.Value <= 10) { Configs.TechCostMultiple = 10.0; } else if (val3.Value <= 20) { Configs.TechCostMultiple = 20.0; } else if (val3.Value <= 50) { Configs.TechCostMultiple = 50.0; } else { Configs.TechCostMultiple = 100.0; } Configs.ResourceMultiple = val4.Value; if (Configs.AdjustTechUnlocks) { AdjustUnlocks(); } AdjustTechHashCosts(Configs.AdjustTechCosts, Configs.TechCostMultiple); AdjustBombDamage(); AdjustGaussAmmo(); } private void AdjustUnlocks() { int value; bool flag = ((ProtoSet)(object)LDB.techs).dataIndices.TryGetValue(3404, out value); int value2; bool flag2 = ((ProtoSet)(object)LDB.techs).dataIndices.TryGetValue(3406, out value2); if (flag && flag2) { int num = -1; for (int i = 0; i < ((ProtoSet)(object)LDB.techs).dataArray[value].UnlockFunctions.Length; i++) { if (((ProtoSet)(object)LDB.techs).dataArray[value].UnlockFunctions[i] == 17) { num = i; break; } } if (num != -1) { ((ProtoSet)(object)LDB.techs).dataArray[value2].UnlockFunctions = CollectionExtensions.AddToArray(((ProtoSet)(object)LDB.techs).dataArray[value2].UnlockFunctions, 17); ((ProtoSet)(object)LDB.techs).dataArray[value2].UnlockValues = CollectionExtensions.AddToArray(((ProtoSet)(object)LDB.techs).dataArray[value2].UnlockValues, 1.0); int[] unlockFunctions = ((ProtoSet)(object)LDB.techs).dataArray[value].UnlockFunctions; double[] unlockValues = ((ProtoSet)(object)LDB.techs).dataArray[value].UnlockValues; ((ProtoSet)(object)LDB.techs).dataArray[value].UnlockFunctions = Array.Empty(); ((ProtoSet)(object)LDB.techs).dataArray[value].UnlockValues = Array.Empty(); for (int j = 0; j < unlockFunctions.Length; j++) { if (j != num) { ((ProtoSet)(object)LDB.techs).dataArray[value].UnlockFunctions = CollectionExtensions.AddToArray(((ProtoSet)(object)LDB.techs).dataArray[value].UnlockFunctions, unlockFunctions[j]); ((ProtoSet)(object)LDB.techs).dataArray[value].UnlockValues = CollectionExtensions.AddToArray(((ProtoSet)(object)LDB.techs).dataArray[value].UnlockValues, unlockValues[j]); } } } else { ((BaseUnityPlugin)this).Logger.LogInfo((object)"Failed to move logi warp from l4 to l6 - warp capability not found in l4"); } } else { ((BaseUnityPlugin)this).Logger.LogInfo((object)"Failed find logi tech while moving logi warp from l4 to l6"); } int value3; bool flag3 = ((ProtoSet)(object)LDB.techs).dataIndices.TryGetValue(1704, out value3); int value4; bool flag4 = ((ProtoSet)(object)LDB.techs).dataIndices.TryGetValue(1523, out value4); if (flag3 && flag4) { int num2 = -1; for (int k = 0; k < ((ProtoSet)(object)LDB.techs).dataArray[value4].UnlockFunctions.Length; k++) { if (((ProtoSet)(object)LDB.techs).dataArray[value4].UnlockFunctions[k] == 26) { num2 = k; break; } } if (num2 != -1) { ((ProtoSet)(object)LDB.techs).dataArray[value3].UnlockFunctions = CollectionExtensions.AddToArray(((ProtoSet)(object)LDB.techs).dataArray[value3].UnlockFunctions, 26); ((ProtoSet)(object)LDB.techs).dataArray[value3].UnlockValues = CollectionExtensions.AddToArray(((ProtoSet)(object)LDB.techs).dataArray[value3].UnlockValues, 6.0); int[] unlockFunctions2 = ((ProtoSet)(object)LDB.techs).dataArray[value4].UnlockFunctions; double[] unlockValues2 = ((ProtoSet)(object)LDB.techs).dataArray[value4].UnlockValues; ((ProtoSet)(object)LDB.techs).dataArray[value4].UnlockFunctions = Array.Empty(); ((ProtoSet)(object)LDB.techs).dataArray[value4].UnlockValues = Array.Empty(); for (int l = 0; l < unlockFunctions2.Length; l++) { if (l != num2) { ((ProtoSet)(object)LDB.techs).dataArray[value4].UnlockFunctions = CollectionExtensions.AddToArray(((ProtoSet)(object)LDB.techs).dataArray[value4].UnlockFunctions, unlockFunctions2[l]); ((ProtoSet)(object)LDB.techs).dataArray[value4].UnlockValues = CollectionExtensions.AddToArray(((ProtoSet)(object)LDB.techs).dataArray[value4].UnlockValues, unlockValues2[l]); } } ((ProtoSet)(object)LDB.techs).dataArray[value4].UnlockFunctions = CollectionExtensions.AddToArray(((ProtoSet)(object)LDB.techs).dataArray[value4].UnlockFunctions, 26); ((ProtoSet)(object)LDB.techs).dataArray[value4].UnlockValues = CollectionExtensions.AddToArray(((ProtoSet)(object)LDB.techs).dataArray[value4].UnlockValues, 14.0); } else { ((BaseUnityPlugin)this).Logger.LogInfo((object)"Failed to move dyson sphere stress capability from tech 1523 to 1704"); } } else { ((BaseUnityPlugin)this).Logger.LogInfo((object)"Failed find tech while moving dyson sphere stress capability from 1523 to 1704"); } for (int m = 0; m < remove_dependencies_data.GetLength(0); m++) { if (((ProtoSet)(object)LDB.techs).dataIndices.TryGetValue(remove_dependencies_data[m, 0], out var value5)) { int[] preTechs = ((ProtoSet)(object)LDB.techs).dataArray[value5].PreTechs; ((ProtoSet)(object)LDB.techs).dataArray[value5].PreTechs = Array.Empty(); for (int n = 0; n < preTechs.Length; n++) { if (preTechs[n] != remove_dependencies_data[m, 1]) { ((ProtoSet)(object)LDB.techs).dataArray[value5].PreTechs = CollectionExtensions.AddToArray(((ProtoSet)(object)LDB.techs).dataArray[value5].PreTechs, preTechs[n]); } } preTechs = ((ProtoSet)(object)LDB.techs).dataArray[value5].PreTechsImplicit; ((ProtoSet)(object)LDB.techs).dataArray[value5].PreTechsImplicit = Array.Empty(); for (int num3 = 0; num3 < preTechs.Length; num3++) { if (preTechs[num3] != remove_dependencies_data[m, 1]) { ((ProtoSet)(object)LDB.techs).dataArray[value5].PreTechsImplicit = CollectionExtensions.AddToArray(((ProtoSet)(object)LDB.techs).dataArray[value5].PreTechsImplicit, preTechs[num3]); } } } else { ((BaseUnityPlugin)this).Logger.LogInfo((object)"Failed find tech to remove the dependency."); } } ((BaseUnityPlugin)this).Logger.LogInfo((object)("Adjusting unlock bonus values:" + unlocks_bonus_data.GetLength(0))); for (int num4 = 0; num4 < unlocks_bonus_data.GetLength(0); num4++) { if (((ProtoSet)(object)LDB.techs).dataIndices.TryGetValue((int)unlocks_bonus_data[num4, 0], out var value6)) { int num5 = -1; for (int num6 = 0; num6 < ((ProtoSet)(object)LDB.techs).dataArray[value6].UnlockFunctions.Length; num6++) { if ((float)((ProtoSet)(object)LDB.techs).dataArray[value6].UnlockFunctions[num6] == unlocks_bonus_data[num4, 1]) { num5 = num6; break; } } if (num5 != -1) { ((ProtoSet)(object)LDB.techs).dataArray[value6].UnlockValues[num5] *= unlocks_bonus_data[num4, 2]; continue; } ((BaseUnityPlugin)this).Logger.LogInfo((object)("Failed to find UnlockFunction " + (int)unlocks_bonus_data[num4, 1] + " in tech " + (int)unlocks_bonus_data[num4, 0] + " to adjust")); } else { ((BaseUnityPlugin)this).Logger.LogInfo((object)("Failed find tech: " + unlocks_bonus_data[num4, 0])); } } ((BaseUnityPlugin)this).Logger.LogInfo((object)("Moving techs:" + unlocks_move_data.GetLength(0))); for (int num7 = 0; num7 < unlocks_move_data.GetLength(0); num7++) { int value7; bool flag5 = ((ProtoSet)(object)LDB.techs).dataIndices.TryGetValue(unlocks_move_data[num7, 0], out value7); int value8; bool flag6 = ((ProtoSet)(object)LDB.techs).dataIndices.TryGetValue(unlocks_move_data[num7, 1], out value8); if (flag5 && flag6) { int num8 = -1; for (int num9 = 0; num9 < ((ProtoSet)(object)LDB.techs).dataArray[value7].UnlockRecipes.Length; num9++) { if (((ProtoSet)(object)LDB.techs).dataArray[value7].UnlockRecipes[num9] == unlocks_move_data[num7, 2]) { num8 = num9; break; } } if (num8 != -1) { ((ProtoSet)(object)LDB.techs).dataArray[value8].UnlockRecipes = CollectionExtensions.AddToArray(((ProtoSet)(object)LDB.techs).dataArray[value8].UnlockRecipes, unlocks_move_data[num7, 2]); int[] unlockRecipes = ((ProtoSet)(object)LDB.techs).dataArray[value7].UnlockRecipes; ((ProtoSet)(object)LDB.techs).dataArray[value7].UnlockRecipes = Array.Empty(); for (int num10 = 0; num10 < unlockRecipes.Length; num10++) { if (num10 != num8) { ((ProtoSet)(object)LDB.techs).dataArray[value7].UnlockRecipes = CollectionExtensions.AddToArray(((ProtoSet)(object)LDB.techs).dataArray[value7].UnlockRecipes, unlockRecipes[num10]); } } } else { ((BaseUnityPlugin)this).Logger.LogInfo((object)("Failed to move receipt " + unlocks_move_data[num7, 2] + " from tech " + unlocks_move_data[num7, 0] + " to " + unlocks_move_data[num7, 1])); } } else { ((BaseUnityPlugin)this).Logger.LogInfo((object)("Failed find tech while moving receipt from" + unlocks_move_data[num7, 0] + " to:" + unlocks_move_data[num7, 1])); } } } private void AdjustTechHashCosts(bool adjust_techs = true, double multiple = 100.0) { if (adjust_techs) { InitializeDictionary(); } int num = ((ProtoSet)(object)LDB.techs).dataArray.Length; for (int i = 0; i < num; i++) { if (tech_data.TryGetValue(((Proto)((ProtoSet)(object)LDB.techs).dataArray[i]).ID, out var value)) { double num2 = 0.01 * multiple * (double)value[1]; if (num2 < 1.0) { num2 = 1.0; } ((ProtoSet)(object)LDB.techs).dataArray[i].HashNeeded = (long)((double)value[0] * num2); ((ProtoSet)(object)LDB.techs).dataArray[i].ItemPoints = Array.Empty(); ((ProtoSet)(object)LDB.techs).dataArray[i].Items = Array.Empty(); for (int j = 0; j < 6; j++) { if (value[j + 2] > 0) { ((ProtoSet)(object)LDB.techs).dataArray[i].ItemPoints = CollectionExtensions.AddToArray(((ProtoSet)(object)LDB.techs).dataArray[i].ItemPoints, value[j + 2]); ((ProtoSet)(object)LDB.techs).dataArray[i].Items = CollectionExtensions.AddToArray(((ProtoSet)(object)LDB.techs).dataArray[i].Items, value[j + 2 + 6]); } } if (((Proto)((ProtoSet)(object)LDB.techs).dataArray[i]).ID == 1801) { ((ProtoSet)(object)LDB.techs).dataArray[i].IsLabTech = false; } if (((Proto)((ProtoSet)(object)LDB.techs).dataArray[i]).ID == 1802) { ((ProtoSet)(object)LDB.techs).dataArray[i].IsLabTech = false; } continue; } double num3 = multiple; if (((ProtoSet)(object)LDB.techs).dataArray[i].LevelCoef1 != 0) { if (((Proto)((ProtoSet)(object)LDB.techs).dataArray[i]).ID == 3606 && num3 > 10.0) { num3 = 10.0; } if (num3 > 20.0) { num3 = 20.0; } TechProto obj = ((ProtoSet)(object)LDB.techs).dataArray[i]; obj.HashNeeded *= (long)num3; TechProto obj2 = ((ProtoSet)(object)LDB.techs).dataArray[i]; obj2.LevelCoef1 *= (int)num3; TechProto obj3 = ((ProtoSet)(object)LDB.techs).dataArray[i]; obj3.LevelCoef2 *= (int)num3; } else { TechProto obj4 = ((ProtoSet)(object)LDB.techs).dataArray[i]; obj4.HashNeeded *= (long)num3; } } } private void AdjustBombDamage() { Log.LogInfo((object)"EpicResearch AdjustBombDamage() called"); int num = ((ProtoSet)(object)LDB.items).dataArray.Length; for (int i = 0; i < num; i++) { if (((ProtoSet)(object)LDB.items).dataArray[i].isBomb && ((Proto)((ProtoSet)(object)LDB.items).dataArray[i]).ID < 1200) { int ability = ((ProtoSet)(object)LDB.items).dataArray[i].Ability; int ability2 = ability / 5; if (((Proto)((ProtoSet)(object)LDB.items).dataArray[i]).ID == 1128) { ability2 = 2000; } else if (((Proto)((ProtoSet)(object)LDB.items).dataArray[i]).ID == 1129) { ability2 = 9000; } else if (((Proto)((ProtoSet)(object)LDB.items).dataArray[i]).ID == 1130) { ability2 = ability; } ((ProtoSet)(object)LDB.items).dataArray[i].Ability = ability2; } } } private void AdjustGaussAmmo() { Log.LogInfo((object)"EpicResearch AdjustGaussAmmo() called"); int num = ((ProtoSet)(object)LDB.recipes).dataArray.Length; for (int i = 0; i < num; i++) { if (((Proto)((ProtoSet)(object)LDB.recipes).dataArray[i]).ID == 136) { ((ProtoSet)(object)LDB.recipes).dataArray[i].ItemCounts[0] = 2; } else if (((Proto)((ProtoSet)(object)LDB.recipes).dataArray[i]).ID == 137) { ((ProtoSet)(object)LDB.recipes).dataArray[i].ItemCounts[1] = 1; } } int num2 = ((ProtoSet)(object)LDB.items).dataArray.Length; for (int j = 0; j < num2; j++) { if (((Proto)((ProtoSet)(object)LDB.items).dataArray[j]).ID == 1601) { ((ProtoSet)(object)LDB.items).dataArray[j].Ability = 800; } else if (((Proto)((ProtoSet)(object)LDB.items).dataArray[j]).ID == 1602) { ((ProtoSet)(object)LDB.items).dataArray[j].Ability = 2000; } else if (((Proto)((ProtoSet)(object)LDB.items).dataArray[j]).ID == 1603) { ((ProtoSet)(object)LDB.items).dataArray[j].Ability = 4500; } } } private void OnDestroy() { ((BaseUnityPlugin)this).Logger.LogInfo((object)"StarterTemplate OnDestroy() called"); Harmony harmony = _harmony; if (harmony != null) { harmony.UnpatchSelf(); } Log = null; } private static void InitializeDictionary() { tech_data = new Dictionary(); tech_data[1001] = new int[14] { 1200, 2, 30, -1, -1, -1, -1, -1, 1202, 6002, 6003, 6004, 6005, 6006 }; tech_data[1601] = new int[14] { 1800, 5, 40, 40, -1, -1, -1, -1, 1301, 1201, 6003, 6004, 6005, 6006 }; tech_data[1401] = new int[14] { 900, 5, 40, 40, -1, -1, -1, -1, 1202, 1301, 6003, 6004, 6005, 6006 }; tech_data[1002] = new int[14] { 3600, 5, 200, 200, -1, -1, -1, -1, 1202, 1301, 6003, 6004, 6005, 6006 }; tech_data[1201] = new int[14] { 1800, 5, 80, 80, -1, -1, -1, -1, 1101, 1104, 6003, 6004, 6005, 6006 }; tech_data[1120] = new int[14] { 9000, 100, 20, -1, -1, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[1101] = new int[14] { 9000, 100, 20, -1, -1, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[1701] = new int[14] { 9000, 40, 40, -1, -1, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[1602] = new int[14] { 18000, 50, 20, -1, -1, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[1411] = new int[14] { 3600, 2, 100, -1, -1, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[1402] = new int[14] { 7200, 100, 30, -1, -1, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[1412] = new int[14] { 9000, 100, 40, -1, -1, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[1102] = new int[14] { 36000, 100, 6, -1, -1, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[1151] = new int[14] { 36000, 100, 5, -1, -1, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[1415] = new int[14] { 72000, 100, 2, -1, -1, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[1403] = new int[14] { 90000, 100, -1, 20, -1, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[1501] = new int[14] { 18000, 100, 40, -1, -1, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[1311] = new int[14] { 18000, 2, 20, -1, -1, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[1134] = new int[14] { 36000, 100, 20, 30, 10, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[1121] = new int[14] { 72000, 100, 10, 10, -1, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[1111] = new int[14] { 180000, 100, 10, -1, -1, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[1702] = new int[14] { 180000, 100, 8, 2, -1, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[1603] = new int[14] { 72000, 100, 20, 5, -1, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[1608] = new int[14] { 108000, 100, 16, 8, -1, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[1413] = new int[14] { 36000, 100, 20, 20, -1, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[1511] = new int[14] { 432000, 100, 4, 3, -1, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[1502] = new int[14] { 72000, 100, 10, 10, -1, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[1513] = new int[14] { 576000, 100, 4, -1, -1, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[1302] = new int[14] { 144000, 100, 20, -1, -1, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[1131] = new int[14] { 144000, 100, 10, -1, -1, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[1122] = new int[14] { 72000, 100, 15, 15, -1, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[1103] = new int[14] { 108000, 100, -1, 10, -1, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[1112] = new int[14] { 144000, 100, -1, 10, -1, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[1711] = new int[14] { 360000, 100, 5, 2, -1, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[1604] = new int[14] { 540000, 100, 14, -1, -1, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[1607] = new int[14] { 180000, 100, 10, -1, 2, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[1503] = new int[14] { 108000, 100, -1, 20, -1, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[1202] = new int[14] { 216000, 100, 10, -1, 3, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[1123] = new int[14] { 216000, 100, 20, 20, -1, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[1113] = new int[14] { 180000, 100, 12, -1, -1, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[1152] = new int[14] { 1080000, 100, 3, 2, 1, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[1703] = new int[14] { 144000, 100, 20, 15, -1, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[1104] = new int[14] { 180000, 100, -1, 12, -1, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[1414] = new int[14] { 288000, 100, 12, 8, 1, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[1521] = new int[14] { 360000, 100, 8, -1, 3, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[1504] = new int[14] { 108000, 100, 15, 5, -1, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[1416] = new int[14] { 1800000, 100, 3, 1, 1, 1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[1132] = new int[14] { 540000, 100, 8, 1, 2, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[1124] = new int[14] { 720000, 100, 12, 8, -1, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[1114] = new int[14] { 288000, 100, -1, 10, -1, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[1605] = new int[14] { 1080000, 100, 6, 4, 1, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[1512] = new int[14] { 216000, 100, 15, 5, 2, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[1133] = new int[14] { 720000, 100, 8, 2, 6, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[1126] = new int[14] { 360000, 100, 8, 2, 3, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[1125] = new int[14] { 360000, 100, 4, 2, 3, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[1142] = new int[14] { 360000, 100, 8, 2, 3, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[1153] = new int[14] { 2160000, 100, 3, 1, 1, 1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[1712] = new int[14] { 360000, 100, 2, 8, 4, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[1606] = new int[14] { 432000, 100, 10, 8, 2, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[1312] = new int[14] { 1440000, 250, 6, 2, 6, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[1141] = new int[14] { 216000, 100, 15, 10, 5, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[1143] = new int[14] { 720000, 100, 8, 1, 2, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[1522] = new int[14] { 360000, 100, 10, 2, 4, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[1303] = new int[14] { 720000, 100, 8, 1, 2, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[1417] = new int[14] { 1080000, 100, 12, 2, 4, -1, 2, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[1704] = new int[14] { 900000, 100, 6, 2, 2, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[1523] = new int[14] { 1800000, 100, 5, 1, 2, 3, 3, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[1505] = new int[14] { 3600000, 100, 6, 1, 1, 2, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[1203] = new int[14] { 1620000, 100, 5, 2, 2, 2, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[1304] = new int[14] { 720000, 100, 15, 2, 8, 6, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[1305] = new int[14] { 720000, 100, 10, 2, 4, 3, 2, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[1705] = new int[14] { 9000000, 50, 6, 1, 4, 6, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[1506] = new int[14] { 1080000, 100, 15, 1, 5, 5, 5, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[1145] = new int[14] { 900000, 100, 18, 2, 6, 4, 8, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[1144] = new int[14] { 1440000, 100, 10, 1, 4, 4, 4, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[1507] = new int[14] { 18000000, 50, 6, 1, 3, 3, 4, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[1508] = new int[14] { 72000000, 50, -1, -1, -1, -1, -1, 1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[4101] = new int[14] { 1800, 10, 20, -1, -1, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[4102] = new int[14] { 36000, 10, 20, -1, -1, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[4103] = new int[14] { 300000, 90, 1, 12, -1, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[4104] = new int[14] { 12000000, 15, 3, -1, -1, 1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[2101] = new int[14] { 900, 20, 80, 80, -1, -1, -1, -1, 1101, 1104, 6003, 6004, 6005, 6006 }; tech_data[2102] = new int[14] { 36000, 50, 1, 10, -1, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[2103] = new int[14] { 108000, 100, 20, 10, -1, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[2104] = new int[14] { 300000, 100, 18, -1, 6, 6, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[2105] = new int[14] { 1440000, 100, 6, -1, -1, -1, 2, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[2201] = new int[14] { 3600, 5, 60, -1, -1, -1, -1, -1, 1203, 6002, 6003, 6004, 6005, 6006 }; tech_data[2202] = new int[14] { 36000, 10, 20, 20, -1, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[2203] = new int[14] { 72000, 10, 20, 20, -1, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[2204] = new int[14] { 180000, 100, 12, -1, 6, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[2205] = new int[14] { 240000, 100, 15, -1, 6, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[2206] = new int[14] { 300000, 100, 15, -1, 6, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[2207] = new int[14] { 360000, 100, 16, -1, -1, 6, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[2208] = new int[14] { 1200000, 450, 2, -1, -1, -1, 1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[2301] = new int[14] { 7200, 10, 20, 30, -1, -1, -1, -1, 1103, 1301, 6003, 6004, 6005, 6006 }; tech_data[2302] = new int[14] { 36000, 100, 2, 20, -1, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[2303] = new int[14] { 72000, 100, 20, -1, 20, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[2304] = new int[14] { 180000, 200, 18, -1, -1, -1, 5, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[2305] = new int[14] { 480000, 200, 12, -1, -1, -1, 3, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[2306] = new int[14] { 600000, 200, 12, -1, -1, -1, 3, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[2401] = new int[14] { 9000, 10, 20, -1, -1, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[2402] = new int[14] { 36000, 100, 2, 10, -1, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[2403] = new int[14] { 72000, 1000, -1, 2, -1, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[2404] = new int[14] { 180000, 100, 18, 12, -1, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[2405] = new int[14] { 300000, 100, 18, -1, 9, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[2406] = new int[14] { 1440000, 100, 6, -1, -1, 3, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[2701] = new int[14] { 1800, 2, 100, -1, -1, -1, -1, -1, 1301, 6002, 6003, 6004, 6005, 6006 }; tech_data[2702] = new int[14] { 24000, 5, 30, -1, -1, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[2703] = new int[14] { 60000, 100, 3, 30, -1, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[2704] = new int[14] { 192000, 100, 18, 3, -1, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[2705] = new int[14] { 240000, 100, 15, -1, 6, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[2501] = new int[14] { 5400, 10, 20, 40, 40, -1, -1, -1, 1030, 1006, 1109, 6004, 6005, 6006 }; tech_data[2502] = new int[14] { 72000, 50, 2, 20, -1, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[2503] = new int[14] { 216000, 20, 20, 12, -1, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[2504] = new int[14] { 600000, 100, 12, -1, 3, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[2505] = new int[14] { 2700000, 100, 4, -1, -1, -1, 1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[2601] = new int[14] { 18000, 5, 12, -1, -1, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[2602] = new int[14] { 72000, 10, 6, 16, -1, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[2603] = new int[14] { 144000, 20, 20, 20, -1, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[2604] = new int[14] { 360000, 100, 8, -1, 8, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[2605] = new int[14] { 1440000, 150, 3, 1, 1, 1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[2901] = new int[14] { 10800, 10, 40, 20, -1, -1, -1, -1, 1006, 1202, 6003, 6004, 6005, 6006 }; tech_data[2902] = new int[14] { 36000, 100, 5, 20, -1, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[2903] = new int[14] { 360000, 25, 20, 10, -1, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[2904] = new int[14] { 720000, 200, 4, -1, 2, 2, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[2905] = new int[14] { 1080000, 100, 8, -1, -1, -1, 3, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[3101] = new int[14] { 144000, 200, 10, -1, -1, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[3102] = new int[14] { 144000, 100, 20, -1, 3, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[3103] = new int[14] { 144000, 100, 20, 2, 4, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[3104] = new int[14] { 300000, 100, 12, -1, 3, 3, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[3105] = new int[14] { 480000, 100, 12, 3, 3, 3, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[3106] = new int[14] { 1200000, 100, 6, -1, -1, -1, 2, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[3201] = new int[14] { 54000, 100, 40, 8, 4, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[3202] = new int[14] { 144000, 100, 20, 4, 3, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[3203] = new int[14] { 180000, 100, -1, -1, 6, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[3204] = new int[14] { 360000, 100, -1, 10, -1, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[3205] = new int[14] { 420000, 100, 18, -1, 3, 3, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[3206] = new int[14] { 480000, 100, 24, -1, 3, 3, 3, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[3207] = new int[14] { 1620000, 100, 8, -1, 1, 1, 1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[3701] = new int[14] { 36000, 100, -1, 30, -1, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[3702] = new int[14] { 108000, 100, -1, 20, -1, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[3703] = new int[14] { 360000, 100, 8, -1, 2, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[3704] = new int[14] { 720000, 100, 6, -1, 2, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[3705] = new int[14] { 900000, 100, 8, -1, 2, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[3706] = new int[14] { 1200000, 100, 6, -1, -1, -1, 1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[3301] = new int[14] { 108000, 100, 4, 4, 1, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[3302] = new int[14] { 300000, 100, 3, -1, 3, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[3303] = new int[14] { 720000, 100, 3, 1, 3, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[3304] = new int[14] { 900000, 100, 3, 1, 3, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[3305] = new int[14] { 1440000, 100, 4, 1, 2, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[4001] = new int[14] { 36000, 100, 20, 20, -1, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[4002] = new int[14] { 300000, 100, 3, 3, -1, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[4003] = new int[14] { 720000, 100, 2, -1, 1, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[4004] = new int[14] { 900000, 100, 3, -1, 1, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[4005] = new int[14] { 1440000, 100, 3, -1, 1, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[3401] = new int[14] { 180000, 100, 10, 5, -1, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[3402] = new int[14] { 300000, 100, 12, 6, -1, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[3403] = new int[14] { 360000, 100, 10, 2, 4, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[3404] = new int[14] { 720000, 100, 10, -1, 3, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[3405] = new int[14] { 900000, 100, 12, -1, 2, 3, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[3406] = new int[14] { 1440000, 50, 16, -1, 3, 4, 4, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[3501] = new int[14] { 108000, 100, 20, 10, -1, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[3502] = new int[14] { 144000, 100, 20, 10, 2, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[3503] = new int[14] { 180000, 100, 20, 10, 5, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[3504] = new int[14] { 300000, 100, 18, 9, 9, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[3505] = new int[14] { 720000, 60, 12, -1, 2, 4, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[3506] = new int[14] { 960000, 120, 6, -1, 1, 2, 2, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[3507] = new int[14] { 3600000, 80, 3, -1, 1, -1, 1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[3508] = new int[14] { 5400000, 60, 3, -1, 1, -1, 1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[3601] = new int[14] { 36000, 100, 20, 60, -1, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[3602] = new int[14] { 180000, 100, 10, 2, 5, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[3603] = new int[14] { 540000, 100, 5, 2, 4, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[3604] = new int[14] { 720000, 80, 8, 2, 3, 3, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[3605] = new int[14] { 1800000, 100, 5, 1, 1, 1, 1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[3901] = new int[14] { 180000, 100, -1, -1, 6, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[3902] = new int[14] { 300000, 100, -1, -1, -1, 6, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[3903] = new int[14] { 900000, 100, -1, -1, -1, 6, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[4201] = new int[14] { 108000, 100, 20, 10, 5, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[4202] = new int[14] { 180000, 100, 40, 10, 4, 2, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[4203] = new int[14] { 300000, 50, 40, 6, 6, 6, 6, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[4204] = new int[14] { 720000, 50, 40, 10, 10, 5, 2, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[4205] = new int[14] { 1440000, 50, 40, 10, 10, 3, 3, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[4206] = new int[14] { 2160000, 50, 40, 10, 10, 4, 4, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[1801] = new int[14] { 1800, 2, 40, 40, -1, -1, -1, -1, 1202, 1104, 6003, 6004, 6005, 6006 }; tech_data[1802] = new int[14] { 1800, 5, 120, 120, 200, -1, -1, -1, 1030, 1006, 1104, 6004, 6005, 6006 }; tech_data[1826] = new int[14] { 3600, 2, 100, -1, -1, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[1805] = new int[14] { 1800, 10, 40, -1, -1, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[1806] = new int[14] { 9000, 10, 20, -1, -1, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; tech_data[1808] = new int[14] { 72000, 100, 20, 20, 5, -1, -1, -1, 6001, 6002, 6003, 6004, 6005, 6006 }; } } }