diff --git a/Libraries/SPTarkov.Server.Core/Controllers/GameController.cs b/Libraries/SPTarkov.Server.Core/Controllers/GameController.cs index 97c8c744..87490cf3 100644 --- a/Libraries/SPTarkov.Server.Core/Controllers/GameController.cs +++ b/Libraries/SPTarkov.Server.Core/Controllers/GameController.cs @@ -12,7 +12,6 @@ using SPTarkov.Server.Core.Models.Utils; using SPTarkov.Server.Core.Servers; using SPTarkov.Server.Core.Services; using SPTarkov.Server.Core.Utils; -using SPTarkov.Server.Core.Utils.Cloners; using SPTarkov.Server.Core.Utils.Json; using LogLevel = SPTarkov.Server.Core.Models.Spt.Logging.LogLevel; @@ -26,22 +25,15 @@ public class GameController( DatabaseService _databaseService, TimeUtil _timeUtil, HttpServerHelper _httpServerHelper, - InventoryHelper _inventoryHelper, - RandomUtil _randomUtil, HideoutHelper _hideoutHelper, ProfileHelper _profileHelper, ProfileFixerService _profileFixerService, LocalisationService _localisationService, PostDbLoadService _postDbLoadService, - CustomLocationWaveService _customLocationWaveService, - OpenZoneService _openZoneService, SeasonalEventService _seasonalEventService, - ItemBaseClassService _itemBaseClassService, GiftService _giftService, RaidTimeAdjustmentService _raidTimeAdjustmentService, - ProfileActivityService _profileActivityService, - CreateProfileService _createProfileService, - ICloner _cloner + ProfileActivityService _profileActivityService ) { protected BotConfig _botConfig = _configServer.GetConfig(); @@ -49,7 +41,6 @@ public class GameController( protected double _deviation = 0.0001; protected HideoutConfig _hideoutConfig = _configServer.GetConfig(); protected HttpConfig _httpConfig = _configServer.GetConfig(); - protected RagfairConfig _ragfairConfig = _configServer.GetConfig(); /// /// Handle client/game/start diff --git a/Libraries/SPTarkov.Server.Core/Extensions/ProfileExtensions.cs b/Libraries/SPTarkov.Server.Core/Extensions/ProfileExtensions.cs index 97a9daef..9ec99bfe 100644 --- a/Libraries/SPTarkov.Server.Core/Extensions/ProfileExtensions.cs +++ b/Libraries/SPTarkov.Server.Core/Extensions/ProfileExtensions.cs @@ -73,5 +73,27 @@ namespace SPTarkov.Server.Core.Extensions { return profile?.Skills?.Common?.FirstOrDefault(s => s.Id == skill); } + + /// + /// Get the scav karma level for a profile + /// Is also the fence trader rep level + /// + /// pmc profile + /// karma level + public static double GetScavKarmaLevel(this PmcData pmcData) + { + // can be empty during profile creation + if (!pmcData.TradersInfo.TryGetValue(Traders.FENCE, out var fenceInfo)) + { + return 0; + } + + if (fenceInfo.Standing > 6) + { + return 6; + } + + return Math.Floor(fenceInfo.Standing ?? 0); + } } } diff --git a/Libraries/SPTarkov.Server.Core/Generators/FenceBaseAssortGenerator.cs b/Libraries/SPTarkov.Server.Core/Generators/FenceBaseAssortGenerator.cs index 6c727213..77c41b12 100644 --- a/Libraries/SPTarkov.Server.Core/Generators/FenceBaseAssortGenerator.cs +++ b/Libraries/SPTarkov.Server.Core/Generators/FenceBaseAssortGenerator.cs @@ -236,7 +236,7 @@ public class FenceBaseAssortGenerator( /// Get the penetration power value of an ammo, works with ammo boxes and raw ammos /// /// Ammo box or ammo item from items.db - /// Penetration power of passed in item, undefined if it doesnt have a power + /// Penetration power of passed in item, undefined if it doesn't have a power protected double? GetAmmoPenetrationPower(TemplateItem rootItemDb) { if (itemHelper.IsOfBaseclass(rootItemDb.Id, BaseClasses.AMMO_BOX)) diff --git a/Libraries/SPTarkov.Server.Core/Generators/PlayerScavGenerator.cs b/Libraries/SPTarkov.Server.Core/Generators/PlayerScavGenerator.cs index c0a991a2..d35b420b 100644 --- a/Libraries/SPTarkov.Server.Core/Generators/PlayerScavGenerator.cs +++ b/Libraries/SPTarkov.Server.Core/Generators/PlayerScavGenerator.cs @@ -1,5 +1,6 @@ using System.Globalization; using SPTarkov.DI.Annotations; +using SPTarkov.Server.Core.Extensions; using SPTarkov.Server.Core.Helpers; using SPTarkov.Server.Core.Models.Eft.Common; using SPTarkov.Server.Core.Models.Eft.Common.Tables; @@ -51,7 +52,7 @@ public class PlayerScavGenerator( var pmcDataClone = _cloner.Clone(profileCharactersClone.PmcData); var existingScavDataClone = _cloner.Clone(profileCharactersClone.ScavData); - var scavKarmaLevel = GetScavKarmaLevel(pmcDataClone); + var scavKarmaLevel = pmcDataClone.GetScavKarmaLevel(); // use karma level to get correct karmaSettings if ( @@ -195,31 +196,6 @@ public class PlayerScavGenerator( } } - /// - /// Get the scav karama level for a profile - /// Is also the fence trader rep level - /// - /// pmc profile - /// karma level - protected double GetScavKarmaLevel(PmcData pmcData) - { - // can be empty during profile creation - if (!pmcData.TradersInfo.TryGetValue(Traders.FENCE, out var fenceInfo)) - { - _logger.Warning( - _localisationService.GetText("scav-missing_karma_level_getting_default") - ); - return 0; - } - - if (fenceInfo.Standing > 6) - { - return 6; - } - - return Math.Floor(fenceInfo.Standing ?? 0); - } - /// /// Get a baseBot template /// If the parameter doesnt match "assault", take parts from the loot type and apply to the return bot template diff --git a/Libraries/SPTarkov.Server.Core/Services/TraderStore.cs b/Libraries/SPTarkov.Server.Core/Services/TraderStore.cs index f42e2714..d102cd0e 100644 --- a/Libraries/SPTarkov.Server.Core/Services/TraderStore.cs +++ b/Libraries/SPTarkov.Server.Core/Services/TraderStore.cs @@ -73,12 +73,7 @@ public class TraderStore( /// public ITrader? GetTraderById(string traderId) { - if (_traders.TryGetValue(traderId, out var trader)) - { - return trader; - } - - return null; + return _traders.GetValueOrDefault(traderId); } ///