76 Commits

Author SHA1 Message Date
Alex
d13e86ba46 Rebranding to SPT (!345)
Rebranded src code and scripts to SPT

Co-authored-by: clodan <clodan@clodan.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/345
Co-authored-by: Alex <clodan@noreply.dev.sp-tarkov.com>
Co-committed-by: Alex <clodan@noreply.dev.sp-tarkov.com>
2024-05-21 17:59:04 +00:00
Dev
139b139581 Localised various error messages 2024-05-21 12:40:16 +01:00
Refringe
cb169a18b9
Project Code Format
Ran the `npm run format` command to bring the entire project in-line with the formatting rules.
2024-05-17 15:32:41 -04:00
Dev
d95423b0f1 Merge branch 'master' of https://dev.sp-tarkov.com/SPT-AKI/Server into 3.9.0-DEV
# Conflicts:
#	project/assets/configs/core.json
#	project/package.json
#	project/src/models/eft/common/IGlobals.ts
#	project/src/routers/dynamic/BundleDynamicRouter.ts
2024-05-15 16:39:41 +01:00
Refringe
14e8f8fa19
Take your brackets back!
I don't want em'. Grumble. Ahem...

This change allows for "extra" parentheses to be added in situations where, without them, the code could possibly, potentially be seen as maybe a little-bit, tiny confusing.

Also, fixes a bunch of other ESLint errors. Mostly down to naming warnings now. Mostly.
2024-05-13 17:04:23 -04:00
Alex
f8d1227dfd Introduced a new ICloner interface with 3 implementations, one of them being a recursive cloner which is faster and more efficient than its counterparts by more than 50% (!328)
Co-authored-by: clodan <clodan@clodan.com>
Co-authored-by: Dev <dev@dev.sp-tarkov.com>
Co-authored-by: chomp <chomp@noreply.dev.sp-tarkov.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/328
Co-authored-by: Alex <clodan@noreply.dev.sp-tarkov.com>
Co-committed-by: Alex <clodan@noreply.dev.sp-tarkov.com>
2024-05-13 17:58:17 +00:00
Dev
02e8b5051c Added guard against nullref inside updateFenceAssorts() to protect against modded items 2024-05-12 19:08:11 +01:00
Refringe
50c7a26a58
ESLint Pass
This is the first pass of ESLint on the codebase.

ESLint formatting is less strict when it comes to line-length and line-breaks then dprint/biome, so if you see formatting that you don't like... fix it! It shouldn't require a configuration change.

- This should merge clean into master (when the time comes).
- This will not merge clean into `3.9.0-DEV`, but the conflicts aren't that bad.
2024-05-07 23:57:08 -04:00
Alex
0502257093 Added functionality for Fence to resell items sold to him by PMCs, and fixed give command giving incomplete preset items and bugged ammo boxes (!317)
Fixes https://dev.sp-tarkov.com/SPT-AKI/Issues/issues/625

Co-authored-by: clodan <clodan@clodan.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/317
Co-authored-by: Alex <clodan@noreply.dev.sp-tarkov.com>
Co-committed-by: Alex <clodan@noreply.dev.sp-tarkov.com>
2024-05-01 20:17:09 +00:00
nader
96208ed95f add getters (and additional setter) to FenceService (!304)
resubmitting PR targeting 3.8.1-DEV

Co-authored-by: Nader <nader@cloudkraken.dev>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/304
Co-authored-by: nader <nader@noreply.dev.sp-tarkov.com>
Co-committed-by: nader <nader@noreply.dev.sp-tarkov.com>
2024-04-23 19:21:21 +00:00
Dev
0ab5ca6dee Prevent check from failing when upd object is missing 2024-04-23 19:38:45 +01:00
Dev
8366dd355d Added logging to removeRandomItemFromAssorts() when no upd object found 2024-04-23 10:01:41 +01:00
Dev
be841fbe3f Improved handling of a missing updobject inside removeRandomItemFromAssorts() 2024-04-22 17:54:32 +01:00
Dev
ef65074dc3 Resolve server error inside removeRandomItemFromAssorts() when the item being processed has no upd object 2024-04-20 13:05:44 +01:00
Dev
9dc8211268 Refactored fence partial refresh code to be more generic and shared between normal/discounted assorts 2024-04-12 11:08:32 +01:00
Dev
a5924dbe0d Fix incorrect calculation for normal fence assort count 2024-04-12 10:36:24 +01:00
Dev
885205c742 Fixed fence slowly losing assorts over time 2024-04-10 18:47:51 +01:00
Dev
64ddca4124 Improved handling of fence assort item refresh. Duplicate stacks should be much less common
Stacked items can now be partially reduced instead of all or nothing
2024-04-08 20:01:51 +01:00
Dev
7ccb524eea Fixed refreshed fence assorts being generated at level 2 instead of 1 2024-03-31 16:26:52 +01:00
Dev
df939c693f Fixed Fence assort generation failing when a child item that can be stacked is found, do not allow child items to be stacked. only root items 2024-03-30 15:06:12 +00:00
Dev
95f5a49c5c Update trader refresh times to use a min and max value 2024-03-16 22:12:03 +00:00
Dev
92c5dc7f6b Reworked how items are chosen to be force-stacked
Fixes medical items not stacking correctly when there was multiple of the same item with different resource values

Added additional item types to be force-stacked
Added backpack item limit
Sligfhtly reduce item limit to account for items now stacking
2024-03-08 12:05:43 +00:00
Dev
479898ecab Centralise check for upd object / creation if it doesnt exist into one helper function inside ItemHelper
Some minor formatting updates
2024-03-07 09:18:39 +00:00
Dev
5e3d7e457d Add additional item types to fence always-stack array
Adjust code to filter out all wearable equipment that has slots
Add +1 to items that are always-stackable - ensures items that have no key in `itemStackSizeOverrideMinMax` get incremented
2024-03-06 21:38:00 +00:00
Dev
095fcf08fd Expand fence item force stacking system
Remove redundant multi-stack tracking system
Expand `getSingleItemStackCount()` to check for parent ids too
2024-03-05 10:43:47 +00:00
Dev
8f4df131ac Make use of itemHelper.isOfBaseclasses() inside duplicate fence offer check
Can now handle items that have a blacklisted grandparent
2024-03-05 08:52:21 +00:00
Cj
0740a84f6f [Enhancement] Ability to prevent duplicate fence offers by parentId (!245)
In relation to this QoL issue: https://dev.sp-tarkov.com/SPT-AKI/Issues/issues/547

This PR allows us to prevent fence selling duplicate items by parentId.

It adds a new property to `trader.json` `fence.preventDuplicateOffersOfCategory` its an array that takes parentIds. The scope of this PR only extends to ammo and ammo boxes. It can be expanded upon in the future with no code changes should the need arise.

The reason for this change is because currently fence can have duplicate stacks of identical ammo with different prices, which makes no sense. If you have any questions feel free to ping me on discord.

Co-authored-by: Cj <161484149+CJ-SPT@users.noreply.github.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/245
Co-authored-by: Cj <cj@noreply.dev.sp-tarkov.com>
Co-committed-by: Cj <cj@noreply.dev.sp-tarkov.com>
2024-03-05 08:49:10 +00:00
Dev
472ab0eabd Add keys to fence
Reduce key listing cap to 15k
lower key price the less uses it has
Increase current durability cap of armor to 50% from 1%
Reduce jewlery cap to 40k from 50k (removes gp coins and golden necklace)
2024-02-19 16:58:07 +00:00
Dev
68a78d8bdd Add extra types to BaseClasses and fix typo 2024-02-18 21:10:41 +00:00
Dev
7406ee389e Improve emulation of fence item prices
Specifically medical items with < 100% usages remaining
2024-02-18 20:20:24 +00:00
Dev
21caeed3db Improve fence multi-stack assort handling 2024-02-16 13:41:16 +00:00
Dev
d5627e0627 Rewrote fence itemTypeLimits and itemCategoryRoublePriceLimit
Fixed bug where item limit was off by one
2024-02-15 23:14:31 +00:00
Dev
69870d191e improve preset price multipler calculation - reducces preset prices overall 2024-02-12 23:59:02 +00:00
Dev
973b74bd98 Add ability to control weapon/equipment current durability
Fixed non-armored rigs not showing
Blacklist mk-18
2024-02-10 09:57:44 +00:00
Dev
e915d17019 Reworked fence assort generation and partial refresh
Split item generation values up, separate value for item/equipment/weapon
Fixed more assorts being generated than were being deleted each partial refresh
Added assort item options to discount assort config
2024-02-09 12:39:58 +00:00
Dev
28677f672b Fence changes:
Larger number of weapon presets
Larger stack size for ammos (override stack size of ammo by parent id, not item id)
Removed ammo boxes from blacklist + add max limit of 2
Removed fence debug logging
Make weapon picker check if weapon is on blacklist before adding
Fixed incorrect weapon mod removal check
Reduced chances mods are removed from weapons
2024-02-08 21:58:47 +00:00
Dev
7a33eea672 Small cleanup of fence item removal code -reduce assort size to 140 to ensure its divisible by partialRefreshChangePercent without remainder 2024-02-07 23:44:15 +00:00
Dev
439c412800 Ensure fence assorts are always rounded to nearest integer 2024-02-07 23:17:22 +00:00
Dev
4e20ca6744 Remove debug logging, its scaring too many people 2024-02-07 18:01:00 +00:00
Refringe
42dabc057b
Improved replaceIDs Method in ItemHelper
- Implemented deep cloning of input Items to prevent mutation.
- Reordered parameters: Items (required) now precede PMC data (optional).
- Updated method calls to bring them inline with these changes.
2024-02-06 18:39:06 -05:00
Dev
1101927768 Improve fence price calculation code. Prices now take into account removed item mods + mod durability 2024-02-06 20:44:40 +00:00
Dev
32862866aa Remove some debug logging 2024-02-05 19:53:59 +00:00
Dev
d36593ca57 Rework fence service to handle armor/weapons separately,
made config work with a weapon/equipment min/max value
Improve price filtering system to work with weapons/equipment
2024-02-05 19:52:46 +00:00
Dev
3653ab9f83 Apply a duribility price modifier to items sold on flea 2024-02-05 19:49:42 +00:00
Dev
ce27f58664 FIx weapons/armors not showing on fence 2024-02-05 18:21:02 +00:00
Refringe
90492f3aa2
Formatting
Have you been using the recommended VSCode extensions? ;)
2024-02-02 15:00:21 -05:00
Dev
796d63b3e2 Fix fence item not being removed after purchase 2024-02-02 17:22:12 +00:00
Dev
e6e77d49a5 Cleanup of fence offer generation, no longer errors when buying items from high level fence offer page 2024-02-02 17:15:28 +00:00
Dev
034ac83a10 Improve handling of buying less than max stacksize from fence 2024-02-02 15:56:37 +00:00
Kaeno
e0b5d43fd5 Fix fence generating items with same IDs causing Fence Trader to break client 2024-02-01 21:02:39 +00:00