Commit Graph

2046 Commits

Author SHA1 Message Date
DrakiaXYZ
dd05fe743f Fix double quotes in container tags (!222)
As far as I can tell, there's no need to strip backslashes, as they should only exist to escape other characters (Double quotes, for example). Stripping them will more often than not result in invalid JSON

NOTE: Due to the loss of git history, I'm unable to see _why_ exactly this replacement was done in the first place. There may be some valid reason I'm not thinking of. If this is the case, I can look at other solutions

Resolves: https://dev.sp-tarkov.com/SPT-AKI/Issues/issues/488
Co-authored-by: DrakiaXYZ <565558+TheDgtl@users.noreply.github.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/222
Co-authored-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
Co-committed-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
2024-02-13 15:55:11 +00:00
Dev
7975ebafda Pass full profiles into mergePmcAndScavEncyclopedias 2024-02-13 13:07:26 +00:00
Dev
2e3f624131 Update PMC encyclopedia post-raid
Update scav encyclopedia during generation to be pmc encyclopedia

Remove redundant return statements from function
2024-02-13 12:20:30 +00:00
Dev
1c63d85649 merge encyclopedia dicts together post-raid 2024-02-13 12:10:17 +00:00
Dev
5f4dd8bb65 Merge branch '3.8.0' of https://dev.sp-tarkov.com/SPT-AKI/Server into 3.8.0 2024-02-13 09:05:49 +00:00
Dev
94a9f6e1a9 map loot update 2024-02-13 09:03:53 +00:00
DrakiaXYZ
bf60fb7ea9 Fix flea armor not having proper random durability (!223)
Clone flea items prior to passing them off to the createSingleOfferForItem method

This change results in more armor on the flea having 100% durability, and less having identical non-max durability values

Resolves: https://dev.sp-tarkov.com/SPT-AKI/Issues/issues/447

Co-authored-by: DrakiaXYZ <565558+TheDgtl@users.noreply.github.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/223
Co-authored-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
Co-committed-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
2024-02-13 08:34:55 +00:00
Dev
136117a552 Reduce playerScavHostileChancePercent to 15% 2024-02-13 00:03:53 +00:00
Dev
e396426c7f Reduce preset multiplier down to 1.3 2024-02-13 00:02:30 +00:00
Dev
69870d191e improve preset price multipler calculation - reducces preset prices overall 2024-02-12 23:59:02 +00:00
Dev
6709300e93 Update moveItem() to better handle when the item being moved has no slotId 2024-02-12 23:14:04 +00:00
Dev
c4520ddbe9 Protect again null quest object when trying to send a message during quest failure 2024-02-12 21:23:20 +00:00
Dev
8dd38d633e update bot difficulty 2024-02-12 20:11:07 +00:00
Dev
278d91f84f End snow on same say as live, rip snow 2024-02-12 18:46:08 +00:00
Dev
0fb0d0bd60 Cache bots sent to client to spawn in raid, cleared post-raid 2024-02-12 17:11:23 +00:00
Dev
456220767e Do not reduce scav rep after killing a traitor scav 2024-02-12 17:08:21 +00:00
Dev
5dacc1419e Do not count price of soft inserts towards armor prices when listed on flea 2024-02-12 16:39:20 +00:00
Dev
7b1fd03f1d Delete amulet from inventory when charges is 0 or below 2024-02-12 16:00:25 +00:00
Dev
ae1bc9ad3a Nullguard against items without a slotid 2024-02-12 15:33:16 +00:00
Dev
d7e37b0218 make ICultistAmulet optional 2024-02-12 15:15:20 +00:00
Dev
430437974c Add comment 2024-02-12 15:10:45 +00:00
Dev
77baeeee42 Decrement cultist amulet uses after each raid by one 2024-02-12 15:08:08 +00:00
Dev
e9af6e3868 Update JSON + add new properties 2024-02-12 15:06:51 +00:00
Dev
86a54dd566 Update version string for 28744 2024-02-12 11:33:51 +00:00
Dev
e43b7d7058 Update flea prices 2024-02-12 09:37:31 +00:00
Dev
8fe30f6fd7 Remove TerraGroup Labs access keycard from Shturmans backpack as its already inside SpecialLoot 2024-02-12 09:34:53 +00:00
Dev
fdcecdd942 Remove Shturman's stash key from Shturmans pocket as its already inside SpecialLoot 2024-02-12 09:33:52 +00:00
DrakiaXYZ
28b0a55732 Fix/add some trader services data for LK Services (!221)
- Fix data type for TraderServiceModel
- Add LK Service price/item data

Co-authored-by: DrakiaXYZ <565558+TheDgtl@users.noreply.github.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/221
Co-authored-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
Co-committed-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
2024-02-12 09:21:48 +00:00
Dev
f70bee2fd2 Adjust fence weaponDurabilityPercentMinMax values to better match live 2024-02-11 22:04:04 +00:00
Dev
28c9ddad9c Fixed repair kits not giving skill points when repairing armors 2024-02-11 21:24:58 +00:00
Dev
b2b45f2972 Slightly reduce expired offer count threshold 2024-02-11 19:51:49 +00:00
Dev
872c6282ec Fix being unable to sell items on flea that have been adjusted via itemPriceMultiplier property
Take into account adjustment when calcualting sell chance
2024-02-11 19:50:44 +00:00
Dev
805190abb4 Merge branch '3.8.0' of https://dev.sp-tarkov.com/SPT-AKI/Server into 3.8.0 2024-02-11 19:22:20 +00:00
Dev
575f467f78 Tie random weapon reward to rouble reward
Prevents daily quests from choosing high-level weapons as a reward for low level dailies
2024-02-11 19:22:00 +00:00
Kaeno
28ab029ef3 Fixed ammo boxes again. location starts at highest count instead of lowest 2024-02-11 17:31:52 +00:00
Dev
9e70b1135c Reverse ammo stacks in ammo boxes to fix issue with opening ammo boxes in raid - Thanks to Kaeno for investigation + fix 2024-02-11 15:15:21 +00:00
Dev
71f308c288 Cleanup of default presets being added to container code 2024-02-11 15:06:03 +00:00
Dev
baa2da9b8e Merge branch '3.8.0' of https://dev.sp-tarkov.com/SPT-AKI/Server into 3.8.0 2024-02-11 14:59:33 +00:00
Dev
bba30d616b Fix durability filtering on flea not working for helmets / armors
Updated  `getItemQualityModifierForOfferItems()` to return root items quality modifer when its a weapon
Fixed `getItemQualityModifierForOfferItems()` assuming quality started at 1
2024-02-11 14:59:25 +00:00
Kaeno
a4f1cb23d9 Temporary fix for containers having missing items. due to Armor not being generated correctly 2024-02-11 14:45:01 +00:00
Dev
da6244e1ac Improvements to calculateFenceStandingChangeFromKillsAsScav() - should properly handle additional rep loss when over 6 fence rep 2024-02-11 13:03:38 +00:00
Dev
a1a68b4282 Limit WZ and normal wallet to 1 for marksmen 2024-02-11 12:28:47 +00:00
Dev
e38921ca1e Add generation weights for PMCs level 15-22
Make loot more representative of a lower level player
2024-02-11 12:27:02 +00:00
Dev
5ec01d51c7 swap let to const 2024-02-11 12:16:08 +00:00
Dev
9819ac3737 Mimic live behaviour for ammo box locarion values 2024-02-11 12:12:27 +00:00
Dev
b5639f481f More logging 2024-02-11 10:51:00 +00:00
Dev
a0083f281e Log fence rep post-raid 2024-02-11 10:39:31 +00:00
Dev
ff1e80e302 Add endpoint to configure trailtor scavs 2024-02-11 10:32:13 +00:00
Kaeno
f2bcbbf8ab Updated forgotten TaskConditionCounters for scav TaskConditionCounters migration code. 2024-02-11 00:26:45 +00:00
Dev
f23167389a Merge branch '3.8.0' of https://dev.sp-tarkov.com/SPT-AKI/Server into 3.8.0 2024-02-10 23:28:49 +00:00
Dev
1858fe5bd5 Fix pockets being lost on death 2024-02-10 23:28:36 +00:00
Kaeno
44034ba2f8 Remove Gifter from shoreline. + Automatic linting 2024-02-10 17:39:17 +00:00
Dev
fea17cf3db Pass output into more event functions 2024-02-10 16:32:37 +00:00
Dev
f7a16e15f9 Reset client output object data at end of function, instead of at start - fixes issue where old profile change data persists in memory after player logs out and into another profile
Pass output into failquest function
2024-02-10 16:23:26 +00:00
Dev
4232ba6db1 Pass output object into various other inventroy actions 2024-02-10 16:08:42 +00:00
Dev
9fe739debb EXPERIMENTAL - pass output object into handleItemEvent and into move function 2024-02-10 15:44:21 +00:00
Dev
d436534ea0 Fixed flea quality filters not applying to weapons 2024-02-10 15:06:20 +00:00
Dev
5f7a03926f Increase tarkovstreets loot when scavving 2024-02-10 14:43:07 +00:00
Dev
7cb32faea3 Disable bossTagilla brain for PMCs on sandbox 2024-02-10 14:40:52 +00:00
Dev
fab00ad11b Merge branch '3.8.0' of https://dev.sp-tarkov.com/SPT-AKI/Server into 3.8.0 2024-02-10 14:30:21 +00:00
Dev
a7ae3a2ff3 Reduce the max reduction of raid time for scavs on woods 2024-02-10 14:29:13 +00:00
Kaeno
882c1d6082 Allow Scavs to examine items and retain their Encyclopedia (Examined Items) 2024-02-10 14:17:33 +00:00
Dev
3b3105a376 Add more PMC spawns to woods 2024-02-10 13:00:46 +00:00
Dev
bd79b57267 Remoe broken Pockets option from lostondeath.json 2024-02-10 12:36:06 +00:00
Kaeno
963e0a8739 Dont inform client when hall of fame is upgraded as BSG doesnt inform the client upgrade has occurred, Prevents client from locking up 2024-02-10 12:30:54 +00:00
Dev
b963e233f7 Update JSONs 2024-02-10 12:08:38 +00:00
Dev
a20e5c1700 Add missing plates to PMCs for IOTV Gen4 body armor (Assault Kit) 2024-02-10 10:26:47 +00:00
Dev
b34edb0d3b Adjustments to profile saving logging logic
Bundle up profile save time and display in one line + do not log to file
Don't log when each profile is saved
Do not log to file how much fuel is left in generator
2024-02-10 10:07:40 +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
DrakiaXYZ
9573290778 Fix daily quest weapon rewards (!219)
The rewardItem.target has to be set after the item IDs are regenerated, so it gets the new root item ID

Resolves: https://dev.sp-tarkov.com/SPT-AKI/Issues/issues/470

Co-authored-by: DrakiaXYZ <565558+TheDgtl@users.noreply.github.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/219
Co-authored-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
Co-committed-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
2024-02-10 08:54:12 +00:00
Dev
2c12d7c2c4 Give t-7 thermals a 5x price boost on flea 2024-02-09 23:37:11 +00:00
Dev
97cc3f1de3 Fix manually adjusted items being down-priced by unreasonableItemPriceChange code 2024-02-09 23:36:55 +00:00
Dev
fbd371b5c7 Fix code that would detete majority of quest progress from profile 2024-02-09 23:18:23 +00:00
Dev
d3f66a85a0 Allow unreasonable item price code to work with item sub types 2024-02-09 22:28:25 +00:00
Dev
4b9f2ddbd1 Fixed 2 issues with collecting bitcoins;
Only check if progress was only `great than` craft time, not `great than or equal to`
Didn't take into account developer accounts have reduce craft timers
2024-02-09 22:01:19 +00:00
Dev
b6ff89cd46 Fence config changes:
Fewer assorts on discount assort
Fewer weapons/armors on discount assort
Higher min dura for presets
Higher max dura for presets
Reduce price limit for marksmen rifles
2024-02-09 17:42:51 +00:00
Dev
b30a34b3f5 Add PR-Taran police baton to PMC loot blacklist 2024-02-09 17:26:16 +00:00
Dev
3092d2e1b2 Add PR-Taran police baton to PMC melee pool 2024-02-09 17:24:44 +00:00
Dev
eeef5a1d92 Comment improvements 2024-02-09 17:13:58 +00:00
Dev
1cfc7f2a16 Fixed issue with server not properly handling item rotations when trying to fit an item into a container
Added small optimisations to skip full rows when looking for a free slot to put item in
Added small optimisation to skip looking for a free slot when entire container is full
Fixed error messages not properly being passed back up chain
2024-02-09 17:13:19 +00:00
Dev
8b6de1a7ea Rename splitStackIntoSmallerStacks to splitStackIntoSmallerChildStacks 2024-02-09 15:57:54 +00:00
Dev
8e80fa6350 Removed unused function hydrateAmmoBoxWithAmmo() 2024-02-09 15:48:57 +00:00
Dev
4a8c12dc59 Improve canPlaceItemInInventory() logging
Increase attempts to fit into container to 3 from 2
2024-02-09 15:18:49 +00:00
Dev
5a8317b8a1 Correctly pass item rotation when calling fillContainerMapWithItem()
Removed unused legacy function `placeItemInInventoryLegacy()`
Dont return stash layout as result in `fillContainerMapWithItem()`

Added small optimisation to `fillContainerMapWithItem()`, check if all slots of failled before trying to fit item
2024-02-09 15:13:49 +00:00
Dev
791ebd4693 Moveed handling of unreasonableModPrices into ragfair code instead of on game start
Lowered weapon mod threshold from 9x to 6x
2024-02-09 14:13:48 +00:00
Dev
a16557b0e7 Merge branch '3.8.0' of https://dev.sp-tarkov.com/SPT-AKI/Server into 3.8.0 2024-02-09 13:32:23 +00:00
Dev
44f835fad4 Extend snow event to 15th 2024-02-09 13:31:56 +00:00
DrakiaXYZ
cc6061b885 Resolve issue caused by quests pulling loose ammo from magazines (!218)
If the item handed in for a quest has a numeric `location` property, this indicates it's inside a magazine or other "sequential" container.
Re-calculate the `location` property of all children in the items parent in this case, to avoid gaps which break the profile

Resolves: https://dev.sp-tarkov.com/SPT-AKI/Issues/issues/455

Co-authored-by: DrakiaXYZ <565558+TheDgtl@users.noreply.github.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/218
Co-authored-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
Co-committed-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
2024-02-09 12:53:44 +00:00
Dev
74ea69ffe6 Remoe unused enabled properties from ragfair config chancePercent is used instead 2024-02-09 12:46:23 +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
b7b08f99f2 Add functionality to apply a multipler to individual dynamic offers on flea
Use new functionaliy to apply a large multipler to `5.45x39mm BP gs ammo pack` items to match live data
2024-02-09 09:56:18 +00:00
Dev
e95ec8c790 Flea price update 2024-02-08 23:10:38 +00:00
Dev
8015c36468 Fixed fuel having incredibly high values on ragfair 2024-02-08 23:02:30 +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
596785eda9 Added support for ammo box hydration on fence 2024-02-08 21:31:46 +00:00
Refringe
2df185bbbe
Style Lint Run
`npm run style:fix`
2024-02-08 16:00:08 -05:00
Refringe
115f217c02
Refactor Insurance Processing for Gear Lost in Raids
Notable coding Changes:
- Added `getRootItemParentID` method in `InsuranceService` to standardize the determination of the root insurance container.
- Added `IInsuranceEquipmentPkg` model for structuring insurance packages, a type used to store insurance item data before it's saved in the profile.
- Added `HashUtil` in `InsuranceController` and `InsuranceService` for generating an ID for the root insurance container in the case that the root ID cannot be found.
- Updated and normalized item map generation and usage across `InsuranceService` and `InsuranceController`.
- Updated `ItemHelper` with new methods `adoptOrphanedItems` and `generateItemsMap`, facilitating better management of item relationships and efficient item look-ups.
- Updated `InsuranceController.findItemsToDelete` and related methods to use the new `rootItemParentID` parameter to ensure that all root level items share the same parent ID.
- Updated logic in `InsuranceService` for creating insurance packages and handling orphaned items.

Uh-huh, but what would you say you do here?
- Resolves an issue that arose when `lostondeath.json` equipment configuration options were set to `false`. On death, the equipment's children items would be sent back to the player through insurance, duplicating them.
- Resolves an issue that prevented items from appearing in an insurance return even though they passed an insurance roll.
- Improved debug logging.

Remaining Oopses:
- We do not have data on items that were dropped in a raid. This means we have to pull item data from the profile at the start of the raid to return to the player in insurance. Because of this, the item positioning may differ from the position the item was in when the player died. Apart from removing all positioning, this is the best we can do.

Resolves #425
2024-02-08 15:57:04 -05:00
Dev
2d27aaf545 Update assorts 2024-02-08 20:42:40 +00:00
Dev
228327d5ad update quest json 2024-02-08 20:15:53 +00:00
Dev
1b900b2019 Merge branch '3.8.0' of https://dev.sp-tarkov.com/SPT-AKI/Server into 3.8.0 2024-02-08 16:53:33 +00:00
Dev
c097914e45 Add system to ignore armor plate slots when removing plates not suitable for flea 2024-02-08 16:53:14 +00:00
Krinkels
93b91a071a Editing other localizations (!217)
In the project/assets/database/locales/server/en.json file, in the "launcher-profile_spteasystart" key, the description of the profile being created has changed from level 69 to level 15. The description of this key has been corrected in other localizations

Co-authored-by: Krinkels <krinkels@krinkels.org>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/217
Co-authored-by: Krinkels <krinkels@noreply.dev.sp-tarkov.com>
Co-committed-by: Krinkels <krinkels@noreply.dev.sp-tarkov.com>
2024-02-08 16:20:52 +00:00
Dev
7d97bc4945 Correctly generate ammo boxes for dynamic/static/bot loot with one stack of cartridges. It seems the 0.14 client update now handles ammo boxes having a single stack and properly splits the ammo inside it 2024-02-08 16:01:38 +00:00
Dev
810cd8abd6 Improve flea offer item durability randomisation
Expanded `condition` config system to separate out current and max durability
Added missing armor config settings
Rewrote weapon durability method `randomiseWeaponDurabilityValues()` to do work similar to `randomiseArmorDurabilityValues()`
Fixed various items being classified as ARMORED_EQUIPMENT and using the wrong category config values
Moved ARMORED_EQUIPMENT to bottom of config so its chosen last, fixes vests being flagged as wrong item
2024-02-08 14:52:09 +00:00
Dev
a9c48bc5c8 Increase chances of PMC spawning at start of raid on labs to help with the feeling of an empty raid 2024-02-08 12:36:46 +00:00
Dev
adf973bf49 Merge branch '3.8.0' of https://dev.sp-tarkov.com/SPT-AKI/Server into 3.8.0 2024-02-08 11:45:20 +00:00
Dev
a06e0d1641 Improve flea handling of quality filtering for offers with child objects like armors/plates/weapons 2024-02-08 11:45:12 +00:00
DrakiaXYZ
bc8e98dadc Fix the server sell all price not matching the client displayed value (!216)
Resolved by having the client send the sell price instead of trying to calculate it on the server. Same route, just with an extra parameter passed in

Removed unnecessary value calculation code, and renamed method to match new behaviour

Co-authored-by: DrakiaXYZ <565558+TheDgtl@users.noreply.github.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/216
Co-authored-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
Co-committed-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
2024-02-08 09:10:06 +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
1a885e4eda Reduce preset price multipler to 1.5x from 2x 2024-02-07 23:26:59 +00:00
Dev
8756431774 Ensure giveProfileMoney() rounds money its sending to nearest integer 2024-02-07 23:23:19 +00:00
Dev
439c412800 Ensure fence assorts are always rounded to nearest integer 2024-02-07 23:17:22 +00:00
Dev
15bf71b16f Move daily money reward into its own function 2024-02-07 20:56:54 +00:00
Dev
cc2e820290 Move ammo stack size calcualtion into its own function 2024-02-07 20:51:12 +00:00
Dev
98b592f0c2 Prevent daily rewards from picking armors with soft inserts to duplciate reward count of 2024-02-07 20:43:45 +00:00
Dev
0759afb84f Update daily system to correctly reward just weapons when traderWhitelistDetails.weaponRewardChancePercent passes its check instead of weapons or armor 2024-02-07 20:32:24 +00:00
Dev
424e438732 Improve how daily quests calculate the price of items when choosing a reward that's inside its price boundaries
Items with a default preset inside globals.json now use all items inside the preset for price calculation
2024-02-07 20:15:44 +00:00
Dev
bd2ebe6cbc Update flea prices 2024-02-07 19:01:42 +00:00
Dev
4e20ca6744 Remove debug logging, its scaring too many people 2024-02-07 18:01:00 +00:00
Dev
57855fd316 Add whitelist system to magazine filling function fillMagazineWithRandomCartridge(). Fixes issues with kedr being filled with incompatible ammo 2024-02-07 14:45:43 +00:00
Dev
1c755a4bf4 lint 2024-02-07 09:34:08 +00:00
Dev
2f0513edff Update gifts.json to include plates/soft inserts for armors + mods for weapons 2024-02-07 09:33:47 +00:00
Azrael1123
7a4b27bbe1 Better fix for SPT-AKI/Issues#417 (!215)
[The wiki specifies](https://escapefromtarkov.fandom.com/wiki/Scavs#Scav_karma) that, between 6 and 8, Fence rep is reset to 6 before penalties are applied (i.e. killing someone at 7.5 rep leaves you at 5.9), but the current fix just subtracts a flat 1 reputation instead (i.e. a kill at 7.5 leaves you at 6.4)

this should change that.

Co-authored-by: Azrael <Azrael@noneofyourbusiness.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/215
Co-authored-by: Azrael1123 <azrael1123@noreply.dev.sp-tarkov.com>
Co-committed-by: Azrael1123 <azrael1123@noreply.dev.sp-tarkov.com>
2024-02-07 08:18:18 +00:00
Refringe
ebbc3e2029
Refactored InsuranceController for Better Attachment Handling
Made several improvements to the `InsuranceController` to ensure a more reliable and logical handling of insured items and their attachments.

- Updates `parentAttachmentsMap` declaration to `let` for mutability, enabling dynamic updates during processing.
- Updates `parentAttachmentsMap` to initially include all attachments (including attachments that should not be in-raid moddable).
- Updates `processRegularItems` logic to include `parentAttachmentsMap` in its parameters and logic. Now better ensures that attachments are correctly identified and processed alongside their parent items.
- Adds `removeNonModdableAttachments` method to filter out non-moddable attachments from processing.
- Updates deletion logic to better handle cases where items, such as armour vests and their non-removable plates, are processed to prevent orphaned items post-deletion.

Resolves #401
2024-02-07 01:16:46 -05:00
Refringe
2aa0054833
Insurance Package Removal Issue
Resolved an issue that caused insurance packages that were created/lost in the same raid with different traders to be removed all at once instead of one-by-one after they were processed. This shouldn't have been causing any notable issues as the packages were already cached/queued up for processing elsewhere in the code, but it was never the original intent to have them removed before they were processed. The fix was simply to also match the trader ID when the package removal takes place.

Possibly related to #401 #425
2024-02-06 20:08:14 -05:00
Refringe
6714d2d172
Forgot Instance of Parent Update
Updates the `replaceIDs` method call in the `LocationGenerator` class to be inline with the changes in the parent commit.
2024-02-06 18:50:42 -05: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
Refringe
c29482394b
(More) Simple Parameter Reassignment Issues
Addresses some of the simple linting errors regarding the reassignment of function parameters.
2024-02-06 18:35:11 -05:00
Dev
d8fe911464 Cleanup dynamic loot selection, armors have their children stored in loose loot json, use existing code to pull children out instead of generating it 2024-02-06 23:17:41 +00:00
Dev
cb10ec4148 When generating armors for static loot, try and use default preset first before generating randomly 2024-02-06 23:00:39 +00: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
f48ad01b38 Add thermalvision price limit to fence 2024-02-06 19:52:10 +00:00
Dev
e20c89301d Adjust low level PMC ammos 2024-02-06 17:30:04 +00:00
Dev
4e02384e04 PMC mod spawn chance adjustments 2024-02-06 17:27:00 +00:00
Dev
1681e452bb Force muzzle devices to be a required slot
Lower muzzle chance for PMCs level 20+
2024-02-06 17:21:33 +00:00
Dev
f2865e7675 Experimental; flag mod_muzzle as required for PMCs 2024-02-06 16:59:58 +00:00
Dev
b40e41bd3d Improve sellChance logic
Two changes:

Calcualte the quality of an item and its mods, not just root item
Calcualte the average price of an offer using item + mods, not just root item
2024-02-06 15:52:22 +00:00
Dev
fcf7ff5c3d Update trader assorts, include missing armor inserts on items not dumped from live yet (prapor and ragman) 2024-02-06 14:53:10 +00:00
Dev
5f873e73b8 Move handbook override code into HandbookHelper.hydrate() - changes now apply to ragfair 2024-02-06 12:52:56 +00:00
Dev
62f51be3aa Improve readability of valid item check 2024-02-06 12:18:41 +00:00
Dev
5c52e13064 Add presents to chiristmas seasonal event gift 2024-02-06 12:18:16 +00:00
Dev
e9daf61013 Implement christmas gift system.
Gifts now give rewards, bigger the gift = bigger the possible reward
2024-02-06 12:17:41 +00:00
Dev
7bc9fdbe95 Add system to override handbook price, add christmas gift items small/med/large 2024-02-06 12:16:26 +00:00
Dev
72345abb4a Force plates to spawn in armor items found inside PMC backpacks 2024-02-06 10:53:08 +00:00
Dev
ddac44f79d Divide roubles calculated inside calculateCostOfScavInventoryAndMailMoneyToPlayer() by half 2024-02-06 10:33:59 +00:00
Dev
023697ed74 Partial fix for items flagged as being never lost on death coming back as insurance.
Items will not return but plates inside them still do
2024-02-06 10:10:56 +00:00
Dev
c6de12e6f8 Rename variables/comments for clarity 2024-02-06 09:49:51 +00:00
Deadly Alden
4fc012b422 Revamp structure of socket debug messages (!214)
**Description**
This pull request changes the WebSocket connection `handle lost` log message in the `wsOnConnection` method of the `GameSocket` class. The original log message was:

```typescript
this.logger.debug(this.localisationService.getText("websocket-socket_lost_deleting_handle");
>>> [WS] Socket lost, deleting handle, status: %s
```

Which was inconsistent with most other languages. It can be understood from context that the socket was lost, therefor deleted and closed. Instead now;

```typescript
this.logger.debug(this.localisationService.getText("websocket-socket_lost_deleting_handle");
>>> [WS] Socket lost, deleting handle
```

This is achieved through editing the languages one by one and removing the "`status: %s`" component.

**Related**
- Closes: https://dev.sp-tarkov.com/SPT-AKI/Issues/issues/421

Co-authored-by: Deadly <info.saddiki@gmail.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/214
Co-authored-by: Deadly Alden <deadly@noreply.dev.sp-tarkov.com>
Co-committed-by: Deadly Alden <deadly@noreply.dev.sp-tarkov.com>
2024-02-06 09:07:23 +00:00
Refringe
807ba04967
Resolves Bot Generation Error
- Resolves an issue in bot generation caused by a missing parameter when calling the `shouldModBeSpawned` method.
- Adds a optional chaining operator within a condition to safeguard against undefined errors.

Contributed by: barlog_m

Thank you! :D
2024-02-05 19:16:36 -05:00
Refringe
cd6e40b66c
Error Message Propagation Issue
Resolves an issue where the error message in `getItemsToListOnFleaFromInventory` did not propagate as expected due to the pass-by-value behaviour in JavaScript. The solution was to refactor the method to return an object that includes both the items and the error message.
2024-02-05 19:03:26 -05:00
Refringe
3a2b24b9b8
Simple Parameter Reassignment Issues
Addresses some of the more simple linting errors regarding the reassignment of function parameters.
2024-02-05 19:03:26 -05:00
Refringe
34121182a1
Biome Linting Issues
Fixed some instances of:
- Unordered imports
- Reassigning function parameters
- Modifying values in assignment/return statements
- Array.forEach being used instead of for...of
- Simplified control logic
2024-02-05 19:03:26 -05:00
Dev
d0ed738c0b lint bot json 2024-02-05 22:07:33 +00:00
Dev
9a1ef8daa2 Add missing locale 2024-02-05 22:02:19 +00:00
Dev
b7d74f1dec Add system to flag weapon slot ids as required.
Applies to stocks/recievers for PMCs
recievers for exusec/raider
2024-02-05 22:02:03 +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
Dev
f429cbd663 Update locales 2024-02-05 15:46:00 +00:00
Dev
e0cb167272 Update PMC mod item data 2024-02-05 15:37:01 +00:00
Dev
422b7878ab Add getMatchingPreset() and add workaround for silenced DVL choosing wrong barrel mods 2024-02-05 15:36:05 +00:00
Dev
a04a05996d Adjust calculateFenceStandingChangeFromKills() to take into account rep loss when fence rep between 6 and 8 or rep > 8 2024-02-05 14:44:31 +00:00
Dev
bf5f3316b1 Rename cloned variables to help with readability 2024-02-05 14:43:46 +00:00
Dev
183e71370a Reworked buyItem() to use addItemsToStash() to ensure it performs a space check prior to adding any items to stash 2024-02-05 14:07:21 +00:00
Dev
2f673d12b9 Improve weapon/equipment item purchase filtering 2024-02-05 11:38:04 +00:00
Dev
0f6b34605b Prevent duplicate equipment builds occuring when renaming an existing build 2024-02-05 09:13:37 +00:00
Dev
946172d20c Add additional helmet soft inserts to getSoftInsertSlotIds() 2024-02-05 09:02:58 +00:00
Dev
a2668a9618 Rework insurance to not duplicate items + still return soft_inserts
Added missing groin_back to `itemRequiresSoftInserts()`
2024-02-04 22:41:11 +00:00
Dev
e5bc45c6d4 Adjusted front/rear loot item plate chance to be 100%: 2024-02-04 20:30:10 +00:00
Dev
af0c6b9ee9 Add missing initialLoyaltyLevel values to standard account templates 2024-02-04 19:58:57 +00:00
Dev
d9bcb3fce8 Fix deleting an item from mail before receiving all kills server 2024-02-04 19:51:19 +00:00
Dev
9fa0bf53e5 Rework sell all scav gear button to send money as mail 2024-02-04 19:27:35 +00:00
Dev
5bde733e7b Lower airdrop weapon crate count max to 2 for mixed type crates 2024-02-04 17:01:04 +00:00
Dev
09a76f5c3f Replace placehold quest assorts with live data taken on 15th of jan 2024-02-04 15:52:44 +00:00
Dev
b6b659d2d7 Increase chance of Pscav name on scavs to 20% 2024-02-04 14:43:58 +00:00
Dev
63603f5d9a Reduce grizzly count added to PMC secure to 1 + morphine to 2 2024-02-04 14:43:37 +00:00
Dev
c43c06d2b5 Increase chance PMCs 1-15 have backpacks 2024-02-04 14:37:08 +00:00
Dev
2fb15dab94 Adjust PMC 1-15 backpack loot values - tiny chance of 10 items + weight 2/3 items more heavily 2024-02-04 14:35:22 +00:00
Dev
6d300c9d4d Add chance for 1-15 PMCs to have 2 healing items on their person 2024-02-04 14:31:26 +00:00
Dev
ef623de2d7 Increate 1-14 PMC chance to have a grenade to 44% 2024-02-04 14:30:13 +00:00
Dev
ba94183f86 Blacklist Ultralink quest item from airdrops 2024-02-04 14:10:03 +00:00
Dev
cfe470029f Refactor insurance item checking code into 2 functions to allow checking if any items were lost before sending Insurance lost mail 2024-02-04 10:19:57 +00:00
Dev
afce41d68b Improve lost insurance message system, only send lost insurance when an insured item was lost 2024-02-04 09:52:56 +00:00
Dev
8b90373965 Removed Out of Time quest 2024-02-04 09:40:52 +00:00
Dev
193161f786 Fix preset buy searches not filtering items based on search criteria/player level 2024-02-04 09:31:00 +00:00
Dev
ff4b1f95be Fixed Rhys-T helmet not having inserts for PMCs 2024-02-04 09:24:39 +00:00
Dev
2c4278cd96 Show debug message as warning + fix incorrect prapor quest assort ids 2024-02-04 09:12:27 +00:00
Dev
f2ed957579 Expand server version debug logging 2024-02-04 09:04:12 +00:00
Dev
4d88b2a94a Prevent developer profile changes bleeding into non-dev accounts 2024-02-03 23:40:20 +00:00
Dev
3dacbc98b2 Remove redundant .some() call 2024-02-03 23:11:36 +00:00
Dev
d362e17e1b prevent failQuest() from failing when no repeatable quest is found 2024-02-03 23:10:42 +00:00
Dev
714386c793 Update generateEquipment() to return true when it adds item 2024-02-03 20:29:31 +00:00
Dev
3c371a6c16 Add search criteria filtering to required search
Pull out`isDisplayableOffer` from`passesSearchFilterCriteria`
2024-02-03 20:23:26 +00:00
Dev
36d6e56d89 Improve comments 2024-02-03 19:47:39 +00:00
Dev
747510e5d2 Remove bleeds/breaks after 30 mins offline 2024-02-03 19:45:42 +00:00
Dev
1a9dc1ea2b Cleanup of setHideoutAreasAndCraftsTo40Secs to more central location 2024-02-03 19:42:49 +00:00
Dev
48e6f3052d Add item limit of 1 for TerraGroup Labs access keycard to bosskojaniy 2024-02-03 17:41:05 +00:00
Dev
ec9a877cd4 Force item limits to be used with special loot items 2024-02-03 17:34:08 +00:00
Dev
fcd7e463aa Merge branch '3.8.0' of https://dev.sp-tarkov.com/SPT-AKI/Server into 3.8.0 2024-02-03 17:00:04 +00:00
Dev
34d761a14f Fix edge case when getModPoolForSlot() gets default handguard for mp5 when the reciever is set to the mp5sd. Now uses correct default template 2024-02-03 16:59:54 +00:00
CWXDEV
27927dd456 Fix dev profiles on creation not having correct "shortened" crafting times
new call only happens when a creation of profile happens
2024-02-03 16:39:20 +00:00
Dev
f17d385d56 Add missing easy start bear data 2024-02-03 16:06:23 +00:00
Dev
b7f6cf5e36 Reorder profile presets to have standard first, EoD last 2024-02-03 15:55:23 +00:00
Dev
b6a57553de Enhance profile template initial trader standing system to be per trader 2024-02-03 15:53:28 +00:00
Dev
acbfc3bd81 Merge branch '3.8.0' of https://dev.sp-tarkov.com/SPT-AKI/Server into 3.8.0 2024-02-03 15:29:53 +00:00
Dev
579a846212 Set easy start profiles to have traders level 2 2024-02-03 15:29:39 +00:00
CWXDEV
06ce2c090e Fix Required Search 2024-02-03 15:26:15 +00:00
Dev
0d21eac38f Extend snow till the 10th of feb 2024-02-03 15:14:26 +00:00
Dev
e4df0581c6 Update starting ammo in profile templates 2024-02-03 15:14:03 +00:00
Dev
fc6d8b487a Add empty locales 2024-02-03 15:03:14 +00:00
Dev
5e1da93a69 Allow seasonal events to trigger after profile creation 2024-02-03 14:39:37 +00:00
Dev
164bf08b08 FIx armor filtering code to correctly return non-armored rigs when requested 2024-02-03 14:00:47 +00:00
Dev
8d2eaf2485 Copy over stackobject count from original reward 2024-02-03 12:47:52 +00:00
Dev
f7651fe003 fix colliding var names 2024-02-03 12:18:11 +00:00
Dev
0a6a866ae8 Correctly clone and remap default preset before returning 2024-02-03 12:15:20 +00:00
Dev
e3cf4c3c92 Fix starting quest armor rewards not showing correctly 2024-02-03 11:41:30 +00:00
Dev
055f8176d8 Remove Hippocratic Oath quest - no longer in live 2024-02-03 11:14:57 +00:00
Dev
12a9cb5ded Fix processReward() incorrectly trying to add mods to armor items without slots
Add `itemHasSlots` to itemHelper and consolodate its use across code
2024-02-03 11:00:30 +00:00
Dev
47bedcb526 improve filtering of required item searches on flea - Fixes locked items being shown in search results
Improve type usage inside `getRequiredItemsById()`
2024-02-03 10:33:11 +00:00
Dev
f2cae309ec Merge branch '3.8.0' of https://dev.sp-tarkov.com/SPT-AKI/Server into 3.8.0 2024-02-03 10:02:22 +00:00
Dev
e801b30d98 Fix trader assorts with an UnlimitedCount value not having a stack size of 9999999 - fixes unlimited item on prapor having stack size of 100 2024-02-03 10:01:44 +00:00
Kaeno
9f9febd624 Add missing quest images 2024-02-03 00:30:01 +00:00
Kaeno
1c00c2bb13 Keep bonus.value from text_bonus bonuses 2024-02-02 20:11:09 +00:00
Refringe
69a1723646
Fixes Linting Issues
- Reorders imports
- Removes unnecessary `else` control statements
- Simplifies some logic
- Converts key access to dot notation
- Converts Array.forEach loops to for...of loops
2024-02-02 15:00:21 -05:00
Refringe
90492f3aa2
Formatting
Have you been using the recommended VSCode extensions? ;)
2024-02-02 15:00:21 -05:00
Kaeno
8227e06d77 Black list Sacred Amulet from scav case also 2024-02-02 19:25:14 +00:00
Dev
5136d69050 Implement flea required searching 2024-02-02 19:23:08 +00:00
Kaeno
ef958a115d Blacklist Lightkeepers amulet from airdrops and fence 2024-02-02 19:02:46 +00:00
Dev
6a4330557f Add PMC name 2024-02-02 17:58:31 +00:00
Dev
36d16f0917 Add english fallback locale 2024-02-02 17:53:23 +00:00
Dev
ca02aa6a50 Fix stackable hideout crafts not being added to stash in correct format 2024-02-02 17:31:52 +00:00
Dev
83c3cd5f8b Remove unused function 2024-02-02 17:22:49 +00: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
Dev
8dab47b3fd Fix selling to trader an amount above stack size causing currency to not stack 2024-02-02 15:35:02 +00:00
Dev
a1e84992a2 update english locale 2024-02-02 14:18:45 +00:00
Dev
8d59ab7c77 Replace use of dialogueHelper.addDialogueMessage inside sendInsuredItems() with MailSendService.sendMessage() 2024-02-02 11:57:10 +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
Dev
5b04bc530e Update locales 2024-02-01 20:19:06 +00:00
Dev
ded87b3881 Show first 7 characters of commit server was built against in version label 2024-02-01 16:58:23 +00:00
Dev
31942b96eb Add marksman rifles to elimination dailies
Add weapon filtering based on range requirement of elimination quest:
> 50 = no pistols/shotguns
< 20 = no DMR/MarksmanRifles
2024-02-01 14:37:02 +00:00
Dev
a38cf7fa69 Remove redundant else from toggleItem() 2024-02-01 13:58:06 +00:00
Dev
5e94e3fef0 Cleanup of getExaminedItemTpl() 2024-02-01 13:53:36 +00:00
Dev
6032573815 Comment improvements 2024-02-01 13:31:36 +00:00
Dev
5f500655be openRandomLootContainer() Remove item after contents have successfully been added to stash 2024-02-01 13:26:18 +00:00
Dev
3587becf76 Update openRandomLootContainer() to use addItemsToStash() 2024-02-01 13:23:03 +00:00
Dev
704b337a3c removeResourceFromArea() Pass found item in slot directly to addToStash requst for small optimisation 2024-02-01 12:53:30 +00:00
Dev
d920dceb53 Remove redundant returns from various hideout functions used inside takeProduction() 2024-02-01 12:47:48 +00:00