Commit Graph

2754 Commits

Author SHA1 Message Date
Dev
e176b0ae45 Refactored applyMoneyBoost() to improve readability + apply alteration to reward.value 2024-06-17 17:45:48 +01:00
Dev
1db9aa3243 Prevented gp coin repeatable reward falling below 1 2024-06-17 17:44:34 +01:00
Dev
996e567959 Added nullguard to getTimeElapsedSinceLastServerTick() 2024-06-17 16:43:12 +01:00
Dev
383ccf09d7 Added nullguard protection to serialize() for bundle loading 2024-06-17 15:35:49 +01:00
Dev
d315414136 Further improvements to setRandomisedGameVersionAndCategory() to handle unheard profiles the same as live 2024-06-17 10:23:13 +01:00
Dev
020c30d55b Added M48 Tactical Kukri to PMC loot blacklist 2024-06-17 10:00:22 +01:00
Dev
357848ba9f Fixed some PMCs not having their game version flair when they kill you 2024-06-17 09:57:47 +01:00
Dev
e100c29296 Removed need for a separate chosenGameVersion property 2024-06-17 09:43:23 +01:00
Dev
86380e845a Replaced hard-coded lavatory check for generic check of areas needsFuel property 2024-06-17 09:28:59 +01:00
Dev
4094b7ecff Fixed getAccountTypeAdjustedTraderPurchaseLimit() not applying to unheard profiles
Created `GameVersions` enum and replaced all magic strings with it
2024-06-16 21:22:28 +01:00
Dev
04dee496eb Updated niki to have the best account type 2024-06-16 21:14:24 +01:00
Dev
6f646d03e8 Adjusted PMC game version weights 2024-06-16 21:11:17 +01:00
Dev
df69b229b3 Reworked bot generation to pass game version into generateEquipment()
`generateAndAddEquipmentToBot()` now handles pockets separately, flags UhD pockets as not to gen mods as for some reason it has slots 😕
Use this data to adjust the pocket tpl chosen for `unheard_edition`

Add pocket loot weightings of 5 + 6 items for unheard_edition PMCs
2024-06-16 21:09:59 +01:00
Dev
928f9068a3 Adjusted PMC loot generation to allow for 1x2 sized items to be added to the pocket pool to account for UhD bots' large pockets 2024-06-16 18:52:42 +01:00
Dev
1546bbfc16 Replaced magic string with enum value 2024-06-16 18:44:22 +01:00
Dev
8f3a065e2d Replaced bad id with correct value for cultist clothing on PMCs 2024-06-16 18:43:28 +01:00
Dev
158258a398 Added masterMod type to single stack only for ragfair
barrels/pistol grips/handguards/receivers
2024-06-16 17:45:14 +01:00
Dev
e793b0bc63 Fixed nullref error on repeatable refresh click event
Fixed all profiles having access to free repeatable refreshes

Fixed newly created profiles generating with 0 free refreshes regardless of game version
2024-06-16 10:58:35 +01:00
Dev
d0aca73611 Added all dogtags to rewardItemBlacklist 2024-06-16 09:39:55 +01:00
DrakiaXYZ
6648b1ed4b Add EOD/TUE dogtags to more places (!365)
- PMC Loot blacklist
- Repeatable quest hand in whitelist
- Fence purchase blacklist

Co-authored-by: DrakiaXYZ <565558+TheDgtl@users.noreply.github.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT/Server/pulls/365
Co-authored-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
Co-committed-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
2024-06-16 08:34:05 +00:00
DrakiaXYZ
edfe995c52 Initial implementation of an ItemTpl and Weapon enum generator (!364)
ItemTplGenerator will create a full ItemTpl.ts and Weapons.ts file with all items and weapons respectively
Renamed WeaponTypes to Weapons to better indicate its new format
Updated all references to these enums to use the new names
New npm command `npm run gen:items` to run this tool

Co-authored-by: DrakiaXYZ <565558+TheDgtl@users.noreply.github.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT/Server/pulls/364
Co-authored-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
Co-committed-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
2024-06-16 08:33:01 +00:00
Dev
66c7ff30b0 Added UhD gamma container to UhD profile templates 2024-06-15 21:22:29 +01:00
Dev
561ecdd790 Updated bot generator to add UHD pockets to UHD PMCs 2024-06-15 17:42:02 +01:00
Dev
3fe1e47c30 Update handbook JSON
Updated punisher part 6 + friend from the west + easy money part 1
2024-06-15 17:41:36 +01:00
Dev
72b0ce324e Extracted processExpiredQuests() from getClientRepeatableQuests() 2024-06-15 13:29:22 +01:00
Dev
299586d36a Improved implementation of daily quest reward system
Fixed repeatables vanishing after first generation
2024-06-15 13:28:25 +01:00
Dev
bc3649d2a1 Fixed issue where server would enter infinite loop when selling item to trader and stash contained no money 2024-06-14 19:18:55 +01:00
Dev
31a19852c8 Enabled IsStreamerModeAvailable for dev profiles 2024-06-14 18:46:47 +01:00
Dev
12444b025e Fixed incorrect dogtag return 2024-06-14 15:41:02 +01:00
Dev
277925732f Added system to allow per-trader starting standing values 2024-06-14 15:40:27 +01:00
Dev
da04065d42 Added game version specific dogtags to PMC bots
removed dogtags from `baseClasses` and placed in `ItemTpl`
2024-06-14 14:38:30 +01:00
Dev
7566b59826 Add Charisma to EoD profiles 2024-06-13 21:00:09 +01:00
Dev
c2489c6fe4 Updated Unheard profiles to have Charisma level 3 on creation 2024-06-13 20:36:02 +01:00
Dev
689ccd69fd Added cultist jacket clothing to PMCs 2024-06-13 20:15:22 +01:00
Dev
37b8ad7f44 Added Cultist jacket clothing to unheard edition 2024-06-13 20:13:34 +01:00
Dev
efddaf135b Updated USEC ragman clothing 2024-06-13 19:32:52 +01:00
Dev
646745c5ef Added insurance reduction by game edition check 2024-06-13 19:21:00 +01:00
Dev
b34a8ee1f1 Updated JSONS 2024-06-13 19:19:51 +01:00
IsaacSin
58ee2c66d3 Fix GP coin ragfair offers being excluded by "Exclude bartering offers" filter. (!363)
BSG now considers GP coin to be a currency.
Commit 4788f6b407 (diff-d1c96eaf446b0afaf70c62191c7a688471fca50c) already added GP coin to the `Money` enum, but it needs to be added to `PaymentHelper.isMoneyTpl()` to prevent it from being filtered by the barter filter as with other money offers.
See attached screenshots for a demonstration of SPT vs live behavior.

Reviewed-on: https://dev.sp-tarkov.com/SPT/Server/pulls/363
Co-authored-by: IsaacSin <Isaacgsds@gmail.com>
Co-committed-by: IsaacSin <Isaacgsds@gmail.com>
2024-06-13 13:28:37 +00:00
Dev
9e158b0ecc 30547 2024-06-13 14:08:09 +01:00
Dev
f8bd65ed90 Replaced various array.find() with array.some()
Rewrote `tagItem()` to use `.find()`
2024-06-13 13:41:29 +01:00
Dev
3327bc916a Renamed functions to better explain what they do 2024-06-13 11:05:10 +01:00
Dev
8c05345b85 Replaced various magic strings with enum values
Added `itemHelper.getItemFromPool()`
2024-06-13 10:53:07 +01:00
Tyfon
836910c1d5 Implement Ragfair sort by barter (!362)
Not that anyone was clamoring for this, but I noticed it was missing.

Reviewed-on: https://dev.sp-tarkov.com/SPT/Server/pulls/362
Co-authored-by: Tyfon <tyfon7@outlook.com>
Co-committed-by: Tyfon <tyfon7@outlook.com>
2024-06-13 09:29:48 +00:00
Dev
3c0887172e Fixed MARK_OF_UNHEARD incorrectly adjusting insurance return time
Added `ItemHelper.hasItem()`
2024-06-13 09:47:03 +01:00
Dev
6c1935f93f Added nullguard when purchasing trader assort with 0 items 2024-06-12 23:07:38 +01:00
Dev
da46a9cc93 Added ref to traders dictionary inside ragfair config 2024-06-12 21:34:35 +01:00
Dev
4e311da111 Refactored InraidHelper 2024-06-12 20:42:29 +01:00
Dev
1caff10d35 Refactoring InventoryHelper 2024-06-12 20:25:27 +01:00
Dev
aac2142706 Refactoring of small functions for better readability 2024-06-12 19:33:55 +01:00
Dev
9d79aa70eb Moved map marker logic out of InventoryController and into its own MapMarkerService 2024-06-12 19:32:27 +01:00
Dev
292dadc55e Prevented NRE being thrown when no weapon found inside getSealedContainerWeaponModRewards() 2024-06-12 12:41:09 +01:00
Dev
16f170f28e Minor adjustments to profileHelper, launcherController and profileController classes 2024-06-12 10:47:01 +01:00
Dev
f8292c5ea7 Updated map exfil and statics data 2024-06-12 09:58:17 +01:00
Dev
3bc331c04e Added extracts and static container mappings for sandbox_high 2024-06-12 09:29:38 +01:00
Dev
624737a036 Regenerated bot JSONs 2024-06-11 19:58:30 +01:00
Dev
e937fc4a18 Added various quest items to forcedLootSingleSpawnById dictionary 2024-06-11 16:33:11 +01:00
Dev
6c5cc40e0f Regenerated loot after various generation errors were fixed 2024-06-11 16:29:36 +01:00
Dev
d7e9135d6f Updated loot files + include new quest items 2024-06-11 13:27:38 +01:00
Dev
a34a31f5dc Small refactor of createMagazineTemplate() 2024-06-10 22:24:08 +01:00
Dev
53c76a098f Improved Recursive cloner implementation to preserve null state of data 2024-06-10 18:25:58 +01:00
Dev
3341faacdf Adjusted high-level guns to be more common on level 30+ PMCs
Blacklisted some high level weapons from low level PMCs (mk-18, GL)

Adjusted what weapons early/mid PMCs use
2024-06-10 12:10:46 +01:00
Dev
7c1613c331 Added Ironsights to SMG attachment whitelist 2024-06-10 11:50:23 +01:00
Dev
c8154eaacd Removed unused revenge data from bot config 2024-06-10 11:37:49 +01:00
Dev
dd8824a042 Added additional revenge data to bot config 2024-06-10 11:32:38 +01:00
Dev
ca642b94a7 Reworked gift sending/storage sytem to not store the max sends in profile and use the existing gift data
Fixed `sendPraporStartingGift()` not sending gifts
Expanded `GiftService` to include methods to get gift by id / all gifts / all gift ids
2024-06-09 09:13:38 +01:00
Dev
19bcfe2e87 Cleaned up traderBuyRestrictionReached() 2024-06-08 19:49:30 +01:00
Dev
89459b9e5b Small cleanup of setTraderOfferPurchaseLimits() 2024-06-08 19:38:48 +01:00
Dev
f263f8b0cb Added implementation of BSG feature Increased personal trader item limits by 20% for Edge of Darkness and The Unheard edition owners who upgraded from Edge of Darkness
This fixes EoD/UH/DEV profiles throwing errors when purchasing items near their trader BuyRestrictionMax limits
2024-06-08 19:38:16 +01:00
Dev
5d3ea2ef83 Adjusted addBuffToItem() to also include ARMOR_PLATE items 2024-06-08 17:58:12 +01:00
Dev
75a34f5ca2 Expanded gift system used by spt bot
Gifts can be given multiple times
stash expansions are limited to 5 max by default
dev balaclava can be given 5 times, majority of gifts are 1 use still

Updated data structure to persist gifts received, this will break profiles
2024-06-08 17:54:05 +01:00
Dev
f475d4f6f3 Added ARMOR_PLATE type to getItemSkillType() check 2024-06-08 17:07:14 +01:00
Dev
e39654be6a Simplified generateInventoryId() 2024-06-08 16:16:36 +01:00
Dev
b645e6f51b Added Error throwing when calling getConfig() and a config cannot be found 2024-06-08 12:56:24 +01:00
Dev
96acf623de Fixed ammo boxes not having a location property 2024-06-08 12:00:55 +01:00
Dev
2fea0d17de Fixed altering SelectedMemberCategory in settings page not saving 2024-06-08 09:15:59 +01:00
Dev
8745caf86d Refactored getHighestSellToTraderPrice() 2024-06-07 23:14:18 +01:00
Dev
3f125593a7 Refactor BotGenerator() 2024-06-07 22:41:30 +01:00
Dev
d9f8ba653a Refactoring of RepeatableQuestController 2024-06-07 21:33:09 +01:00
Dev
5cae90c726 Fixed Ref assorts lacking upd objects for child items 2024-06-07 20:24:03 +01:00
Dev
bb4bfc6dcb Refactoring of generateReward() 2024-06-07 20:19:58 +01:00
chomp
4788f6b407 30473 (!361)
Co-authored-by: Dev <dev@dev.sp-tarkov.com>
Co-authored-by: Kaeno <kaeno@noreply.dev.sp-tarkov.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT/Server/pulls/361
2024-06-07 18:25:27 +00:00
chomp
b3b1f76a77 Migrate PMCs (sptBear/sptUsec) To Bsg Types (pmcBEAR/pmcUSEC) (!360)
Co-authored-by: Dev <dev@dev.sp-tarkov.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT/Server/pulls/360
2024-06-06 16:59:44 +00:00
Dev
75b2661f72 Moved pity gift code into chooseMessage() to group similar functionality together 2024-06-06 12:24:12 +01:00
Scuvy
e0717daa99 Send pity gift codes to player when player dies to other PMC's (!359)
* This is to address [Issue 652](https://dev.sp-tarkov.com/SPT/Issues/issues/652).
* Added messages with gift codes inside project/assets/database/locales/server/en.json
* Update pmcchatresponse.json to include new pity message type.
* Update logic in project/src/services/PmcChatResponseService.ts to now account for pity messages that are sent.
The message's %giftcode% will now be replaced with a random gift code from assets\configs\gifts.json
* Example:
  - ![image](/attachments/ade2686a-8dcb-4c11-9457-88e003a47416)

Co-authored-by: Scuvy <Scuvy@gmail.com>
Co-authored-by: chomp <chomp@noreply.dev.sp-tarkov.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT/Server/pulls/359
Co-authored-by: Scuvy <scuvy@noreply.dev.sp-tarkov.com>
Co-committed-by: Scuvy <scuvy@noreply.dev.sp-tarkov.com>
2024-06-06 11:14:38 +00:00
Dev
ccb351a2dd Expanded craft search code to also check for craft count 2024-06-06 11:34:03 +01:00
Dev
abdee0bb75 Removed broken quest prevent login 2024-06-06 11:33:13 +01:00
Dev
4833b2c9ad Added 2 quests (hustle + unknown) 2024-06-06 08:40:26 +01:00
Dev
af76a068b4 Fixed incorrect logging values 2024-06-05 21:50:27 +01:00
Dev
2a9cbab762 Fixed issue with PMC post-raid messages not being sent
Caused by bot match cache regression resulting in bot data not being stored during generation
2024-06-05 21:50:07 +01:00
Dev
90b9fac842 Updated traders items_buy_prohibited data 2024-06-04 19:55:03 +01:00
Dev
bcb40c8333 Fixed hideout crafts causing server failure 2024-06-04 19:23:37 +01:00
Dev
013634f466 Added Documents with decrypted data to lootable blacklist 2024-06-04 19:03:47 +01:00
Dev
0574392f28 Added new lootable item blacklist and added checks to bot and map loot generator code
Remove event quest item from global blacklist and move to loot item blacklist
2024-06-04 18:57:36 +01:00
Dev
5b4b0c1471 Introduced Set to speed up calls to isItemBlacklisted() 2024-06-04 18:32:22 +01:00
TetrisGG
bef57f4f58 Fix Tournament Profile having access to Fence (!358)
Fixes SPT/Issues#677
Fence should be locked in Tournament Profile.
Setting Fences base.json `unlockedByDefault` to `false` makes the profile able to lock Fence

Code from Client:
Shows that unlockedByDefault overrides whatever is written in the Profile data on init.
![image](/attachments/7336f96c-31c0-4ea3-848d-65320cf41340)

Working Screen from Game:
![image](/attachments/b94f368e-91c4-4641-a31e-8b0d8c60d239)

Reviewed-on: https://dev.sp-tarkov.com/SPT/Server/pulls/358
Co-authored-by: TetrisGG <dmiller2606@gmail.com>
Co-committed-by: TetrisGG <dmiller2606@gmail.com>
2024-06-04 17:20:10 +00:00
Dev
dde78b30eb Cloned blacklist data before returning it 2024-06-04 18:18:52 +01:00
Dev
83dd0ed439 Added 660bbc47c38b837877075e47 - Encrypted flash drive to blacklist 2024-06-04 17:08:09 +01:00
Dev
2a587d80d8 Added system to filter blacklisted items from static and dynamic loot positions
Moved seasonal item filter code to different position inside `generateDynamicLoot()`
2024-06-04 17:06:50 +01:00
Dev
5131fb2dcc Flagged The Tarkov Mystery as event quest + added to event quest array + added missing icon 2024-06-04 16:17:20 +01:00