451 Commits

Author SHA1 Message Date
Dev
4ce4663fbe Add msising object 2024-03-09 16:57:47 +00:00
Dev
f860642882 Add ability to adjust skill gain per skill when in menus via inventory config 2024-03-09 16:14:34 +00:00
DrakiaXYZ
77bc22f27e Fix being returned to the main menu when inventory full (!251)
- Add a new method of sending errors back but not flagging the response as failed in ItemEventCallback
- Don't treat `NOTENOUGHSPACE` errors as critical errors
- Return proper `NOTENOUGHSPACE` error code for stash space issues for trader/flea/craft
- Add missing error codes to `BackendErrorCodes`

Co-authored-by: DrakiaXYZ <565558+TheDgtl@users.noreply.github.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/251
Co-authored-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
Co-committed-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
2024-03-08 08:59:14 +00:00
Cj
d4ee8f64d4 Implement IRelease interface, add new route action and data to core.json (!249)
This will need merged with: https://dev.sp-tarkov.com/SPT-AKI/Modules/pulls/90

Added
- IRelease interface
- betaDisclaimer: Beta text to be shown in the client
- betaDisclaimerTimeoutDelay: delay before the client exits if `OK` isnt pressed
- releaseSummary: a place to add release notes shown on first run, or if version has changed.

- new route for the client to request beta and changelog information

Im not the most familiar with the server, so if any of this needs moved to a different class or a new class made for it, ping me and let me know and I'll adjust it accordingly.

Co-authored-by: Cj <161484149+CJ-SPT@users.noreply.github.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/249
Co-authored-by: Cj <cj@noreply.dev.sp-tarkov.com>
Co-committed-by: Cj <cj@noreply.dev.sp-tarkov.com>
2024-03-07 18:16:55 +00:00
Dev
96bace1288 Remove unused property from interface 2024-03-06 18:38:43 +00:00
Cj
4da70b80d3 Implement keeping pocket items on death to LostOnDeath.json configuration (!246)
Addresses: https://dev.sp-tarkov.com/SPT-AKI/Issues/issues/443

Re-added the ability to keep pocket items on death. The reason for the naming is to not confuse the root `Pockets` item. Where as `PocketItems` is a better descriptive fit for the behaviour.

New property in lostondeath.json -> `equipment.PocketItems` default `true` to discard items in pockets as normal on death.

Co-authored-by: Cj <161484149+CJ-SPT@users.noreply.github.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/246
Co-authored-by: Cj <cj@noreply.dev.sp-tarkov.com>
Co-committed-by: Cj <cj@noreply.dev.sp-tarkov.com>
2024-03-06 08:50:04 +00:00
Dev
3846363758 Added system to weight stack size of money in bot inventories
Removed `dynamicLoot` system from pmc config as its been replaced with this one

#546
2024-03-05 12:24:09 +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
e3f341416d Add missing property to default profile templates 2024-03-04 21:39:10 +00:00
Dev
63d5da4c18 Wallet loot improvements:
Added % chance to have loot to config
Added currency added weigfht system to config (only roubles by default)
Added allowed wallet types array to config
Added WZ wallet to pool of wallets to add money to

Fixed bug where itemCount type was incorrect
2024-03-04 20:18:53 +00:00
Cj
534e9d2ba1 [Enhancement] Custom flea category blacklist (!244)
Allows modders to blacklist entire categories from ragfair in relation to https://dev.sp-tarkov.com/SPT-AKI/Issues/issues/525

new properties under `RagfairConfig.dynamic.blacklist`
`enableCustomItemCategoryList` - this enables the custom custom category blacklist
`customItemCategoryList` - this is an array to take a list of parent id's

I tested it to confirm its working, will need some further testing.

Co-authored-by: Corey <dirtbikercj@gmail.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/244
Co-authored-by: Cj <cj@noreply.dev.sp-tarkov.com>
Co-committed-by: Cj <cj@noreply.dev.sp-tarkov.com>
2024-03-04 19:36:31 +00:00
Dev
002279c787 Changed flea rep gain code to use globals data instead of ragfair json 2024-02-29 12:19:43 +00:00
Dev
874463509a Remove unused base value from ragfair config 2024-02-28 21:37:42 +00:00
DrakiaXYZ
0433308fa8 Fix tools not coming back with the right properties after crafting (!238)
This resolves an issue where FiR tools were coming back as non-FiR. We now just store the whole .upd property, so any stats on the tool should carry over to after the craft is finished

Note: Will break any in-progress crafts that use tools

Co-authored-by: DrakiaXYZ <565558+TheDgtl@users.noreply.github.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/238
Co-authored-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
Co-committed-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
2024-02-28 07:55:39 +00:00
Dev
7ec5d89608 Add ability to insert stash rows to profile 2024-02-26 23:51:45 +00:00
DrakiaXYZ
1deb6d9488 Add trader service requirement support & LKS Service requirements (!235)
Add LightKeeper trader service requirements

Co-authored-by: DrakiaXYZ <565558+TheDgtl@users.noreply.github.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/235
Co-authored-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
Co-committed-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
2024-02-25 20:18:54 +00:00
Dev
2839ce8c77 Merge branch '3.8.0' of https://dev.sp-tarkov.com/SPT-AKI/Server into 3.8.0 2024-02-25 11:18:01 +00:00
Dev
1dda9efbd7 Move ExhaustableArray into its own file + make it implement interface 2024-02-25 11:17:33 +00:00
DrakiaXYZ
2adbb6a5fe Properly take and return tools when crafting (!234)
When starting a craft, tools are now taken, and the templateId is stored in the production in the user profile
When finishing a craft, space for both the tools and crafted item is verified, then both are added to the player stash correctly flagged as non-FiR and FiR respectively

Included a bit of code cleanup/reorg in areas I was working in

A few assumptions were made:
- Tools are expected to be single items, not stacks of an item (productions.json doesn't include a count property for tools, so this seems safe)
- Tools will never be a preset or have child items
- That the `canPlaceItemsInInventory` method over a concatenation of the tools and crafted item(s) will result in the same result as calling it individually over the two collections of items individually

Will need tested once merged into 380, I did basic testing, but there's a lot of different crafts that require tools

Co-authored-by: DrakiaXYZ <565558+TheDgtl@users.noreply.github.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/234
Co-authored-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
Co-committed-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
2024-02-25 08:53:57 +00:00
Dev
5e496af804 Move itemLimit code to be across all bot containers instead of per
Remove a tpl from loot pool once an item limit has been reached - prevents it being picked over and over
Remove loot data from pmc jsons as its generated dynamically, adding data into jsons now acts as an override for the dynamic generation
Reduced rouble max count to 1 for PMCs

Split PMC loot caches by side (usec/bear)
2024-02-22 16:34:15 +00:00
Dev
9525953444 Add code to insert roubes into wallets on bots 2024-02-21 18:36:45 +00:00
Dev
cc0f543bdf Rewrote how bot loot is stored + chosen during bot gen
All loot is now weighted - weights come from offline-live bot dumps

Removed `lootNValue` - loot is no longer picked by its value
Regenerated bot loot files - i saw some additional weapons get added to scavs
2024-02-21 17:36:27 +00:00
Dev
867b1ea50f Add COMB_MUZZLE_DEVICE to BaseClasses enum 2024-02-20 13:12:30 +00:00
Dev
68a78d8bdd Add extra types to BaseClasses and fix typo 2024-02-18 21:10:41 +00:00
Kaeno
9d96f97b55 Add maxPatrolValue route for module to pull data from. Added sandboxMaxPatrolvalue to location.json. linting on location.json 2024-02-16 16:17:55 +00:00
Kaeno
ab86830a1a Update Wildspawntypes Enums to match client 2024-02-16 14:40:52 +00:00
Dev
7bc867a8f7 Replace labsAccessCardChancePercent with lootItemsToAddChancePercent inside playerscav.json
Fixed scav generation on profile generation always using fence rep 0

Added small % chance to add red flare to pscav
2024-02-16 09:59:43 +00:00
Dev
f449a51f6a Further output object changes 2024-02-14 15:11:19 +00:00
Dev
d5217928c2 Add 40% chance armors with plates do not have them whem listed on flea - mimics live behaviour 2024-02-14 11:12:20 +00:00
Dev
d7e37b0218 make ICultistAmulet optional 2024-02-12 15:15:20 +00:00
Dev
e9af6e3868 Update JSON + add new properties 2024-02-12 15:06:51 +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
ff1e80e302 Add endpoint to configure trailtor scavs 2024-02-11 10:32:13 +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
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
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
c097914e45 Add system to ignore armor plate slots when removing plates not suitable for flea 2024-02-08 16:53:14 +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
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
7bc9fdbe95 Add system to override handbook price, add christmas gift items small/med/large 2024-02-06 12:16:26 +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
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
b6a57553de Enhance profile template initial trader standing system to be per trader 2024-02-03 15:53:28 +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
Dev
8d59ab7c77 Replace use of dialogueHelper.addDialogueMessage inside sendInsuredItems() with MailSendService.sendMessage() 2024-02-02 11:57:10 +00:00
Dev
6032573815 Comment improvements 2024-02-01 13:31:36 +00:00