Allow modders to set item min/max stack size limits for any item on fence
This commit is contained in:
parent
2917c8a167
commit
a79a5f7aec
@ -86,6 +86,10 @@
|
||||
"min": 35,
|
||||
"max": 60
|
||||
},
|
||||
"itemStackSizeOverrideMinMax":
|
||||
{
|
||||
"59e690b686f7746c9f75e848": {"min": 5, "max": 15}
|
||||
},
|
||||
"blacklist": [
|
||||
"5661632d4bdc2d903d8b456b",
|
||||
"543be5e94bdc2df1348b4568",
|
||||
|
@ -30,6 +30,8 @@ export interface FenceConfig
|
||||
presetPriceMult: number
|
||||
armorMaxDurabilityPercentMinMax: MinMax
|
||||
presetMaxDurabilityPercentMinMax: MinMax
|
||||
/** Key: item tpl */
|
||||
itemStackSizeOverrideMinMax: Record<string, MinMax>
|
||||
itemTypeLimits: Record<string, number>
|
||||
regenerateAssortsOnRefresh: boolean
|
||||
blacklist: string[]
|
||||
|
@ -428,7 +428,7 @@ export class FenceService
|
||||
|
||||
this.randomiseItemUpdProperties(itemDbDetails, toPush);
|
||||
|
||||
toPush.upd.StackObjectsCount = 1;
|
||||
toPush.upd.StackObjectsCount = this.getSingleItemStackCount(itemDbDetails);
|
||||
toPush.upd.BuyRestrictionCurrent = 0;
|
||||
toPush.upd.UnlimitedCount = false;
|
||||
|
||||
@ -440,6 +440,30 @@ export class FenceService
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get stack size ofr a singular item (no mods)
|
||||
* @param itemDbDetails item being added to fence
|
||||
* @returns Stack size
|
||||
*/
|
||||
protected getSingleItemStackCount(itemDbDetails: ITemplateItem): number
|
||||
{
|
||||
// Check for override in config, use values if exists
|
||||
const overrideValues = this.traderConfig.fence.itemStackSizeOverrideMinMax[itemDbDetails._id];
|
||||
if (overrideValues)
|
||||
{
|
||||
return this.randomUtil.getInt(overrideValues.min, overrideValues.max);
|
||||
}
|
||||
|
||||
// Fence doesn't sell ammo by default, but handle it as players mod fence
|
||||
if (this.itemHelper.isOfBaseclass(itemDbDetails._id, BaseClasses.AMMO))
|
||||
{
|
||||
// No override, use stack max size from item db
|
||||
return this.randomUtil.getInt(1, itemDbDetails._props.StackMaxSize);
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add preset weapons to fence presets
|
||||
* @param assortCount how many assorts to add to assorts
|
||||
|
Loading…
Reference in New Issue
Block a user