using System.Text.Json.Serialization;
using Core.Models.Eft.Common.Tables;
using Core.Models.Enums;
using Core.Models.Spt.Config;
namespace Core.Models.Spt.Bots;
public record GenerateEquipmentProperties
{
///
/// Root Slot being generated
///
[JsonPropertyName("rootEquipmentSlot")]
public EquipmentSlots RootEquipmentSlot
{
get;
set;
}
///
/// Equipment pool for root slot being generated
///
[JsonPropertyName("rootEquipmentPool")]
public Dictionary? RootEquipmentPool
{
get;
set;
}
[JsonPropertyName("modPool")]
public GlobalMods? ModPool
{
get;
set;
}
///
/// Dictionary of mod items and their chance to spawn for this bot type
///
[JsonPropertyName("spawnChances")]
public Chances? SpawnChances
{
get;
set;
}
///
/// Bot-specific properties
///
[JsonPropertyName("botData")]
public BotData? BotData
{
get;
set;
}
[JsonPropertyName("inventory")]
public BotBaseInventory? Inventory
{
get;
set;
}
[JsonPropertyName("botEquipmentConfig")]
public EquipmentFilters? BotEquipmentConfig
{
get;
set;
}
///
/// Settings from bot.json to adjust how item is generated
///
[JsonPropertyName("randomisationDetails")]
public RandomisationDetails? RandomisationDetails
{
get;
set;
}
///
/// OPTIONAL - Do not generate mods for tpls in this array
///
[JsonPropertyName("generateModsBlacklist")]
public HashSet? GenerateModsBlacklist
{
get;
set;
}
[JsonPropertyName("generatingPlayerLevel")]
public double? GeneratingPlayerLevel
{
get;
set;
}
}