using System.Text.Json.Serialization;
namespace SPTarkov.Server.Core.Models.Spt.Config;
public record InRaidConfig : BaseConfig
{
[JsonPropertyName("kind")]
public override string Kind { get; set; } = "spt-inraid";
///
/// Overrides to apply to the pre-raid settings screen
///
[JsonPropertyName("raidMenuSettings")]
public required RaidMenuSettings RaidMenuSettings { get; set; }
///
/// Names of car extracts
///
[JsonPropertyName("carExtracts")]
public required HashSet CarExtracts { get; set; }
///
/// Names of coop extracts
///
[JsonPropertyName("coopExtracts")]
public required HashSet CoopExtracts { get; set; }
///
/// Fence rep gain from a single car extract
///
[JsonPropertyName("carExtractBaseStandingGain")]
public double CarExtractBaseStandingGain { get; set; }
///
/// Fence rep gain from a single coop extract
///
[JsonPropertyName("coopExtractBaseStandingGain")]
public double CoopExtractBaseStandingGain { get; set; }
///
/// Fence rep gain when successfully extracting as pscav
///
[JsonPropertyName("scavExtractStandingGain")]
public double ScavExtractStandingGain { get; set; }
///
/// On death should items in your secure keep their Find in raid status regardless of how you finished the raid
///
[JsonPropertyName("keepFiRSecureContainerOnDeath")]
public bool KeepFiRSecureContainerOnDeath { get; set; }
///
/// If enabled always keep found in raid status on items
///
[JsonPropertyName("alwaysKeepFoundInRaidOnRaidEnd")]
public bool AlwaysKeepFoundInRaidOnRaidEnd { get; set; }
///
/// Percentage chance a player scav hot is hostile to the player when scavving
///
[JsonPropertyName("playerScavHostileChancePercent")]
public double PlayerScavHostileChancePercent { get; set; }
}
public record RaidMenuSettings
{
[JsonExtensionData]
public Dictionary? ExtensionData { get; set; }
[JsonPropertyName("aiAmount")]
public required string AiAmount { get; set; }
[JsonPropertyName("aiDifficulty")]
public required string AiDifficulty { get; set; }
[JsonPropertyName("bossEnabled")]
public bool BossEnabled { get; set; }
[JsonPropertyName("scavWars")]
public bool ScavWars { get; set; }
[JsonPropertyName("taggedAndCursed")]
public bool TaggedAndCursed { get; set; }
[JsonPropertyName("enablePve")]
public bool EnablePve { get; set; }
[JsonPropertyName("randomWeather")]
public bool RandomWeather { get; set; }
[JsonPropertyName("randomTime")]
public bool RandomTime { get; set; }
}