public ItemCostCapitalResourceXml(
     [JsonConverter(typeof(StringEnumConverter))]
     [JsonProperty(PropertyName = "type", Required = Required.Always)] CapitalResourceTypeEnum type,
     [JsonProperty(PropertyName = "quantity", Required = Required.Always)] double quantity)
 {
     Type     = type;
     Quantity = quantity;
 }
        public static string ToLocalizedString(this CapitalResourceTypeEnum type, ILanguages languages,
                                               string language = "English")
        {
            switch (type)
            {
            case CapitalResourceTypeEnum.cCapResCoin:
                return
                    ($"{languages["stringtablex"][language][55395].Text}");

            case CapitalResourceTypeEnum.cCapResWorkers:
                return
                    ($"{languages["stringtablex"][language][55396].Text}");

            case CapitalResourceTypeEnum.cCapResFactionPoints1:
                return
                    ($"{languages["stringtablex"][language][55397].Text}");

            case CapitalResourceTypeEnum.cCapResFactionPoints2:
                return
                    ($"{languages["stringtablex"][language][55398].Text}");

            case CapitalResourceTypeEnum.cCapResFactionPoints3:
                return
                    ($"{languages["stringtablex"][language][55399].Text}");

            case CapitalResourceTypeEnum.cCapResFactionPoints4:
                return
                    ($"{languages["stringtablex"][language][55400].Text}");

            case CapitalResourceTypeEnum.cCapResFactionPoints5:
                return
                    ($"{languages["stringtablex"][language][55401].Text}");

            case CapitalResourceTypeEnum.cCapResFactionPoints6:
                return
                    ($"{languages["stringtablex"][language][55402].Text}");

            case CapitalResourceTypeEnum.None:
                throw new InvalidOperationException("Invalid CapitalResource");

            default:
                throw new ArgumentOutOfRangeException(nameof(type), type, null);
            }
        }
 public void SetSellCostOverride(CapitalResourceTypeEnum type, double amount)
 {
     SellCostOverride = new ItemCostXml(type, amount);
 }
 public ItemCostXml(CapitalResourceTypeEnum capitalResource, double quantity)
 {
     CapitalResource = new ItemCostCapitalResourceXml(capitalResource, quantity);
     GameCurrency    = null;
 }