public static List <string> CabCheck(string cc) { var cabCheck = new List <string>(cc.Split(',')); var newArray = cabCheck.ToArray(); newArray = newArray[1].Split(' '); for (int i = 0; i < newArray.Length; i++) { newArray[i] = Reuse.RemoveSpecialCharacters(newArray[i].ToLower()); } return(newArray.ToList()); }
public static Dictionary <string, (string, ComponentDefType)> ComDefDicPop(string[] file) { var cDDic = new Dictionary <string, ComponentDefType>(); var CDDicT = new Dictionary <string, (string, ComponentDefType)>(); foreach (string files in file) { string[] filelines = System.IO.File.ReadAllLines(files); string filename = Path.GetFileName(files); string jsonString = File.ReadAllText(files); int indexcompontentType = Array.FindIndex(filelines, x => x.Contains("\"ComponentType\"")); //int indexType = Array.IndexOf(filelines, "\"ComponentType\""); //Console.WriteLine(files); if (indexcompontentType > -1) { //var componentDefType = new ComponentDefType(); string cdt = filelines[indexcompontentType]; cdt = Reuse.RemoveSpecialCharacters(cdt); cdt = cdt.Trim(); cdt = cdt.Replace(" ", " "); string[] split = cdt.Split(' '); split[1] = split[1].Replace(",", ""); //var componentKeyAmmo = new AmmunitionBox(); //var ammoDescrption = new Description(); try { switch (split[1]) { case "AmmunitionBox": { var componentKeyAmmo = BattleEngineJsonCreation.AmmunitionBox.FromJson(jsonString); //ammoDescrption = componentKeyAmmo.Description; if (componentKeyAmmo.Description == null) { break; } if (componentKeyAmmo.Description.Model == null) { break; } if (componentKeyAmmo.Description.UiName.Contains("__")) { break; } if (!cDDic.ContainsKey(componentKeyAmmo.Description.Id)) { cDDic.Add(componentKeyAmmo.Description.Id, BattleEngineJsonCreation.ComponentDefType.AmmunitionBox); } string[] splitAmmo = componentKeyAmmo.Description.UiName.Split(' '); if (splitAmmo.Length == 2) { if (splitAmmo[0].Contains("MG")) { CDDicT.Add(splitAmmo[1] + " " + "Machine Gun", (componentKeyAmmo.Description.Id, BattleEngineJsonCreation.ComponentDefType.AmmunitionBox)); break; } if (splitAmmo[0].Contains("Gauss")) { CDDicT.Add(splitAmmo[1] + " " + splitAmmo[0] + " Rifle", (componentKeyAmmo.Description.Id, BattleEngineJsonCreation.ComponentDefType.AmmunitionBox)); break; } if (splitAmmo[0].Contains("SRM")) { CDDicT.Add(splitAmmo[1] + " " + splitAmmo[0] + " 2", (componentKeyAmmo.Description.Id, BattleEngineJsonCreation.ComponentDefType.AmmunitionBox)); CDDicT.Add(splitAmmo[1] + " " + splitAmmo[0] + " 4", (componentKeyAmmo.Description.Id, BattleEngineJsonCreation.ComponentDefType.AmmunitionBox)); CDDicT.Add(splitAmmo[1] + " " + splitAmmo[0] + " 6", (componentKeyAmmo.Description.Id, BattleEngineJsonCreation.ComponentDefType.AmmunitionBox)); break; } if (splitAmmo[0].Contains("LRM")) { CDDicT.Add(splitAmmo[1] + " " + splitAmmo[0] + " 5", (componentKeyAmmo.Description.Id, ComponentDefType.AmmunitionBox)); CDDicT.Add(splitAmmo[1] + " " + splitAmmo[0] + " 10", (componentKeyAmmo.Description.Id, ComponentDefType.AmmunitionBox)); CDDicT.Add(splitAmmo[1] + " " + splitAmmo[0] + " 15", (componentKeyAmmo.Description.Id, ComponentDefType.AmmunitionBox)); CDDicT.Add(splitAmmo[1] + " " + splitAmmo[0] + " 20", (componentKeyAmmo.Description.Id, ComponentDefType.AmmunitionBox)); break; } if (splitAmmo[1].Contains("Ammo")) { CDDicT.Add(splitAmmo[1] + " " + splitAmmo[0], (componentKeyAmmo.Description.Id, ComponentDefType.AmmunitionBox)); break; } if (splitAmmo[0].Contains("Ammo")) { CDDicT.Add(splitAmmo[0] + " " + splitAmmo[1], (componentKeyAmmo.Description.Id, ComponentDefType.AmmunitionBox)); break; } CDDicT.Add("Ammo" + " " + splitAmmo[0], (componentKeyAmmo.Description.Id, ComponentDefType.AmmunitionBox)); break; } if (splitAmmo.Length == 3) { if (splitAmmo[0].Contains("LB")) { CDDicT.Add(splitAmmo[2] + " " + splitAmmo[0] + " " + splitAmmo[1] + " AC", (componentKeyAmmo.Description.Id, ComponentDefType.AmmunitionBox)); break; } if (splitAmmo[0].Contains("MG")) { CDDicT.Add(splitAmmo[1] + " " + "Machine Gun: " + splitAmmo[2], (componentKeyAmmo.Description.Id, ComponentDefType.AmmunitionBox)); break; } if (splitAmmo[0].Contains("Half")) { CDDicT.Add(splitAmmo[1] + " " + "Machine Gun: " + splitAmmo[2], (componentKeyAmmo.Description.Id, ComponentDefType.AmmunitionBox)); break; } } break; } case "HeatSink": { var componentKeyHeatSink = HeatSink.FromJson(jsonString); if (componentKeyHeatSink.Description == null) { break; } if (componentKeyHeatSink.Description.UiName == null) { break; } if (componentKeyHeatSink.Description.UiName.Contains("__")) { break; } if (!cDDic.ContainsKey(componentKeyHeatSink.Description.Id)) { cDDic.Add(componentKeyHeatSink.Description.Id, ComponentDefType.HeatSink); } string[] splitHeatSink = componentKeyHeatSink.Description.UiName.Split(' '); if (splitHeatSink.Length == 2) { CDDicT.Add(splitHeatSink[0] + " " + splitHeatSink[1], (componentKeyHeatSink.Description.Id, ComponentDefType.HeatSink)); break; } if (splitHeatSink.Length == 3) { if (splitHeatSink[2].Contains("CD")) { CDDicT.Add("Clan Double Heat Sink", (componentKeyHeatSink.Description.Id, ComponentDefType.HeatSink)); break; } if (splitHeatSink[2].Contains("D")) { CDDicT.Add("Double Heat Sink", (componentKeyHeatSink.Description.Id, ComponentDefType.HeatSink)); break; } break; } break; } case "JumpJet": { var componentKeyJumpjet = Jumpjet.FromJson(jsonString); if (componentKeyJumpjet.Description == null) { break; } if (componentKeyJumpjet.Description.UiName == null) { break; } if (componentKeyJumpjet.Description.UiName.Contains("__")) { break; } if (!cDDic.ContainsKey(componentKeyJumpjet.Description.Id)) { cDDic.Add(componentKeyJumpjet.Description.Id, ComponentDefType.JumpJet); } break; } case "Upgrade": { var componentKeyUpgrade = Upgrade.FromJson(jsonString); if (componentKeyUpgrade.Description == null) { break; } if (componentKeyUpgrade.Description.UiName == null) { break; } if (componentKeyUpgrade.Description.UiName.Contains("__")) { break; } if (!cDDic.ContainsKey(componentKeyUpgrade.Description.Id)) { cDDic.Add(componentKeyUpgrade.Description.Id, ComponentDefType.Upgrade); CDDicT.Add(componentKeyUpgrade.Description.UiName, (componentKeyUpgrade.Description.Id, ComponentDefType.Upgrade)); break; } break; } case "Weapon": { var componentKeyWeapon = Weapon.FromJson(jsonString); if (componentKeyWeapon.Description == null) { break; } if (componentKeyWeapon.Description.Model == null) { break; } if (componentKeyWeapon.Description.UiName.Contains("__")) { break; } if (!cDDic.ContainsKey(componentKeyWeapon.Description.Id)) { cDDic.Add(componentKeyWeapon.Description.Id, ComponentDefType.Weapon); if (componentKeyWeapon.Description.UiName.Contains("__")) { break; } if (componentKeyWeapon.Description.UiName.Contains("UAC")) { componentKeyWeapon.Description.UiName = componentKeyWeapon.Description.UiName.Replace("UAC", "Ultra AC"); } if (componentKeyWeapon.Description.UiName.Contains("LB")) { componentKeyWeapon.Description.UiName = componentKeyWeapon.Description.UiName + " AC"; } if (componentKeyWeapon.Description.UiName.Contains("LRM")) { string LRM = componentKeyWeapon.Description.UiName.Replace("LRM", "LRM "); CDDicT.Add(LRM, (componentKeyWeapon.Description.Id, ComponentDefType.Weapon)); break; } if (componentKeyWeapon.Description.UiName.Contains("SRM")) { string LRM = componentKeyWeapon.Description.UiName.Replace("SRM", "SRM "); CDDicT.Add(LRM, (componentKeyWeapon.Description.Id, ComponentDefType.Weapon)); break; } if (componentKeyWeapon.Description.UiName.Contains("Laser") || (componentKeyWeapon.Description.UiName.Contains("Pulse"))) { string[] splitWeapon = componentKeyWeapon.Description.UiName.Split(' '); if (splitWeapon[1] == "L") { componentKeyWeapon.Description.UiName = componentKeyWeapon.Description.UiName.Replace(" L ", " Large "); componentKeyWeapon.Description.UiName = componentKeyWeapon.Description.UiName.Replace(" M ", " Medium "); componentKeyWeapon.Description.UiName = componentKeyWeapon.Description.UiName.Replace(" S ", " Small "); } else { componentKeyWeapon.Description.UiName = componentKeyWeapon.Description.UiName.Replace("L ", "Large "); componentKeyWeapon.Description.UiName = componentKeyWeapon.Description.UiName.Replace("M ", "Medium "); componentKeyWeapon.Description.UiName = componentKeyWeapon.Description.UiName.Replace("S ", "Small "); } if (componentKeyWeapon.Description.UiName.Contains("Pulse")) { componentKeyWeapon.Description.UiName = componentKeyWeapon.Description.UiName.Replace("Pulse", "Pulse Laser"); } } if (componentKeyWeapon.Description.UiName.Contains("Snub")) { componentKeyWeapon.Description.UiName = componentKeyWeapon.Description.UiName.Replace("Snub", "Snub-Nose"); } CDDicT.Add(componentKeyWeapon.Description.UiName, (componentKeyWeapon.Description.Id, ComponentDefType.Weapon)); break; } break; } } } catch (Exception e) { } } } //String csv = String.Join(Environment.NewLine, cDDic.Select(d => $"{d.Key},{d.Value}")); return(CDDicT); }
public static string[] ChassisName(string filename) { string chassisName; string chassisVariantName; string chassisShortName; string[] filelines = System.IO.File.ReadAllLines(filename); string[] words = Reuse.RemoveSpecialCharacters(filelines[0]).Split(','); string[] split = words[1].Split(' '); switch (split.Length) { case 5: if (split[3] == "II") { chassisName = split[0] + " " + split[1] + " " + split[2] + " " + split[3]; chassisVariantName = split[4]; chassisShortName = split[0]; break; } chassisName = split[0] + " " + split[1]; chassisVariantName = split[4]; chassisShortName = split[0]; break; case 4: if (split[3] == "Hunter") { chassisName = split[0] + " " + split[1]; chassisVariantName = split[2] + " " + split[3]; chassisShortName = split[0]; break; } chassisName = split[0] + " " + split[1] + " " + split[2]; chassisVariantName = split[3]; chassisShortName = split[0]; break; case 3: { if (split[1] == "Huntsman") { chassisName = split[1] + " " + split[0]; chassisVariantName = split[2]; chassisShortName = split[1]; break; } if (split[2] == "Hunter") { chassisName = split[0]; chassisVariantName = split[1] + " " + split[2]; chassisShortName = split[0]; break; } if (split[0] == "Puma") { chassisName = split[1]; chassisVariantName = split[2]; chassisShortName = split[1]; break; } if (split[1] == "Viper") { chassisName = split[0] + " " + split[1]; chassisVariantName = split[2]; chassisShortName = split[1]; break; } if (split[1] == "Executioner") { chassisName = split[1]; chassisVariantName = split[2]; chassisShortName = split[1]; break; } if ((split[2] == "Standard") || (split[2].Length == 1)) { chassisName = split[0] + " " + split[1]; chassisVariantName = split[2]; chassisShortName = split[0]; break; } //Default 3s chassisName = split[1] + " " + split[2]; chassisVariantName = split[0]; chassisShortName = split[1]; break; } default: //Default 2s if (split[1] == "Standard") { chassisName = split[0] + " " + split[1]; chassisVariantName = split[1]; chassisShortName = split[0]; break; } if (split[1].Length == 1) { chassisName = split[0]; chassisVariantName = split[1]; chassisShortName = split[0]; break; } chassisName = split[1]; chassisVariantName = split[0]; chassisShortName = split[1]; break; } if (chassisShortName.Contains("Vulcan")) { string something = "broken"; } return(new string[] { chassisName, chassisVariantName, chassisShortName }); }
public static MechDef MechDefs(ChassisDef chassisDef, string bedfile) { var mechdef = new MechDef { ChassisId = chassisDef.Description.Id, HeraldryId = null, Description = new DefDescription { Cost = chassisDef.Description.Cost, Rarity = chassisDef.Description.Rarity, Purchasable = chassisDef.Description.Purchasable, UiName = chassisDef.Description.UiName + " " + chassisDef.VariantName, Id = chassisDef.Description.Id.Replace("chassisdef", "mechdef"), Name = chassisDef.Description.Name, Details = chassisDef.Description.Details, Icon = chassisDef.Description.Icon }, SimGameMechPartCost = chassisDef.Description.Cost, Version = 1, Locations = new List <MechDefLocation>(), Inventory = new List <Inventory>(), }; string[] filelines = File.ReadAllLines(bedfile); string armorline = ""; string armortypeline = ""; string sturcturetypeline = ""; int internalStructre = -1; foreach (string lines in filelines) { string newl = Reuse.RemoveSpecialCharacters(lines); newl = newl.Replace("\"", ""); if (newl.Contains("ArmorVals")) { armorline = newl; break; } if (newl.Contains("Armor")) { armortypeline = newl; } if (newl.Contains("Internal")) { sturcturetypeline = newl; } } if (!armorline.Contains("ArmorVals")) { Reuse.EndProgram("FATAL ERROR: Unable to parse ArmorVals from Bedfile"); } string[] armorvaulewords = armorline.Split(','); foreach (Location location in Enum.GetValues(typeof(Location))) { //ArmorVaule to Location If Array int frontarmorvaule = -1; int reararmorvaule = -1; if ((int)location == 0) { frontarmorvaule = 45; } else { frontarmorvaule = Convert.ToInt32(armorvaulewords[(int)location]) * 5; } if (((int)location == 3) || ((int)location == 4)) { reararmorvaule = Convert.ToInt32(armorvaulewords[6]) * 5; } if ((int)location == 5) { reararmorvaule = Convert.ToInt32(armorvaulewords[8]) * 5; } if (((int)location == 6) || ((int)location == 7)) { frontarmorvaule = Convert.ToInt32(armorvaulewords[10]) * 5; } foreach (Location chassislocation in Enum.GetValues(typeof(Location))) { if (chassisDef.Locations[(int)chassislocation].Location == location) { internalStructre = chassisDef.Locations[(int)chassislocation].InternalStructure; } } mechdef.Locations.Add(new MechDefLocation { DamageLevel = DamageLevel.Functional, Location = location, CurrentArmor = frontarmorvaule, CurrentRearArmor = reararmorvaule, CurrentInternalStructure = internalStructre, AssignedArmor = frontarmorvaule, AssignedRearArmor = reararmorvaule, }); } string armortype = ""; if (armortypeline.Contains("Standard")) { armortype = "emod_armorslots_standard"; } if (armortypeline.Contains("Ferro")) { armortype = "emod_armorslots_ferrosfibrous"; } mechdef.Inventory.Add(new Inventory { MountedLocation = Location.CenterTorso, ComponentDefId = armortype, ComponentDefType = ComponentDefType.Upgrade, HardpointSlot = -1, DamageLevel = "Functional", PrefabName = null, HasPrefabName = false, SimGameUid = "", Guid = null }); string sturcturetype = ""; if (sturcturetypeline.Contains("Standard")) { sturcturetype = "emod_structureslots_standard"; } if (sturcturetypeline.Contains("Endo")) { sturcturetype = "emod_structureslots_endosteel"; } mechdef.Inventory.Add(new Inventory { MountedLocation = Location.CenterTorso, ComponentDefId = sturcturetype, ComponentDefType = ComponentDefType.Upgrade, HardpointSlot = -1, DamageLevel = "Functional", PrefabName = null, HasPrefabName = false, SimGameUid = "", Guid = null }); return(mechdef); }