partial fixes

This commit is contained in:
Alex
2025-01-24 13:56:47 +00:00
parent 48228c6d2e
commit 19619ec061
4 changed files with 19 additions and 19 deletions
@@ -179,11 +179,16 @@ public class FenceBaseAssortGenerator(
var itemQualityModifier = itemHelper.GetItemQualityModifierForItems(itemAndChildren);
// Multiply weapon+mods rouble price by quality modifier
baseFenceAssort.BarterScheme[itemAndChildren[0].Id] = [[]];
baseFenceAssort.BarterScheme[itemAndChildren[0].Id][0][0] = new BarterScheme()
baseFenceAssort.BarterScheme[itemAndChildren[0].Id] = new()
{
Template = Money.ROUBLES,
Count = Math.Round(price * itemQualityModifier),
new()
{
new BarterScheme
{
Template = Money.ROUBLES,
Count = Math.Round(price * itemQualityModifier),
}
}
};
baseFenceAssort.LoyalLevelItems[itemAndChildren[0].Id] = 1;
+2 -2
View File
@@ -470,7 +470,7 @@ public class ItemHelper(
/// <returns>List of TemplateItem objects</returns>
public List<TemplateItem> GetItems()
{
return _cloner.Clone(_databaseService.GetItems().Values).ToList();
return _cloner.Clone(_databaseService.GetItems().Values.ToList());
}
/**
@@ -1822,7 +1822,7 @@ public class ItemHelper(
}
// Has parentId + no remapping exists for its parent
if (mod.ParentId is not null && idMappings[mod.ParentId] is null)
if (mod.ParentId is not null && (!idMappings.ContainsKey(mod.ParentId) || idMappings?[mod.ParentId] is null))
{
// Make remapping for items parentId
idMappings[mod.ParentId] = _hashUtil.Generate();
+1 -1
View File
@@ -63,7 +63,7 @@ public class PresetHelper(
if (_defaultEquipmentPresets == null)
{
var tempPresets = _databaseService.GetGlobals().ItemPresets;
tempPresets = tempPresets.Where(
_defaultEquipmentPresets = tempPresets.Where(
p =>
p.Value.Encyclopedia != null &&
_itemHelper.ArmorItemCanHoldMods(p.Value.Encyclopedia)
+7 -12
View File
@@ -756,7 +756,7 @@ public class FenceService(
continue;
}
if (price > priceLimits[itemDbDetails.Parent])
if (priceLimits.ContainsKey(itemDbDetails.Parent) && price > priceLimits[itemDbDetails.Parent])
{
// Too expensive for fence, try another item
i--;
@@ -1024,11 +1024,9 @@ public class FenceService(
RemoveRandomModsOfItem(presetWithChildrenClone);
// Check chosen item is below price cap
var priceLimitRouble = traderConfig.Fence.ItemCategoryRoublePriceLimit[rootItemDb.Parent];
var itemPrice =
handbookHelper.GetTemplatePriceForItems(presetWithChildrenClone) *
itemHelper.GetItemQualityModifierForItems(presetWithChildrenClone);
if (priceLimitRouble != null)
var itemPrice = handbookHelper.GetTemplatePriceForItems(presetWithChildrenClone) *
itemHelper.GetItemQualityModifierForItems(presetWithChildrenClone);
if (traderConfig.Fence.ItemCategoryRoublePriceLimit.TryGetValue(rootItemDb.Parent, out var priceLimitRouble))
{
if (itemPrice > priceLimitRouble)
{
@@ -1305,15 +1303,13 @@ public class FenceService(
}
// Check for override in config, use values if exists
overrideValues = traderConfig.Fence.ItemStackSizeOverrideMinMax[itemDbDetails.Id];
if (overrideValues != null)
if (traderConfig.Fence.ItemStackSizeOverrideMinMax.TryGetValue(itemDbDetails.Id, out overrideValues))
{
return randomUtil.GetInt((int)overrideValues.Min, (int)overrideValues.Max);
}
// Check for parent override
overrideValues = traderConfig.Fence.ItemStackSizeOverrideMinMax[itemDbDetails.Parent];
if (overrideValues != null)
if (traderConfig.Fence.ItemStackSizeOverrideMinMax.TryGetValue(itemDbDetails.Parent, out overrideValues))
{
return randomUtil.GetInt((int)overrideValues.Min, (int)overrideValues.Max);
}
@@ -1366,8 +1362,7 @@ public class FenceService(
protected bool PresetModItemWillBeRemoved(Item weaponMod, List<string> itemsBeingDeleted)
{
var slotIdsThatCanFail = traderConfig.Fence.PresetSlotsToRemoveChancePercent;
var removalChance = slotIdsThatCanFail[weaponMod.SlotId];
if (removalChance is null or 0.0)
if (!slotIdsThatCanFail.TryGetValue(weaponMod.SlotId, out var removalChance) || removalChance == 0.0)
{
return false;
}