Files
SPT-Server-Build/Libraries/SPTarkov.Server.Core/Models/Spt/Config/ScavCaseConfig.cs
T
2025-08-21 09:46:00 +00:00

80 lines
2.4 KiB
C#

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<string, MinMax<double>> RewardItemValueRangeRub { get; set; }
[JsonPropertyName("moneyRewards")]
public required MoneyRewards MoneyRewards { get; set; }
[JsonPropertyName("ammoRewards")]
public required AmmoRewards AmmoRewards { get; set; }
[JsonPropertyName("rewardItemParentBlacklist")]
public required HashSet<MongoId> RewardItemParentBlacklist { get; set; }
[JsonPropertyName("rewardItemBlacklist")]
public required HashSet<MongoId> 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
{
[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
{
[JsonPropertyName("common")]
public required MinMax<int> Common { get; set; }
[JsonPropertyName("rare")]
public required MinMax<int> Rare { get; set; }
[JsonPropertyName("superrare")]
public required MinMax<int> SuperRare { get; set; }
}
public record AmmoRewards
{
[JsonPropertyName("ammoRewardChancePercent")]
public int AmmoRewardChancePercent { get; set; }
[JsonPropertyName("ammoRewardBlacklist")]
public required Dictionary<string, List<MongoId>> AmmoRewardBlacklist { get; set; }
[JsonPropertyName("ammoRewardValueRangeRub")]
public required Dictionary<string, MinMax<double>> AmmoRewardValueRangeRub { get; set; }
[JsonPropertyName("minStackSize")]
public int MinStackSize { get; set; }
}