diff --git a/Core/Generators/BotLevelGenerator.cs b/Core/Generators/BotLevelGenerator.cs index d074ef8a..e3efb15f 100644 --- a/Core/Generators/BotLevelGenerator.cs +++ b/Core/Generators/BotLevelGenerator.cs @@ -43,7 +43,8 @@ public class BotLevelGenerator // Get random level based on the exp table. int exp = 0; - var level = int.Parse(ChooseBotLevel(botLevelRange.Min.Value, botLevelRange.Max.Value, 1, 1.15).ToString()); // TODO - nasty double to string to int conversion + var level = int.Parse(ChooseBotLevel(botLevelRange.Min.Value, botLevelRange.Max.Value, 1, 1.15) + .ToString()); // TODO - nasty double to string to int conversion for (var i = 0; i < level; i++) { exp += expTable[i].Experience.Value; @@ -55,7 +56,7 @@ public class BotLevelGenerator exp += _randomUtil.GetInt(0, expTable[level].Experience.Value - 1); } - return new RandomisedBotLevelResult{ Level = level, Exp = exp }; + return new RandomisedBotLevelResult { Level = level, Exp = exp }; } public double ChooseBotLevel(double min, double max, int shift, double number) @@ -76,24 +77,29 @@ public class BotLevelGenerator var pmcOverride = botGenerationDetails.LocationSpecificPmcLevelOverride; var minPossibleLevel = isPmc && pmcOverride is not null - ? Math.Min( - Math.Max(levelDetails.Min.Value, pmcOverride.Min.Value), // Biggest between json min and the botgen min - maxAvailableLevel // Fallback if value above is crazy (default is 79) - ) - : Math.Min(levelDetails.Min.Value, maxAvailableLevel); // Not pmc with override or non-pmc + ? Math.Min( + Math.Max(levelDetails.Min.Value, pmcOverride.Min.Value), // Biggest between json min and the botgen min + maxAvailableLevel // Fallback if value above is crazy (default is 79) + ) + : Math.Min(levelDetails.Min.Value, maxAvailableLevel); // Not pmc with override or non-pmc var maxPossibleLevel = isPmc && pmcOverride is not null ? Math.Min(pmcOverride.Max.Value, maxAvailableLevel) // Was a PMC and they have a level override : Math.Min(levelDetails.Max.Value, maxAvailableLevel); // Not pmc with override or non-pmc - var minLevel = botGenerationDetails.PlayerLevel.Value - botGenerationDetails.BotRelativeLevelDeltaMin.Value; - var maxLevel = botGenerationDetails.PlayerLevel.Value + botGenerationDetails.BotRelativeLevelDeltaMin.Value; + var minLevel = botGenerationDetails.PlayerLevel.HasValue + ? botGenerationDetails.PlayerLevel.Value + : 0 - botGenerationDetails.BotRelativeLevelDeltaMin.Value; + var maxLevel = botGenerationDetails.PlayerLevel.HasValue + ? botGenerationDetails.PlayerLevel.Value + : 0 + botGenerationDetails.BotRelativeLevelDeltaMin.Value; // Bound the level to the min/max possible maxLevel = Math.Min(Math.Max(maxLevel, minPossibleLevel), maxPossibleLevel); minLevel = Math.Min(Math.Max(minLevel, minPossibleLevel), maxPossibleLevel); - return new MinMax{ + return new MinMax + { Min = minLevel, Max = maxLevel, }; diff --git a/Core/Helpers/ItemHelper.cs b/Core/Helpers/ItemHelper.cs index e4aadf99..313af33f 100644 --- a/Core/Helpers/ItemHelper.cs +++ b/Core/Helpers/ItemHelper.cs @@ -1044,9 +1044,9 @@ public class ItemHelper throw new NotImplementedException(); } - public bool IsOfBaseclass(string valueEncyclopedia, string weapon) + public bool IsOfBaseclass(string tpl, List baseClassTpls) { - throw new NotImplementedException(); + return _itemBaseClassService.ItemHasBaseClass(tpl, baseClassTpls); } } diff --git a/Core/Helpers/PresetHelper.cs b/Core/Helpers/PresetHelper.cs index 08bee62d..950eb063 100644 --- a/Core/Helpers/PresetHelper.cs +++ b/Core/Helpers/PresetHelper.cs @@ -57,7 +57,7 @@ public class PresetHelper var tempPresets = _databaseService.GetGlobals().ItemPresets; tempPresets = tempPresets.Where(p => p.Value.Encyclopedia != null && - _itemHelper.IsOfBaseclass(p.Value.Encyclopedia, BaseClasses.WEAPON)).ToDictionary(); + _itemHelper.IsOfBaseclass(p.Value.Encyclopedia, [BaseClasses.WEAPON])).ToDictionary(); } return _defaultWeaponPresets; diff --git a/Core/Services/MailSendService.cs b/Core/Services/MailSendService.cs index aa929b37..3b9bef99 100644 --- a/Core/Services/MailSendService.cs +++ b/Core/Services/MailSendService.cs @@ -450,7 +450,7 @@ public class MailSendService } // Boxes can contain sub-items - if (_itemHelper.IsOfBaseclass(itemTemplate.Id, BaseClasses.AMMO_BOX)) + if (_itemHelper.IsOfBaseclass(itemTemplate.Id, [BaseClasses.AMMO_BOX])) { var boxAndCartridges = new List(); boxAndCartridges.Add(reward);