using System.Text.Json.Serialization;
namespace SPTarkov.Server.Core.Models.Spt.Config;
public record InRaidConfig : BaseConfig
{
[JsonPropertyName("kind")]
public string Kind
{
get;
set;
} = "spt-inraid";
///
/// Overrides to apply to the pre-raid settings screen
///
[JsonPropertyName("raidMenuSettings")]
public RaidMenuSettings RaidMenuSettings
{
get;
set;
}
///
/// What effects should be saved post-raid
///
[JsonPropertyName("save")]
public RaidSave Save
{
get;
set;
}
///
/// Names of car extracts
///
[JsonPropertyName("carExtracts")]
public List CarExtracts
{
get;
set;
}
///
/// Names of coop extracts
///
[JsonPropertyName("coopExtracts")]
public List 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;
}
///
/// The likelihood of PMC eliminating a minimum of 2 scavs while you engage them as a pscav.
///
[JsonPropertyName("pmcKillProbabilityForScavGain")]
public double PmcKillProbabilityForScavGain
{
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
{
[JsonPropertyName("aiAmount")]
public string AiAmount
{
get;
set;
}
[JsonPropertyName("aiDifficulty")]
public 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;
}
}
public record RaidSave
{
///
/// Should loot gained from raid be saved
///
[JsonPropertyName("loot")]
public bool Loot
{
get;
set;
}
}