Add more types
This commit is contained in:
@@ -0,0 +1,76 @@
|
||||
using System.Text.Json.Serialization;
|
||||
using Core.Models.Common;
|
||||
|
||||
namespace Core.Models.Spt.Bots;
|
||||
|
||||
public class BotGenerationDetails
|
||||
{
|
||||
/// <summary>
|
||||
/// Should the bot be generated as a PMC
|
||||
/// </summary>
|
||||
[JsonPropertyName("isPmc")]
|
||||
public bool IsPmc { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// assault/pmcBot etc
|
||||
/// </summary>
|
||||
[JsonPropertyName("role")]
|
||||
public string Role { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Side of bot
|
||||
/// </summary>
|
||||
[JsonPropertyName("side")]
|
||||
public string Side { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Active players current level
|
||||
/// </summary>
|
||||
[JsonPropertyName("playerLevel")]
|
||||
public int? PlayerLevel { get; set; }
|
||||
|
||||
[JsonPropertyName("playerName")]
|
||||
public string? PlayerName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Level specific overrides for PMC level
|
||||
/// </summary>
|
||||
[JsonPropertyName("locationSpecificPmcLevelOverride")]
|
||||
public MinMax? LocationSpecificPmcLevelOverride { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Delta of highest level of bot e.g. 50 means 50 levels above player
|
||||
/// </summary>
|
||||
[JsonPropertyName("botRelativeLevelDeltaMax")]
|
||||
public int BotRelativeLevelDeltaMax { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Delta of lowest level of bot e.g. 50 means 50 levels below player
|
||||
/// </summary>
|
||||
[JsonPropertyName("botRelativeLevelDeltaMin")]
|
||||
public int BotRelativeLevelDeltaMin { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// How many to create and store
|
||||
/// </summary>
|
||||
[JsonPropertyName("botCountToGenerate")]
|
||||
public int BotCountToGenerate { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Desired difficulty of the bot
|
||||
/// </summary>
|
||||
[JsonPropertyName("botDifficulty")]
|
||||
public string BotDifficulty { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Will the generated bot be a player scav
|
||||
/// </summary>
|
||||
[JsonPropertyName("isPlayerScav")]
|
||||
public bool IsPlayerScav { get; set; }
|
||||
|
||||
[JsonPropertyName("eventRole")]
|
||||
public string? EventRole { get; set; }
|
||||
|
||||
[JsonPropertyName("allPmcsHaveSameNameAsPlayer")]
|
||||
public bool? AllPmcsHaveSameNameAsPlayer { get; set; }
|
||||
}
|
||||
@@ -0,0 +1,62 @@
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace Core.Models.Spt.Bots;
|
||||
|
||||
public class BotLootCache
|
||||
{
|
||||
[JsonPropertyName("backpackLoot")]
|
||||
public Dictionary<string, int> BackpackLoot { get; set; }
|
||||
|
||||
[JsonPropertyName("pocketLoot")]
|
||||
public Dictionary<string, int> PocketLoot { get; set; }
|
||||
|
||||
[JsonPropertyName("vestLoot")]
|
||||
public Dictionary<string, int> VestLoot { get; set; }
|
||||
|
||||
[JsonPropertyName("secureLoot")]
|
||||
public Dictionary<string, int> SecureLoot { get; set; }
|
||||
|
||||
[JsonPropertyName("combinedPoolLoot")]
|
||||
public Dictionary<string, int> CombinedPoolLoot { get; set; }
|
||||
|
||||
[JsonPropertyName("specialItems")]
|
||||
public Dictionary<string, int> SpecialItems { get; set; }
|
||||
|
||||
[JsonPropertyName("healingItems")]
|
||||
public Dictionary<string, int> HealingItems { get; set; }
|
||||
|
||||
[JsonPropertyName("drugItems")]
|
||||
public Dictionary<string, int> DrugItems { get; set; }
|
||||
|
||||
[JsonPropertyName("foodItems")]
|
||||
public Dictionary<string, int> FoodItems { get; set; }
|
||||
|
||||
[JsonPropertyName("drinkItems")]
|
||||
public Dictionary<string, int> DrinkItems { get; set; }
|
||||
|
||||
[JsonPropertyName("currencyItems")]
|
||||
public Dictionary<string, int> CurrencyItems { get; set; }
|
||||
|
||||
[JsonPropertyName("stimItems")]
|
||||
public Dictionary<string, int> StimItems { get; set; }
|
||||
|
||||
[JsonPropertyName("grenadeItems")]
|
||||
public Dictionary<string, int> GrenadeItems { get; set; }
|
||||
}
|
||||
|
||||
public static class LootCacheType
|
||||
{
|
||||
public const string Special = "Special";
|
||||
public const string Backpack = "Backpack";
|
||||
public const string Pocket = "Pocket";
|
||||
public const string Vest = "Vest";
|
||||
public const string Secure = "SecuredContainer";
|
||||
public const string Combined = "Combined";
|
||||
public const string HealingItems = "HealingItems";
|
||||
public const string DrugItems = "DrugItems";
|
||||
public const string StimItems = "StimItems";
|
||||
public const string GrenadeItems = "GrenadeItems";
|
||||
public const string FoodItems = "FoodItems";
|
||||
public const string DrinkItems = "DrinkItems";
|
||||
public const string CurrencyItems = "CurrencyItems";
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace Core.Models.Spt.Bots;
|
||||
|
||||
public class ChooseRandomCompatibleModResult
|
||||
{
|
||||
[JsonPropertyName("incompatible")]
|
||||
public bool Incompatible { get; set; }
|
||||
|
||||
[JsonPropertyName("found")]
|
||||
public bool? Found { get; set; }
|
||||
|
||||
[JsonPropertyName("chosenTpl")]
|
||||
public string? ChosenTemplate { get; set; }
|
||||
|
||||
[JsonPropertyName("reason")]
|
||||
public string Reason { get; set; }
|
||||
|
||||
[JsonPropertyName("slotBlocked")]
|
||||
public bool? SlotBlocked { get; set; }
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace Core.Models.Spt.Bots;
|
||||
|
||||
public class FilterPlateModsForSlotByLevelResult
|
||||
{
|
||||
[JsonPropertyName("result")]
|
||||
public Result Result { get; set; }
|
||||
|
||||
[JsonPropertyName("plateModTpls")]
|
||||
public List<string> PlateModTemplates { get; set; }
|
||||
}
|
||||
|
||||
public enum Result
|
||||
{
|
||||
UNKNOWN_FAILURE = -1,
|
||||
SUCCESS = 1,
|
||||
NO_DEFAULT_FILTER = 2,
|
||||
NOT_PLATE_HOLDING_SLOT = 3,
|
||||
LACKS_PLATE_WEIGHTS = 4,
|
||||
}
|
||||
@@ -0,0 +1,56 @@
|
||||
using System.Text.Json.Serialization;
|
||||
using Core.Models.Eft.Common.Tables;
|
||||
using Core.Models.Spt.Config;
|
||||
|
||||
namespace Core.Models.Spt.Bots;
|
||||
|
||||
public class GenerateEquipmentProperties
|
||||
{
|
||||
/// <summary>
|
||||
/// Root Slot being generated
|
||||
/// </summary>
|
||||
[JsonPropertyName("rootEquipmentSlot")]
|
||||
public string RootEquipmentSlot { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Equipment pool for root slot being generated
|
||||
/// </summary>
|
||||
[JsonPropertyName("rootEquipmentPool")]
|
||||
public Dictionary<string, int> RootEquipmentPool { get; set; }
|
||||
|
||||
[JsonPropertyName("modPool")]
|
||||
public Mods ModPool { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Dictionary of mod items and their chance to spawn for this bot type
|
||||
/// </summary>
|
||||
[JsonPropertyName("spawnChances")]
|
||||
public Chances SpawnChances { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Bot-specific properties
|
||||
/// </summary>
|
||||
[JsonPropertyName("botData")]
|
||||
public BotData BotData { get; set; }
|
||||
|
||||
[JsonPropertyName("inventory")]
|
||||
public PmcInventory Inventory { get; set; }
|
||||
|
||||
[JsonPropertyName("botEquipmentConfig")]
|
||||
public EquipmentFilters BotEquipmentConfig { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Settings from bot.json to adjust how item is generated
|
||||
/// </summary>
|
||||
[JsonPropertyName("randomisationDetails")]
|
||||
public RandomisationDetails RandomisationDetails { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// OPTIONAL - Do not generate mods for tpls in this array
|
||||
/// </summary>
|
||||
[JsonPropertyName("generateModsBlacklist")]
|
||||
public List<string> GenerateModsBlacklist { get; set; }
|
||||
|
||||
[JsonPropertyName("generatingPlayerLevel")]
|
||||
public int GeneratingPlayerLevel { get; set; }
|
||||
}
|
||||
@@ -0,0 +1,74 @@
|
||||
using System.Text.Json.Serialization;
|
||||
using Core.Models.Eft.Common.Tables;
|
||||
|
||||
namespace Core.Models.Spt.Bots;
|
||||
|
||||
public class GenerateWeaponRequest
|
||||
{
|
||||
/** Weapon to add mods to / result that is returned */
|
||||
[JsonPropertyName("weapon")]
|
||||
public List<Item> Weapon { get; set; }
|
||||
|
||||
/** Pool of compatible mods to attach to weapon */
|
||||
[JsonPropertyName("modPool")]
|
||||
public Mods ModPool { get; set; }
|
||||
|
||||
/** ParentId of weapon */
|
||||
[JsonPropertyName("weaponId")]
|
||||
public string WeaponId { get; set; }
|
||||
|
||||
/** Weapon which mods will be generated on */
|
||||
[JsonPropertyName("parentTemplate")]
|
||||
public TemplateItem ParentTemplate { get; set; }
|
||||
|
||||
/** Chance values mod will be added */
|
||||
[JsonPropertyName("modSpawnChances")]
|
||||
public ModsChances ModSpawnChances { get; set; }
|
||||
|
||||
/** Ammo tpl to use when generating magazines/cartridges */
|
||||
[JsonPropertyName("ammoTpl")]
|
||||
public string AmmoTpl { get; set; }
|
||||
|
||||
/** Bot-specific properties */
|
||||
[JsonPropertyName("botData")]
|
||||
public BotData BotData { get; set; }
|
||||
|
||||
/** limits placed on certain mod types per gun */
|
||||
[JsonPropertyName("modLimits")]
|
||||
public BotModLimits ModLimits { get; set; }
|
||||
|
||||
/** Info related to the weapon being generated */
|
||||
[JsonPropertyName("weaponStats")]
|
||||
public WeaponStats WeaponStats { get; set; }
|
||||
|
||||
/** Array of item tpls the weapon does not support */
|
||||
[JsonPropertyName("conflictingItemTpls")]
|
||||
public HashSet<string> ConflictingItemTpls { get; set; }
|
||||
}
|
||||
|
||||
public class BotData
|
||||
{
|
||||
/** Role of bot weapon is generated for */
|
||||
[JsonPropertyName("role")]
|
||||
public string Role { get; set; }
|
||||
|
||||
/** Level of the bot weapon is being generated for */
|
||||
[JsonPropertyName("level")]
|
||||
public int Level { get; set; }
|
||||
|
||||
/** role of bot when accessing bot.json equipment config settings */
|
||||
[JsonPropertyName("equipmentRole")]
|
||||
public string EquipmentRole { get; set; }
|
||||
}
|
||||
|
||||
public class WeaponStats
|
||||
{
|
||||
[JsonPropertyName("hasOptic")]
|
||||
public bool? HasOptic { get; set; }
|
||||
|
||||
[JsonPropertyName("hasFrontIronSight")]
|
||||
public bool? HasFrontIronSight { get; set; }
|
||||
|
||||
[JsonPropertyName("hasRearIronSight")]
|
||||
public bool? HasRearIronSight { get; set; }
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
using System.Text.Json.Serialization;
|
||||
using Core.Models.Eft.Common.Tables;
|
||||
|
||||
namespace Core.Models.Spt.Bots;
|
||||
|
||||
public class GenerateWeaponResult
|
||||
{
|
||||
[JsonPropertyName("weapon")]
|
||||
public List<Item> Weapon { get; set; }
|
||||
|
||||
[JsonPropertyName("chosenAmmoTpl")]
|
||||
public string ChosenAmmoTemplate { get; set; }
|
||||
|
||||
[JsonPropertyName("chosenUbglAmmoTpl")]
|
||||
public string ChosenUbglAmmoTemplate { get; set; }
|
||||
|
||||
[JsonPropertyName("weaponMods")]
|
||||
public Mods WeaponMods { get; set; }
|
||||
|
||||
[JsonPropertyName("weaponTemplate")]
|
||||
public TemplateItem WeaponTemplate { get; set; }
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace Core.Models.Spt.Bots;
|
||||
|
||||
public class ItemSpawnLimitSettings
|
||||
{
|
||||
[JsonPropertyName("currentLimits")]
|
||||
public Dictionary<string, int> CurrentLimits { get; set; }
|
||||
|
||||
[JsonPropertyName("globalLimits")]
|
||||
public Dictionary<string, int> GlobalLimits { get; set; }
|
||||
}
|
||||
@@ -0,0 +1,80 @@
|
||||
using System.Text.Json.Serialization;
|
||||
using Core.Models.Eft.Common.Tables;
|
||||
using Core.Models.Spt.Config;
|
||||
|
||||
namespace Core.Models.Spt.Bots;
|
||||
|
||||
public class ModToSpawnRequest
|
||||
{
|
||||
/// <summary>
|
||||
/// Slot mod will fit into
|
||||
/// </summary>
|
||||
[JsonPropertyName("modSlot")]
|
||||
public string ModSlot { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Will generate a randomised mod pool if true
|
||||
/// </summary>
|
||||
[JsonPropertyName("isRandomisableSlot")]
|
||||
public bool IsRandomisableSlot { get; set; }
|
||||
|
||||
[JsonPropertyName("randomisationSettings")]
|
||||
public RandomisationDetails RandomisationSettings { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Parent slot the item will be a part of
|
||||
/// </summary>
|
||||
[JsonPropertyName("botWeaponSightWhitelist")]
|
||||
public Dictionary<string, List<string>> BotWeaponSightWhitelist { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Blacklist to prevent mods from being picked
|
||||
/// </summary>
|
||||
[JsonPropertyName("botEquipBlacklist")]
|
||||
public EquipmentFilterDetails BotEquipBlacklist { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Pool of items to pick from
|
||||
/// </summary>
|
||||
[JsonPropertyName("itemModPool")]
|
||||
public Dictionary<string, List<string>> ItemModPool { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// List with only weapon tpl in it, ready for mods to be added
|
||||
/// </summary>
|
||||
[JsonPropertyName("weapon")]
|
||||
public List<Item> Weapon { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Ammo tpl to use if slot requires a cartridge to be added (e.g. mod_magazine)
|
||||
/// </summary>
|
||||
[JsonPropertyName("ammoTpl")]
|
||||
public string AmmoTpl { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Parent item the mod will go into
|
||||
/// </summary>
|
||||
[JsonPropertyName("parentTemplate")]
|
||||
public TemplateItem ParentTemplate { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Should mod be spawned/skipped/use default
|
||||
/// </summary>
|
||||
[JsonPropertyName("modSpawnResult")]
|
||||
public ModSpawn ModSpawnResult { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Weapon stats for weapon being generated
|
||||
/// </summary>
|
||||
[JsonPropertyName("weaponStats")]
|
||||
public WeaponStats WeaponStats { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// List of item tpls the weapon does not support
|
||||
/// </summary>
|
||||
[JsonPropertyName("conflictingItemTpls")]
|
||||
public HashSet<string> ConflictingItemTpls { get; set; }
|
||||
|
||||
[JsonPropertyName("botData")]
|
||||
public BotData BotData { get; set; }
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
using System.Text.Json.Serialization;
|
||||
using Core.Models.Eft.Common;
|
||||
using Core.Models.Eft.Common.Tables;
|
||||
|
||||
namespace Core.Models.Spt.Services;
|
||||
|
||||
public class InsuranceEquipmentPkg
|
||||
{
|
||||
[JsonPropertyName("sessionID")]
|
||||
public string SessionId { get; set; }
|
||||
|
||||
[JsonPropertyName("pmcData")]
|
||||
public PmcData PmcData { get; set; }
|
||||
|
||||
[JsonPropertyName("itemToReturnToPlayer")]
|
||||
public Item ItemToReturnToPlayer { get; set; }
|
||||
|
||||
[JsonPropertyName("traderId")]
|
||||
public string TraderId { get; set; }
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace Core.Models.Spt.Services;
|
||||
|
||||
public class LootItem
|
||||
{
|
||||
[JsonPropertyName("id")]
|
||||
public string? Id { get; set; }
|
||||
|
||||
[JsonPropertyName("tpl")]
|
||||
public string Tpl { get; set; }
|
||||
|
||||
[JsonPropertyName("isPreset")]
|
||||
public bool IsPreset { get; set; }
|
||||
|
||||
[JsonPropertyName("stackCount")]
|
||||
public int StackCount { get; set; }
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace Core.Models.Spt.Weather;
|
||||
|
||||
public class GetLocalWeatherResponseData
|
||||
{
|
||||
[JsonPropertyName("season")]
|
||||
public int Season { get; set; }
|
||||
|
||||
[JsonPropertyName("weather")]
|
||||
public List<Weather> Weather { get; set; }
|
||||
}
|
||||
Reference in New Issue
Block a user