diff --git a/project/assets/configs/trader.json b/project/assets/configs/trader.json index 76111003..6a3cae5b 100644 --- a/project/assets/configs/trader.json +++ b/project/assets/configs/trader.json @@ -72,42 +72,55 @@ }, "itemPriceMult": 1.2, "presetPriceMult": 1.3, - "regenerateAssortsOnRefresh": false, + "regenerateAssortsOnRefresh": true, "itemTypeLimits": { - "543be5cb4bdc2deb348b4568": 2, - "550aa4bf4bdc2dd6348b456b": 3, - "55818add4bdc2d5b648b456f": 5, - "5448bc234bdc2d3c308b4569": 5, - "55818b224bdc2dde698b456f": 5, - "555ef6e44bdc2de9068b457e": 5, - "5a341c4086f77401f2541505": 5, - "55818ad54bdc2ddc698b4569": 5, - "5448e53e4bdc2d60728b4567": 6, - "55818ac54bdc2d5b648b456e": 5, - "55818af64bdc2d5b648b4570": 5, - "55818a304bdc2db5418b457d": 4, - "5a74651486f7744e73386dd1": 5, - "55818a594bdc2db9688b456a": 5, - "55818a104bdc2db9688b4569": 5, - "55818a684bdc2ddd698b456d": 3, - "550aa4cd4bdc2dd8348b456c": 3, - "55818acf4bdc2dde698b456b": 5, - "55818a6f4bdc2db9688b456b": 5, - "5447b5f14bdc2d61278b4567": 3, - "5447b5cf4bdc2d65278b4567": 5, - "5447b6094bdc2dc3278b4567": 5, - "5447b5e04bdc2d62278b4567": 5, - "55818b164bdc2ddc698b456c": 3, - "617f1ef5e8b54b0998387733": 2, - "5448ecbe4bdc2d60728b4568": 2, - "57864a66245977548f04a81f": 2, - "5a341c4686f77469e155819e": 3, - "57864a3d24597754843f8721": 2, - "5448e54d4bdc2dcc718b4568": 4, - "5448f39d4bdc2d0a728b4568": 5, - "5795f317245977243854e041": 3, - "5c99f98d86f7745c314214b3": 2, - "5c164d2286f774194c5e69fa": 0 + "5448eb774bdc2d0a728b4567": 10, + "5c518ec986f7743b68682ce2": 3, + "5c518ed586f774119a772aee": 0, + "5448bc234bdc2d3c308b4569": 16, + "55802f4a4bdc2ddb688b4569": 3, + "644120aa86ffbe10ee032b6f": 3, + + "5c99f98d86f7745c314214b3": 0, + "5447b5cf4bdc2d65278b4567": 4, + + "55818a104bdc2db9688b4569": 1, + "55818a304bdc2db5418b457d": 1, + "5448fe394bdc2d0d028b456c": 0, + "55818a594bdc2db9688b456a": 0, + "55818a604bdc2db5418b457e": 0, + "55818a684bdc2ddd698b456d": 1, + "55818a6f4bdc2db9688b456b": 1, + "55818ac54bdc2d5b648b456e": 1, + "55818acf4bdc2dde698b456b": 0, + "55818ad54bdc2ddc698b4569": 0, + "55818add4bdc2d5b648b456f": 0, + "55818ae44bdc2dde698b456c": 0, + "55818aeb4bdc2ddc698b456a": 0, + "55818af64bdc2d5b648b4570": 0, + "55818afb4bdc2dde698b456d": 1, + "55818b014bdc2ddc698b456b": 1, + "55818b084bdc2d5b648b4571": 1, + "55818b0e4bdc2dde698b456e": 0, + "55818b164bdc2ddc698b456c": 0, + "55818b1d4bdc2d5b648b4572": 1, + "55818b224bdc2dde698b456f": 1, + "550aa4cd4bdc2dd8348b456c": 0, + "550aa4dd4bdc2dc9348b4569": 1, + "5a74651486f7744e73386dd1": 0, + "5a2c3a9486f774688b05e574": 0, + "56ea9461d2720b67698b456f": 0, + "5448f3a64bdc2d60728b456a": 0, + + "5a341c4686f77469e155819e": 7, + "5485a8684bdc2da71d8b4567": 23, + "5f4fbaaca5573a5ac31db429": 0, + "5447e0e74bdc2d3c308b4567": 4, + "57bef4c42459772e8d35a53b": 1, + "5b3f15d486f77432d0509248": 3, + "543be6564bdc2df4348b4568": 0, + "5448ecbe4bdc2d60728b4568": 0, + "5671435f4bdc2d96058b4569": 0 }, "weaponDurabilityPercentMinMax": { "current": { @@ -138,21 +151,29 @@ "5485a8684bdc2da71d8b4567": { "min": 80, "max": 7000 - } + }, + "543be5cb4bdc2deb348b4568": { + "min": 1, + "max": 16 + }, + "5b432b965acfc47a8774094e": { + "min": 120, + "max": 352 + } }, "itemCategoryRoublePriceLimit": { + "5448eb774bdc2d0a728b4567": 14000, "5485a8684bdc2da71d8b4567": 230, "5795f317245977243854e041": 30000, "5448ecbe4bdc2d60728b4568": 40000, "57864a3d24597754843f8721": 50000, - "5447e1d04bdc2dff2f8b4567": 50000, "5448e53e4bdc2d60728b4567": 90000, - "5a341c4686f77469e155819e": 75000, + "5a341c4686f77469e155819e": 24000, "57864a66245977548f04a81f": 71000, - "5448e54d4bdc2dcc718b4568": 200000, + "5448e54d4bdc2dcc718b4568": 100000, "5a2c3a9486f774688b05e574": 70000, "5448f3a64bdc2d60728b456a": 70000, - "5447b6194bdc2d67278b4567": 195000, + "5447b6194bdc2d67278b4567": 103000, "550aa4cd4bdc2dd8348b456c": 70000, "57864ee62459775490116fc1": 95000, "5448bc234bdc2d3c308b4569": 29000, @@ -163,7 +184,7 @@ "5447b5e04bdc2d62278b4567": 33006, "5447b5fc4bdc2d87278b4567": 42005, "5447b5f14bdc2d61278b4567": 44004, - "5447b5cf4bdc2d65278b4567": 30003, + "5447b5cf4bdc2d65278b4567": 28003, "5447b6254bdc2dc3278b4568": 28002, "5447e1d04bdc2dff2f8b4567": 19001, @@ -173,9 +194,18 @@ "57864bb7245977548b3b66c2": 85000, "5448e5284bdc2dcb718b4567": 40001, - "5a341c4086f77401f2541505": 105000, + "5a341c4086f77401f2541505": 35000, - "5d21f59b6dbe99052b54ef83": 45000 + "5d21f59b6dbe99052b54ef83": 45000, + + "5645bcb74bdc2ded0b8b4578": 35000, + "644120aa86ffbe10ee032b6f": 20000, + "57864c8c245977548867e7f1": 15000, + "5447e0e74bdc2d3c308b4567": 20000, + "616eb7aea207f41933308f46": 40000, + "5b3f15d486f77432d0509248": 5000, + "5448f3ac4bdc2dce718b4569": 42000, + "5448f3a14bdc2d27728b4569": 20000 }, "presetSlotsToRemoveChancePercent": { "mod_scope": 70, diff --git a/project/src/services/FenceService.ts b/project/src/services/FenceService.ts index 6aa6b1c6..351e3fbd 100644 --- a/project/src/services/FenceService.ts +++ b/project/src/services/FenceService.ts @@ -541,14 +541,14 @@ export class FenceService * @param assortCount Number to add * @param assorts Assorts data to add to * @param baseFenceAssort Base data to draw from - * @param itemTypeCounts + * @param itemTypeLimits * @param loyaltyLevel Loyalty level to set new item to */ protected addItemAssorts( assortCount: number, assorts: ITraderAssort, baseFenceAssort: ITraderAssort, - itemTypeCounts: Record, + itemTypeLimits: Record, loyaltyLevel: number, ): void { @@ -570,8 +570,8 @@ export class FenceService ); const itemDbDetails = this.itemHelper.getItem(chosenBaseAssortRoot._tpl)[1]; - const itemLimitCount = itemTypeCounts[itemDbDetails._parent]; - if (itemLimitCount && itemLimitCount.current > itemLimitCount.max) + const itemLimitCount = this.getMatchingItemLimit(itemTypeLimits, itemDbDetails._id); + if (itemLimitCount?.current >= itemLimitCount?.max) { // Skip adding item as assort as limit reached, decrement i counter so we still get another item i--; @@ -624,6 +624,20 @@ export class FenceService } } + protected getMatchingItemLimit( + itemTypeLimits: Record, + itemTpl: string, + ): { current: number; max: number; } + { + for (const baseTypeKey in itemTypeLimits) + { + if (this.itemHelper.isOfBaseclass(itemTpl, baseTypeKey)) + { + return itemTypeLimits[baseTypeKey]; + } + } + } + /** * Find presets in base fence assort and add desired number to 'assorts' parameter * @param desiredWeaponPresetsCount