Beispiel #1
0
        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);
        }
Beispiel #3
0
        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 });
        }
Beispiel #4
0
        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);
        }