From 770d187061c2ca0d3d17ff52c62edc8cc9c9ddae Mon Sep 17 00:00:00 2001 From: Chomp Date: Sat, 28 Jun 2025 15:05:23 +0100 Subject: [PATCH] Created `WildSpawnTypeExtensions` --- .../Controllers/BotController.cs | 5 +-- .../Extensions/WildSpawnTypeExtensions.cs | 36 +++++++++++++++++++ .../Generators/BotLootGenerator.cs | 2 +- .../SPTarkov.Server.Core/Helpers/BotHelper.cs | 21 ----------- 4 files changed, 40 insertions(+), 24 deletions(-) create mode 100644 Libraries/SPTarkov.Server.Core/Extensions/WildSpawnTypeExtensions.cs diff --git a/Libraries/SPTarkov.Server.Core/Controllers/BotController.cs b/Libraries/SPTarkov.Server.Core/Controllers/BotController.cs index ab5bdc8b..fd1c172f 100644 --- a/Libraries/SPTarkov.Server.Core/Controllers/BotController.cs +++ b/Libraries/SPTarkov.Server.Core/Controllers/BotController.cs @@ -2,6 +2,7 @@ using System.Diagnostics; using System.Text.Json.Serialization; using SPTarkov.DI.Annotations; using SPTarkov.Server.Core.Constants; +using SPTarkov.Server.Core.Extensions; using SPTarkov.Server.Core.Generators; using SPTarkov.Server.Core.Helpers; using SPTarkov.Server.Core.Models.Common; @@ -136,8 +137,8 @@ public class BotController( foreach (var botType in botTypes) { // If bot is usec/bear, swap to different name - var botTypeLower = _botHelper.IsBotPmc(botType) - ? _botHelper.GetPmcSideByRole(botType).ToLower() + var botTypeLower = botType.IsPmc() + ? (botType.GetPmcSideByRole() ?? "usec").ToLower() : botType.ToString().ToLower(); // Get details from db diff --git a/Libraries/SPTarkov.Server.Core/Extensions/WildSpawnTypeExtensions.cs b/Libraries/SPTarkov.Server.Core/Extensions/WildSpawnTypeExtensions.cs new file mode 100644 index 00000000..13e6362d --- /dev/null +++ b/Libraries/SPTarkov.Server.Core/Extensions/WildSpawnTypeExtensions.cs @@ -0,0 +1,36 @@ +using SPTarkov.Server.Core.Constants; +using SPTarkov.Server.Core.Models.Eft.Common; + +namespace SPTarkov.Server.Core.Extensions +{ + public static class WildSpawnTypeExtensions + { + /// + /// Is the passed in bot role a PMC (USEC/Bear/PMC) + /// + /// bot role to check + /// true if is pmc + public static bool IsPmc(this WildSpawnType botRole) + { + return botRole is WildSpawnType.pmcBEAR or WildSpawnType.pmcUSEC; + } + + /// + /// Get the corresponding side when pmcBEAR or pmcUSEC is passed in + /// + /// role to get side for + /// Usec/Bear + public static string? GetPmcSideByRole(this WildSpawnType botRole) + { + switch (botRole) + { + case WildSpawnType.pmcBEAR: + return Sides.Bear; + case WildSpawnType.pmcUSEC: + return Sides.Usec; + default: + return null; + } + } + } +} diff --git a/Libraries/SPTarkov.Server.Core/Generators/BotLootGenerator.cs b/Libraries/SPTarkov.Server.Core/Generators/BotLootGenerator.cs index 02794ce7..4b81e805 100644 --- a/Libraries/SPTarkov.Server.Core/Generators/BotLootGenerator.cs +++ b/Libraries/SPTarkov.Server.Core/Generators/BotLootGenerator.cs @@ -64,7 +64,7 @@ public class BotLootGenerator( /// Session id /// Clone of Base JSON db file for the bot having its loot generated /// Will bot be a pmc - /// Role of bot, e.g. asssult + /// Role of bot, e.g. assault /// Inventory to add loot to /// Level of bot public void GenerateLoot( diff --git a/Libraries/SPTarkov.Server.Core/Helpers/BotHelper.cs b/Libraries/SPTarkov.Server.Core/Helpers/BotHelper.cs index 074b87af..9796d67f 100644 --- a/Libraries/SPTarkov.Server.Core/Helpers/BotHelper.cs +++ b/Libraries/SPTarkov.Server.Core/Helpers/BotHelper.cs @@ -59,16 +59,6 @@ public class BotHelper( return _pmcTypeIds.Contains(botRole?.ToLower()); } - /// - /// Is the passed in bot role a PMC (USEC/Bear/PMC) - /// - /// bot role to check - /// true if is pmc - public bool IsBotPmc(WildSpawnType botRole) - { - return botRole is WildSpawnType.pmcBEAR or WildSpawnType.pmcUSEC; - } - public bool IsBotBoss(string botRole) { return !IsBotFollower(botRole) @@ -169,17 +159,6 @@ public class BotHelper( ); } - /// - /// Choose between pmcBEAR and pmcUSEC at random based on the % defined in pmcConfig.isUsec - /// - /// pmc role - public string GetRandomizedPmcRole() - { - return _randomUtil.GetChance100(_pmcConfig.IsUsec) - ? _pmcConfig.UsecType - : _pmcConfig.BearType; - } - /// /// Get the corresponding side when pmcBEAR or pmcUSEC is passed in ///