using System.Text.Json.Serialization; using SPTarkov.Server.Core.Models.Common; namespace SPTarkov.Server.Core.Models.Spt.Config; public record ScavCaseConfig : BaseConfig { [JsonPropertyName("kind")] public override string Kind { get; set; } = "spt-scavcase"; [JsonPropertyName("rewardItemValueRangeRub")] public required Dictionary> RewardItemValueRangeRub { get; set; } [JsonPropertyName("moneyRewards")] public required MoneyRewards MoneyRewards { get; set; } [JsonPropertyName("ammoRewards")] public required AmmoRewards AmmoRewards { get; set; } [JsonPropertyName("rewardItemParentBlacklist")] public required HashSet RewardItemParentBlacklist { get; set; } [JsonPropertyName("rewardItemBlacklist")] public required HashSet RewardItemBlacklist { get; set; } [JsonPropertyName("allowMultipleMoneyRewardsPerRarity")] public bool AllowMultipleMoneyRewardsPerRarity { get; set; } [JsonPropertyName("allowMultipleAmmoRewardsPerRarity")] public bool AllowMultipleAmmoRewardsPerRarity { get; set; } [JsonPropertyName("allowBossItemsAsRewards")] public bool AllowBossItemsAsRewards { get; set; } } public record MoneyRewards { [JsonExtensionData] public Dictionary? ExtensionData { get; set; } [JsonPropertyName("moneyRewardChancePercent")] public int MoneyRewardChancePercent { get; set; } [JsonPropertyName("rubCount")] public required MoneyLevels RubCount { get; set; } [JsonPropertyName("usdCount")] public required MoneyLevels UsdCount { get; set; } [JsonPropertyName("eurCount")] public required MoneyLevels EurCount { get; set; } [JsonPropertyName("gpCount")] public required MoneyLevels GpCount { get; set; } } public record MoneyLevels { [JsonExtensionData] public Dictionary? ExtensionData { get; set; } [JsonPropertyName("common")] public required MinMax Common { get; set; } [JsonPropertyName("rare")] public required MinMax Rare { get; set; } [JsonPropertyName("superrare")] public required MinMax SuperRare { get; set; } } public record AmmoRewards { [JsonExtensionData] public Dictionary? ExtensionData { get; set; } [JsonPropertyName("ammoRewardChancePercent")] public int AmmoRewardChancePercent { get; set; } [JsonPropertyName("ammoRewardBlacklist")] public required Dictionary> AmmoRewardBlacklist { get; set; } [JsonPropertyName("ammoRewardValueRangeRub")] public required Dictionary> AmmoRewardValueRangeRub { get; set; } [JsonPropertyName("minStackSize")] public int MinStackSize { get; set; } }