Commit Graph

234 Commits

Author SHA1 Message Date
TheSparta
723f8db572 Updated dependencies + A few other things (!150)
Initially this was going to be an update to dependencies but it seems i got a little carried away!

Anyways this PR removes 2 unused dependencies (`jshint` and `utf-8-validate`), and 2 other, `del` and `fs-extra` that were replaced by the built-in `fs/promises`.

It also renames all `tsconfig` and `Dockerfile` files, in a way that when viewed in a file tree sorted alphabetically they will be next to each other.

It also updates the typescript target to `ES2022`, and changes moduleResolution from `Node` to `Node10` (this isn't an update, they are the same thing but `Node` is now deprecated).

It also adds the `node:` discriminator to every import from built-in modules.

It also has major changes to the build script, `del` and `fs-extra` were only being used in the build script, it's now using `fs/promises` instead, cleaned up the code from some functions, adds better documentation to a few functions, and renames some gulp tasks and npm scripts to better represent what they actually do.

And finally it updates dependencies, except for `atomically` which can't be updated unless the project switches to ESM.

Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/150
Co-authored-by: TheSparta <thesparta@noreply.dev.sp-tarkov.com>
Co-committed-by: TheSparta <thesparta@noreply.dev.sp-tarkov.com>
2023-10-14 09:01:41 +00:00
Dev
292791aca4 make itemHasBaseClass() more robust against bad input 2023-10-13 16:54:17 +01:00
Dev
3598418f6e Disable filtering out healing items from backpack loot 2023-10-12 14:33:09 +01:00
Dev
db619a30b3 Add boss item blacklist and wire into:
airdrops
scav cases
sealed weapon containers
daily quests

Default boss item filter to on
2023-10-12 11:00:04 +01:00
Dev
a19e322373 Remove debug logging inside addMissingHideoutBonusesToProfile() 2023-10-11 09:01:45 +01:00
chomp
0b67a9a0e9 0.13.5.0 (!147)
Co-authored-by: Dev <dev@dev.sp-tarkov.com>
Co-authored-by: Terkoiz <terkoiz@noreply.dev.sp-tarkov.com>
Co-authored-by: TheSparta <thesparta@noreply.dev.sp-tarkov.com>
Co-authored-by: Refringe <refringe@noreply.dev.sp-tarkov.com>
Co-authored-by: Kaeno <e>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/147
2023-10-10 11:03:20 +00:00
gasmo
8d911ccc19 Fix ballooning recursive function (!120)
The `BotEquipmentModPoolService.generatePool()` method is recursive, but it does not check if the pool it creates already contains data for sub items when it finds them and calls itself on them. This creates substantial bloat in the function that is undetectable to end users, but causes some additional delay when it is called.

I noticed this when using a server mod that allows for less restrictions on mod combinations (as it would hit the system recursion limit and error out) but the bloat still affects vanilla - it takes ~1 minute for all the recursive calls to end, whereas this fix reduces that to <10 seconds.

To fix this, I've moved a block of code into the conditional block that checks if the item we're adding (and its' sub items) are already in the pool before it calls itself.

This is my first pull request, so let me know if I've fudged up somewhere and I'll do my best to fix it.

I submitted a previous request about this, but I removed my name from the commits so I had to delete the branch.

Co-authored-by: gasmo <burr.cameron@gmail.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/120
Co-authored-by: gasmo <gasmo@noreply.dev.sp-tarkov.com>
Co-committed-by: gasmo <gasmo@noreply.dev.sp-tarkov.com>
2023-08-18 14:17:54 +00:00
Dev
e591ea9e8f make setFenceAssort and setFenceDiscountAssort public 2023-08-09 22:04:35 +01:00
Dev
285f65bb8d Only remove item from fence assort if he has items to remove
Add empty assort check to remove function too
2023-08-09 19:20:41 +01:00
Dev
99715f90cd Update JSONs and include end of wipe gift
Add additional method to send localised messages from SYSTEM to player
2023-08-09 14:22:16 +01:00
Dev
6262d74acc Pass the location insurance was lost into sendLostInsuranceMessage()
make use of mailSendService.sendLocalisedNpcMessageToPlayer()
Make use of new `insuranceFailedLabs` array in prapors json data
2023-08-07 22:43:00 +01:00
Dev
ee46d1e6b8 Extend sendLocalisedNpcMessageToPlayer() to allow for custom systemData 2023-08-07 22:40:06 +01:00
Dev
dd26a94ede Nullguard against missing data from client 2023-08-07 19:42:23 +01:00
Dev
74f7ee8e77 Rework usage of filter() into some() 2023-08-07 11:17:46 +01:00
chomp
6a864bffa9 Rework high flea listing price adjuster to be configurable, more item types can be added (!111)
Co-authored-by: Dev <dev@dev.sp-tarkov.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/111
2023-08-06 11:36:07 +00:00
chomp
a962823192 Persist durability changes + faceshield hit values incurred during a raid (!110)
Fixes insured items comin back full durability

Co-authored-by: CWX <CWX@noreply.dev.sp-tarkov.com>
Co-authored-by: Dev <dev@dev.sp-tarkov.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/110
2023-08-05 17:26:16 +00:00
Dev
08c81aff26 introduce itemsDb variable inside repairItemByKit() 2023-08-04 15:59:34 +01:00
Dev
ce65ec1260 Add upd null object check to addMaxResourceToKitIfMissing() 2023-08-04 15:55:59 +01:00
Dev
2a98b0a1b9 Move trader enum checking logic into traderHelper 2023-08-04 11:19:27 +01:00
Dev
07217e9ed0 Further extension of profiel fixing code, deletes more
Clothing, active repeatable quests with bad trader/items, trader purchases from bad traders
2023-08-04 10:25:21 +01:00
Dev
281cba8db5 Prevent randomiseItemUpdProperties() running if the item being randomised has a db item with no _props data 2023-08-04 08:49:22 +01:00
Dev
beb7c5069b Improve profile fixing system
Remove more modded items from profile when config set to true, warn of set to false

Handle weapon presets + messages containing modded items
2023-08-03 14:36:53 +01:00
Dev
cbcd431f09 Fixed new profiles failing to start game during christmas/new years event
Add new function in dialog helper for getting dialogs frm profile - creates empty object if none found

Set gift collection time to 48 hours if none supplied
2023-08-03 12:25:09 +01:00
Dev
cda89084d3 Show error when trader id can't be found in Traders enum
Exit early when sending messages from trader if no trader supplied
2023-08-02 08:29:23 +01:00
Dev
82de7c097d Replace old "evil x" pmc name system with v2 2023-08-01 12:51:40 +01:00
Dev
5b7199b952 Update flea prices + Add sytem for adjusting unreasonable high mod prices on flea 2023-07-30 15:22:19 +01:00
Dev
38b921a7e4 Move gift checks into GiftService.sendPraporStartingGift 2023-07-25 11:17:54 +01:00
Dev
c5332986eb Fixed issues with moving items to sorting table after opening sealed container
Also allow money from sold flea offers to enter sorting table

Remove unused addItem() from InventoryController

Add optional param to inventoryHelper.addItem() to allow use of sorting table, default = off
2023-07-23 12:29:00 +01:00
Dev
618a41fcd9 Add system to make prapor give giffts the first and second day after starting a fresh character
Add functionality to handle gift service to use locale ids instead of raw text
2023-07-22 23:23:42 +01:00
Dev
41ef304d97 Improve seasonal system to give gifts during event
Add additional equipment to PMCs when event is active
2023-07-22 20:07:58 +01:00
Dev
a04113eaa1 Block seasonal items when not inside active season (christmas/halloween so far) 2023-07-22 14:11:47 +01:00
Dev
ab912f519f Fix issue with trader ids not being propigated to the profile 2023-07-22 13:59:21 +01:00
Dev
a09c813358 Add extra check for messages from traders where dialog type is defined 2023-07-22 13:32:37 +01:00
chomp
a7b4ebe316 Rework message sending to support gift system (!106)
Co-authored-by: Kaeno <e>
Co-authored-by: Dev <dev@dev.sp-tarkov.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/106
2023-07-21 17:08:32 +00:00
Dev
a9e6d5d0fe Stub out more of gift service + allow adjustment of sender for dialogs 2023-07-20 21:29:27 +01:00
Dev
4092ff7c9d Add stub of gift service 2023-07-20 21:07:47 +01:00
Dev
c3232ac979 Refactor of InsuranceService
Add two methods to item helper, `getStaticItemPrice()` + `getFleaItemPrice()`

Changed how getItemPrice() works to return handbook price if its 1 rouble, not if its over 1
2023-07-20 16:04:26 +01:00
Dev
a79a5f7aec Allow modders to set item min/max stack size limits for any item on fence 2023-07-20 12:00:24 +01:00
Dev
d1d3674332 Localise warning messages 2023-07-19 13:16:45 +01:00
Dev
129fe0dc97 Localise server errors 2023-07-19 11:00:34 +01:00
Dev
942c079284 Rename all globals.ts interfaces to improve naming consistency 2023-07-18 15:44:14 +01:00
Dev
76804c0326 Replace magic string with enum 2023-07-15 10:58:35 +01:00
Dev
195d0e3b1d Add 'fixes' section to core.json, expose some flags for enabling spt fixes
Added flag to enable deletion of modded items from profile - default is off
Fixed issue where loop would stop checking for modded items after finding the first item
2023-07-15 10:53:08 +01:00
Dev
7a16c7e998 Improvements to skill points given after performing actions:
Item crafting:
HideoutManagement skillpoints give
Intellect skillpoints given

Examining item:
Intellect given

Repairing weapon/armor
Intellect given

Cleanup of hideouthelper + reordering of functions

Flagged rewardSkillPoints() as dupe of PlayerService.incrementSkillLevel()
Flagged incrementSkillLevel() as dupe of QuestHelper.rewardsSkillPoints()
Need to decide which one wins

Added nullguards to incrementSkillLevel() + added optional multiplication by global skillprogression rate
Made it update last access timestamp
2023-07-13 10:26:47 +01:00
Dev
218eb35ecb Implement hallowen trader icon system
Rework DatabaseImporter.loadImages() to take additional parameter
2023-07-12 19:50:33 +01:00
Dev
ad6b94d8a9 Filter out event quests from data prior to sending them to player
Rework season service to use enum instead of magic strings for event names

Add config property to control showing/hiding non-seasonal event quests from player
2023-07-09 14:45:06 +01:00
Dev
8534a35518 Add primorsky ave appt key to handbook with placeholder price of 1 rub 2023-06-26 08:23:08 +01:00
Dev
da6cbee387 Replaced getFleaPriceForItem() check for value = 1 with undefined check + move code above undefined = 1assignment 2023-06-26 08:10:36 +01:00
Dev
0c31719013 Feature: Add code to handle sealed weapon containers when opened in menu
Add handbook price for sealed containers (default of 100rub)
2023-06-20 16:07:05 +01:00
Dev
de1b33b963 improve getFleaPriceForItem() warning message 2023-06-17 11:47:50 +01:00
Dev
cfbe2739f9 Fix issue with insurance message being incorrect
Moved `sendLostInsuranceMessage()` to `insuranceService` + make it read correct id from locale file
2023-06-01 21:24:23 +01:00
Dev
9bf533a1b1 Add additional comments and formatting fixes 2023-06-01 10:46:16 +01:00
Dev
b84d8a66c2 Ensure we hydrate the systemData object before calling addDialogueMessage() 2023-05-27 23:04:39 +01:00
Dev
a4efdf9b43 Revert "Store the location insured gear was lost on + time it was lost against insured items in profile"
This reverts commit 77508ace73.
2023-05-27 22:39:32 +01:00
Dev
77508ace73 Store the location insured gear was lost on + time it was lost against insured items in profile 2023-05-27 22:31:24 +01:00
Dev
1a3c107f0a Remove duplicate method that does same as storeLostGear() 2023-05-27 22:26:58 +01:00
Dev
9f3954cbb2 23043 2023-05-15 17:22:54 +01:00
Dev
f340e55924 Skip adding items to mod pool if item has no _props property instead of just showing error 2023-05-01 15:27:33 +01:00
Dev
685859d57f Refactor addOrIncrementCategory() 2023-04-24 14:19:42 +01:00
Dev
8076ed9b29 Refactor storeLostGear() 2023-04-24 14:03:41 +01:00
Dev
463e33d1b7 Refactor getNumberOfItemsNeededToFillGap 2023-04-24 13:34:40 +01:00
Dev
b563dd3f78 Refactor addPaymentToOutput() 2023-04-24 13:23:50 +01:00
Dev
2c3e61b413 Refactor endOfflineRaid() 2023-04-24 11:57:19 +01:00
Dev
31eb470a08 Make LocalisationService get keys directly from database server 2023-04-23 11:26:11 +01:00
Dev
c20a9d6e36 FIx getFleaPriceForItem() not logging when price was not found 2023-04-23 11:25:42 +01:00
Dev
43d9f6490c Fix: Improve orphaned item checking 2023-04-12 15:41:48 +01:00
Dev
96da3d1c6b nullguard generatePool() function inside BotEquipmentModPoolService 2023-04-11 16:52:07 +01:00
Kaeno
ca931165b2 Fix: Fixed some ragfair issues (!86)
Fixed bug with removing offers from flee and item returning too quickly.
Fixed bug with error message that would show on removal of offers.
Expose property expireSeconds in ragfair.json.

Co-authored-by: Kaeno <>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/86
Co-authored-by: Kaeno <kaeno@noreply.dev.sp-tarkov.com>
Co-committed-by: Kaeno <kaeno@noreply.dev.sp-tarkov.com>
2023-04-06 16:23:52 +00:00
Dev
9a419e80ef Fix: Skip item when slots property is empty during generation of items pool 2023-03-26 16:53:51 +01:00
Dev
32afbffcda Refactor: Move server locates into database folder so they can be accessed/edited by modders 2023-03-25 15:37:50 +00:00
Dev
70e82cbe4e Fix: don't error when leaving raid early 2023-03-23 20:18:53 +00:00
Dev
990c33b9c6 Feature: expose 3 variables to PMC messages: playerLevel/playerName/playerSide 2023-03-22 17:12:19 +00:00
Dev
e2074ffc7a Fix: convert BotLootCache to interface 2023-03-22 14:49:24 +00:00
CZPZ
8c37bc7837 Lint: ts files (!82)
Co-authored-by: alimoncul <alimoncul@gmail.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/82
Co-authored-by: CZPZ <czpz@noreply.dev.sp-tarkov.com>
Co-committed-by: CZPZ <czpz@noreply.dev.sp-tarkov.com>
2023-03-22 14:31:05 +00:00
chomp
d595e26ee6 Feature: Allow PMCs that kill the player to message them a positive/negative message (!81)
Store bots spawned in raid inside cache (`MatchBotDetailsCacheService`)
Clear cache after raid

Co-authored-by: Dev <dev@noreply.dev.sp-tarkov.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/81
2023-03-22 10:25:34 +00:00
chomp
ed4dfc201d Feature: Add ability to whitelist items inside each bots generation object + filter per bot level inside bot.json equipment.randomisation section (!73)
(cherry picked from commit 253b4d0120db8245e6c2e863ab7d2fbdc5196128)

Co-authored-by: Dev <dev@noreply.dev.sp-tarkov.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/73
2023-03-17 18:20:16 +00:00
chomp
611b63a4cd Feature: UseapplyRandomizeDurabilityLoss config property in repairItemByKit() (!72)
Co-authored-by: Dev <dev@noreply.dev.sp-tarkov.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/72
2023-03-17 09:12:47 +00:00
chomp
4434b95621 Feature: reworked calculation of flea price to use the price an item can be sold to a trader for instead of the price a trader sells an item at (!71)
Disable automatic adjustment of items that are below handbook price

Co-authored-by: Dev <dev@noreply.dev.sp-tarkov.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/71
2023-03-15 19:06:03 +00:00
chomp
12c269fb57 Feature: add adjustPriceWhenBelowHandbookPrice to ragfair.json + Add comments to ragfair config (!69)
Co-authored-by: Dev <dev@noreply.dev.sp-tarkov.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/69
2023-03-15 13:28:51 +00:00
chomp
8b23039e7a Feature: Chance chance to send message to per victim instead of per-raid (!65)
Co-authored-by: Dev <dev@noreply.dev.sp-tarkov.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/65
2023-03-13 15:23:34 +00:00
chomp
08b760cf4c Feature: expand PMC response system to include different message suffixes (!64)
Co-authored-by: Dev <dev@noreply.dev.sp-tarkov.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/64
2023-03-13 14:02:39 +00:00
chomp
1137912d51 Feature: Add system that allows PMCs to send text messages to player post-raic. Can be positive or negative (!40)
Co-authored-by: Dev <dev@noreply.dev.sp-tarkov.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/40
2023-03-08 13:26:32 +00:00
Dev
3d849b427b Squashed 22 commits in an attempt to fix Gitea object bloat 2023-03-05 22:02:56 +02:00
Dev
e1310d74ca Add Repo 2023-03-03 15:23:46 +00:00