From 1b7a29a6889943288d20d64ed00cf3ee8858cd26 Mon Sep 17 00:00:00 2001 From: Chomp Date: Fri, 17 Jan 2025 10:25:41 +0000 Subject: [PATCH] Added helper functions to `BotEquipmentModGenerator` --- Core/Generators/BotEquipmentModGenerator.cs | 40 ++++++++++++++++----- 1 file changed, 32 insertions(+), 8 deletions(-) diff --git a/Core/Generators/BotEquipmentModGenerator.cs b/Core/Generators/BotEquipmentModGenerator.cs index 03cea0e6..14af5f39 100644 --- a/Core/Generators/BotEquipmentModGenerator.cs +++ b/Core/Generators/BotEquipmentModGenerator.cs @@ -11,7 +11,6 @@ using Core.Servers; using Core.Services; using Core.Utils; using Core.Utils.Cloners; -using System.Collections.Generic; namespace Core.Generators; @@ -273,13 +272,38 @@ public class BotEquipmentModGenerator throw new NotImplementedException(); } - /// - /// Add mods to a weapon using the provided mod pool - /// - /// Session id - /// Data used to generate the weapon - /// Weapon + mods array - public List GenerateModsForWeapon(string sessionId, GenerateWeaponRequest request) + /** + * Get the default plate an armor has in its db item + * @param armorItem Item to look up default plate + * @param modSlot front/back + * @returns Tpl of plate + */ + protected string GetDefaultPlateTpl(TemplateItem armorItem, string modSlot ) { + var relatedItemDbModSlot = armorItem.Properties.Slots?.FirstOrDefault(slot => slot.Name.ToLower() == modSlot); + + return relatedItemDbModSlot?.Props.Filters[0].Plate; + } + + /** + * Get the matching armor slot from the default preset matching passed in armor tpl + * @param presetItemId Id of preset + * @param modSlot front/back + * @returns Armor IItem + */ + protected Item GetDefaultPresetArmorSlot(string armorItemTpl, string modSlot) { + var defaultPreset = _presetHelper.GetDefaultPreset(armorItemTpl); + + return defaultPreset?.Items.FirstOrDefault((item) => item.SlotId?.ToLower() == modSlot); + } + + +/// +/// Add mods to a weapon using the provided mod pool +/// +/// Session id +/// Data used to generate the weapon +/// Weapon + mods array +public List GenerateModsForWeapon(string sessionId, GenerateWeaponRequest request) { var pmcProfile = _profileHelper.GetPmcProfile(sessionId);