Files
SPT-Server-Build/Core/Models/Spt/Bots/GenerateWeaponRequest.cs
T
2025-01-08 14:01:23 +00:00

101 lines
2.9 KiB
C#

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 GlobalMods? 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 Dictionary<string, double>? 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; }
}
public class BotModLimits
{
[JsonPropertyName("scope")]
public ItemCount? Scope { get; set; }
[JsonPropertyName("scopeMax")]
public int? ScopeMax { get; set; }
[JsonPropertyName("scopeBaseTypes")]
public List<string>? ScopeBaseTypes { get; set; }
[JsonPropertyName("flashlightLaser")]
public ItemCount? FlashlightLaser { get; set; }
[JsonPropertyName("flashlightLaserMax")]
public int? FlashlightLaserMax { get; set; }
[JsonPropertyName("flashlightLaserBaseTypes")]
public List<string>? FlashlightLaserBaseTypes { get; set; }
}
public class ItemCount
{
[JsonPropertyName("count")]
public int? Count { get; set; }
}