using System.Text.Json.Serialization; using Core.Models.Eft.Common.Tables; using Core.Models.Spt.Config; namespace Core.Models.Spt.Bots; public class ModToSpawnRequest { /// /// Slot mod will fit into /// [JsonPropertyName("modSlot")] public string ModSlot { get; set; } /// /// Will generate a randomised mod pool if true /// [JsonPropertyName("isRandomisableSlot")] public bool IsRandomisableSlot { get; set; } [JsonPropertyName("randomisationSettings")] public RandomisationDetails RandomisationSettings { get; set; } /// /// Parent slot the item will be a part of /// [JsonPropertyName("botWeaponSightWhitelist")] public Dictionary> BotWeaponSightWhitelist { get; set; } /// /// Blacklist to prevent mods from being picked /// [JsonPropertyName("botEquipBlacklist")] public EquipmentFilterDetails BotEquipBlacklist { get; set; } /// /// Pool of items to pick from /// [JsonPropertyName("itemModPool")] public Dictionary> ItemModPool { get; set; } /// /// List with only weapon tpl in it, ready for mods to be added /// [JsonPropertyName("weapon")] public List Weapon { get; set; } /// /// Ammo tpl to use if slot requires a cartridge to be added (e.g. mod_magazine) /// [JsonPropertyName("ammoTpl")] public string AmmoTpl { get; set; } /// /// Parent item the mod will go into /// [JsonPropertyName("parentTemplate")] public TemplateItem ParentTemplate { get; set; } /// /// Should mod be spawned/skipped/use default /// [JsonPropertyName("modSpawnResult")] public ModSpawn ModSpawnResult { get; set; } /// /// Weapon stats for weapon being generated /// [JsonPropertyName("weaponStats")] public WeaponStats WeaponStats { get; set; } /// /// List of item tpls the weapon does not support /// [JsonPropertyName("conflictingItemTpls")] public HashSet ConflictingItemTpls { get; set; } [JsonPropertyName("botData")] public BotData BotData { get; set; } }