public StarSystem(DraftStarSystem source)
        {
            Name   = source.Name;
            Level  = int.Parse(source?.Level);
            System = source.System;

            Resources = new List <ResourceType>();
            ProcessElements(source);
            ProcessHostiles(source);
        }
        protected void ProcessElements(DraftStarSystem source)
        {
            ResourceProperties.ForEach((prop) =>
            {
                var propValue    = prop.GetValue(source);
                var elementType  = ElementType.Crystal;
                var elementGrade = ElementGrade.None;
                if ((propValue?.ToString() ?? "") == "X")
                {
                    switch (prop.Name.Substring(prop.Name.Length - 1))
                    {
                    case "2":
                        elementType  = Enum.Parse <ElementType>(prop.Name.Substring(0, prop.Name.Length - 1));
                        elementGrade = ElementGrade.Two;
                        break;

                    case "3":
                        elementType  = Enum.Parse <ElementType>(prop.Name.Substring(0, prop.Name.Length - 1));
                        elementGrade = ElementGrade.Three;
                        break;

                    case "4":
                        elementType  = Enum.Parse <ElementType>(prop.Name.Substring(0, prop.Name.Length - 1));
                        elementGrade = ElementGrade.Four;
                        break;

                    default:
                        elementType  = Enum.Parse <ElementType>(prop.Name);
                        elementGrade = ElementGrade.None;
                        break;
                    }

                    Resources.Add(new ResourceType()
                    {
                        Type  = elementType,
                        Grade = elementGrade
                    });
                }
            });
        }
        protected void ProcessHostiles(DraftStarSystem source)
        {
            if ((source?.Battleship ?? "") == "X")
            {
                HostileTypes |= ShipType.Battleship;
            }

            if ((source?.Explorer ?? "") == "X")
            {
                HostileTypes |= ShipType.Explorer;
            }

            if ((source?.Interceptor ?? "") == "X")
            {
                HostileTypes |= ShipType.Interceptor;
            }

            if ((source?.Survey ?? "") == "X")
            {
                HostileTypes |= ShipType.Survey;
            }
        }