using Core.Models.Eft.Common.Tables;
using Core.Models.Eft.Match;
using Core.Models.Spt.Bots;
using Core.Models.Spt.Config;
using Equipment = Core.Models.Eft.Common.Tables.Equipment;
namespace Core.Generators;
public class BotInventoryGenerator
{
private BotConfig _botConfig;
public BotInventoryGenerator()
{
}
///
/// Add equipment/weapons/loot to bot
///
/// Session id
/// Base json db file for the bot having its loot generated
/// Role bot has (assault/pmcBot)
/// Is bot being converted into a pmc
/// Level of bot being generated
/// Game version for bot, only really applies for PMCs
/// PmcInventory object with equipment/weapons/loot
public BotBaseInventory generateInventory(string sessionId, BotType botJsonTemplate, string botRole, bool isPmc, int botLevel, string chosenGameVersion)
{
throw new NotImplementedException();
}
///
/// Create a pmcInventory object with all the base/generic items needed
///
/// PmcInventory object
public BotBaseInventory GenerateInventoryBase()
{
throw new NotImplementedException();
}
///
/// Add equipment to a bot
///
/// Session id
/// bot/x.json data from db
/// Chances items will be added to bot
/// Role bot has (assault/pmcBot)
/// Inventory to add equipment to
/// Level of bot
/// Game version for bot, only really applies for PMCs
/// RadiConfig
public void GenerateAndAddEquipmentToBot(string sessionId, BotBaseInventory templateInventory, Chances wornItemChances, string botRole,
BotBaseInventory botInventory, int botLevel, string chosenGameVersion, GetRaidConfigurationRequestData raidConfig)
{
throw new NotImplementedException();
}
///
/// Remove non-armored rigs from parameter data
///
/// Equpiment to filter TacticalVest of
/// Role of bot vests are being filtered for
public void FilterRigsToThoseWithProtection(Equipment templateEquipment, string botRole)
{
throw new NotImplementedException();
}
///
/// Remove armored rigs from parameter data
///
/// Equpiment to filter TacticalVest of
/// Role of bot vests are being filtered for
/// Should the function return all rigs when 0 unarmored are found
public void FilterRigsTothoseWithoutProtection(Equipment templateEquipment, string botRole, bool allowEmptyRequest = false)
{
throw new NotImplementedException();
}
///
/// Add a piece of equipment with mods to inventory from the provided pools
///
/// Values to adjust how item is chosen and added to bot
/// true when item added
public bool GenerateEquipment(GenerateEquipmentProperties settings)
{
throw new NotImplementedException();
}
///
/// Get all possible mods for item and filter down based on equipment blacklist from bot.json config
///
/// Item mod pool is being retrieved and filtered
/// Blacklist to filter mod pool with
/// Filtered pool of mods
public Dictionary> GetFilteredDynamicModsForItem(string itemTpl, Dictionary> equipmentBlacklist)
{
throw new NotImplementedException();
}
///
/// Work out what weapons bot should have equipped and add them to bot inventory
///
/// bot/x.json data from db
/// Chances bot can have equipment equipped
/// Session id
/// Inventory to add weapons to
/// assault/pmcBot/bossTagilla etc
/// Is the bot being generated as a pmc
/// Limits for items the bot can have
/// level of bot having weapon generated
public void GenerateAndAddWeaponsToBot(BotBaseInventory templateInventory, Chances equipmentChances, string sessionId, BotBaseInventory botInventory,
string botRole,
bool isPmc, Generation itemGenerationLimitsMinMax, int botLevel)
{
throw new NotImplementedException();
}
///
/// Calculate if the bot should have weapons in Primary/Secondary/Holster slots
///
/// Chances bot has certain equipment
/// What slots bot should have weapons generated for
public object GetDesiredWeaponsForBot(Chances equipmentChances) // TODO: Type fuckery { slot: EquipmentSlots; shouldSpawn: boolean }[]
{
throw new NotImplementedException();
}
///
/// Add weapon + spare mags/ammo to bots inventory
///
/// Session id
/// Weapon slot being generated
/// bot/x.json data from db
/// Inventory to add weapon+mags/ammo to
/// Chances bot can have equipment equipped
/// assault/pmcBot/bossTagilla etc
/// Is the bot being generated as a pmc
///
///
public void AddWeaponAndMagazineToInventory(string sessionId, object weaponSlot, BotBaseInventory templateInventory, BotBaseInventory botInventory,
Chances equipmentChances, string botRole,
bool isPmc, Generation itemGenerationWeights, int botLevel)
{
throw new NotImplementedException();
}
}