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(); } }