Commit Graph

1804 Commits

Author SHA1 Message Date
DrakiaXYZ
fdbbc47e59 Fix calculations for the flea min, max and avg to more accurately match live (!268)
Co-authored-by: DrakiaXYZ <565558+TheDgtl@users.noreply.github.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/268
Co-authored-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
Co-committed-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
2024-03-23 19:18:14 +00:00
Dev
d3fdb08528 Log when profiles save 2024-03-23 17:31:12 +00:00
Dev
f249d7058c Adjust calculateAmmoStackSizeThatFitsBudget() to never let the ammo reward stack go below 1 2024-03-23 11:32:10 +00:00
Dev
cdec8729aa Fixed scav case never giving unarmored rigs as a reward 2024-03-23 11:23:29 +00:00
Dev
7b557a31ad Small formatting changes 2024-03-23 10:59:08 +00:00
Dev
a39d8b8419 Update daily reward system to use global reward item blacklist 2024-03-23 10:50:17 +00:00
Dev
ea18533591 Make use of reward item blacklist in airdrop reward code
Blacklist boss items from airdrop rewards
2024-03-23 10:44:28 +00:00
Dev
580d5b9829 Make use of item reward blacklist in scav case system 2024-03-23 10:43:08 +00:00
Dev
cf490c841e Create centralised reward blacklist 2024-03-23 10:42:43 +00:00
Dev
28d40d9443 Log IP of request when not a local address 2024-03-23 09:41:36 +00:00
Kaeno
d5517d7fdf Remove server calculation of scav rep post raid changes. awaiting Client Calculations 2024-03-21 15:21:02 +00:00
Dev
04aad787d3 Store the fence rep diff after a raid has concluded, add endpoint to allow retreval of this value 2024-03-21 12:23:03 +00:00
Dev
443bc72995 Remove unnecessary code from flagItemsAsInspectedAndRewardXp as issue is now fixed at source 2024-03-20 18:02:19 +00:00
Dev
ecfd6883d0 Init scavs Encyclopedia on generation 2024-03-20 17:58:32 +00:00
Dev
ee7c2aab36 Nullguard inspecting a keycard when scav has no encyclopedia init 2024-03-20 17:47:48 +00:00
Dev
e3b31ed972 Added extra IFAKs to PMCs + replaced morphine with etg regen stims 2024-03-20 15:10:39 +00:00
DrakiaXYZ
a29902b980 Add a new allExtracts property to locations database, and use it for daily quest generation (!266)
- Dumped from the client using an aki-debugging patch
- Contains all extracts according to the map data, with a side indicator
- Cleaned up ILocation vs ILocationData duplication

Co-authored-by: DrakiaXYZ <565558+TheDgtl@users.noreply.github.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/266
Co-authored-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
Co-committed-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
2024-03-20 09:43:51 +00:00
Kaeno
480683b25b Remove grizzly from PMC secured container to avoid dropping them on the ground. 2024-03-19 12:18:09 +00:00
Dev
28082808a8 Remove unused code 2024-03-18 21:11:00 +00:00
Dev
c879e852ed Fix watermark not displaying correctly for non-english locales 2024-03-18 21:07:47 +00:00
Dev
5d59e4c36e Fix issue with using LogTextColor.GRAY 2024-03-18 20:34:23 +00:00
Dev
dfdf1d22db Ensure fromRUB() never returns value below 1 2024-03-18 16:25:04 +00:00
Dev
b5565f3901 Perform currency conversion at end of getDynamicOfferPriceForOffer() if necessary instead of for each item in loop
linting
2024-03-18 16:23:04 +00:00
Dev
f2254b150a Add funtionality to propigate scav Charisma gains into PMC based on live testing 2024-03-18 12:56:34 +00:00
Dev
4c872a343f Merge branch '3.8.0' of https://dev.sp-tarkov.com/SPT-AKI/Server into 3.8.0 2024-03-18 09:59:13 +00:00
Dev
067aaae706 Handle edge case in updateFuel() where function can fail due to fuel item lacking a upd object
Lint file
2024-03-18 09:58:59 +00:00
TheSparta
d4c04fc718 Simplified autoInstallDependencies() 2024-03-18 00:06:08 +00:00
TheSparta
e73fea8776 Fixed undefined behaviour
- Would break out of the loop at the first dependency removed from `dependenciesToInstall`.
2024-03-17 23:19:56 +00:00
Dev
6af4126bc8 Resolve issue with PMCs having seasonal items on their person when they shouldn't 2024-03-17 13:33:31 +00:00
Dev
1f16e96ae9 Merge branch '3.8.0' of https://dev.sp-tarkov.com/SPT-AKI/Server into 3.8.0 2024-03-17 12:27:50 +00:00
Dev
2ffe44d153 Made ragfair run interval time dynamic based on players current location:
Player in raid = longer time between checks (60 secs)
Player out of raid = shorter time between checks (8 secs)

Original value was 45 secs
2024-03-17 12:27:24 +00:00
Cj
0a935651f5 Add mod enabled text for the disclaimer window (!264)
Add another variation stating mods are enabled for the beta disclaimer window

![image](/attachments/af517b44-e613-4fd4-81fd-c2434d6478b5)

Co-authored-by: Cj <161484149+CJ-SPT@users.noreply.github.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/264
Co-authored-by: Cj <cj@noreply.dev.sp-tarkov.com>
Co-committed-by: Cj <cj@noreply.dev.sp-tarkov.com>
2024-03-17 08:55:02 +00:00
DrakiaXYZ
e497ecc125 Fix flea avg and fee calculations (!265)
Properly calculate the flea average, excluding barter offers for a more live-like result
Prioritize handbook price for the /client/items/prices route to match live

Co-authored-by: DrakiaXYZ <565558+TheDgtl@users.noreply.github.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/265
Co-authored-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
Co-committed-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
2024-03-17 08:54:34 +00:00
Dev
95f5a49c5c Update trader refresh times to use a min and max value 2024-03-16 22:12:03 +00:00
Cj
be64e897b9 Enable BSG logging (!262)
Needs merged with: https://dev.sp-tarkov.com/SPT-AKI/Modules/pulls/96

Read details there.

Co-authored-by: Cj <161484149+CJ-SPT@users.noreply.github.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/262
Co-authored-by: Cj <cj@noreply.dev.sp-tarkov.com>
Co-committed-by: Cj <cj@noreply.dev.sp-tarkov.com>
2024-03-16 21:03:52 +00:00
Refringe
72ddbc4192
Adds bleedingmods Build Type 2024-03-16 16:11:24 -04:00
Dev
252d009283 Prevent outdated mods from loading 2024-03-16 19:18:25 +00:00
Dev
ab2018c13f Call itemBaseClassService.hydrateItemBaseClassCache() as part of adding custom item 2024-03-16 13:11:17 +00:00
Dev
aa7a60f409 Adjust itemHasBaseClass() to log as debug instead of warning - fixes custom item mods spamming console with messages 2024-03-16 13:01:32 +00:00
Dev
8984711cba Allow custom item server to add weapons to weapon shelf 2024-03-15 13:46:31 +00:00
Dev
0c404cbcba Move weapon skill check into shouldBuffItem() + do similar check for armor 2024-03-14 23:08:06 +00:00
Kaeno
9bc08fbd26 Fix botcache not returning correct bot breaking halloween event. 2024-03-14 22:41:36 +00:00
Dev
2af3ca9ff5 Fix issue with generating event bots not being cached under the correct name
Dont get bot from cache after generating it. Its popping bot off end of array only to be discarded
2024-03-14 22:14:00 +00:00
Dev
2bbbbb9736 Force runIntervalSeconds to never fall below 1 to stop peope breaking their server by editing config values blindly 2024-03-14 14:43:56 +00:00
Refringe
5edba7dd05 Updates NPM Packages - Node v20.11.1 LTS (!260)
Updates many of the out of date npm packages and brings us up to Node v20 LTS. :D

Co-authored-by: chomp <chomp@noreply.dev.sp-tarkov.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/260
Co-authored-by: Refringe <me@refringe.com>
Co-committed-by: Refringe <me@refringe.com>
2024-03-14 09:08:40 +00:00
Arys
1dc5db42f3 Fixed Fuel items and Water filters losing FIR status when placed into Generator/Water Collector (!261)
Ignore the other commits, I need to nuke my branch and learn to rebase properly kek

Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/261
Co-authored-by: Arys <arys@noreply.dev.sp-tarkov.com>
Co-committed-by: Arys <arys@noreply.dev.sp-tarkov.com>
2024-03-14 09:08:00 +00:00
Dev
c25be01a15 Only apply bonuses to items repaired with kit when players weapon maintenance skill is at or above level 10 2024-03-13 10:18:35 +00:00
Dev
fc1a1432ee Do not return output object from failQuest() 2024-03-12 21:29:50 +00:00
Dev
378bb7fdae Resolve issue with failQuest() breaking when no quest or repeatable quest is found and it attempts to send a mail message to player 2024-03-12 21:24:46 +00:00
Dev
f623b1d52e Adjust trader reset times based on live testing 2024-03-12 15:45:48 +00:00
Dev
dcd70fb5b5 Allow traders to have timers be based on amount of time to next hour (bsg style) OR spt server start time 2024-03-12 14:27:07 +00:00
Cj
8397e4690b Add server mod check to cool debug message (!258)
needs merged with: https://dev.sp-tarkov.com/SPT-AKI/Modules/pulls/95

Get a bool from the server to indicate server mods being present and send to the client

Co-authored-by: Cj <161484149+CJ-SPT@users.noreply.github.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/258
Co-authored-by: Cj <cj@noreply.dev.sp-tarkov.com>
Co-committed-by: Cj <cj@noreply.dev.sp-tarkov.com>
2024-03-11 22:03:14 +00:00
DrakiaXYZ
7fdb9083a5 Move isBeta to a compile time variable (!257)
Split isBeta and isModdable into two seperate variables

Co-authored-by: DrakiaXYZ <565558+TheDgtl@users.noreply.github.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/257
Co-authored-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
Co-committed-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
2024-03-11 08:45:05 +00:00
DrakiaXYZ
15257ea263 Fix daily reward budget not using preset prices for some items (!256)
- Switch item cost calculation to use a new helper that checks for a preset first, to more accurately keep track of the budget
- Subtract weapon price from reward budget
- Decrement reward counter for skipped ammo
- Add a new helper for filtering the reward pool by budget, so it's consistent in the two places it's done
- Add a metric boatload of debug output for daily generation

Co-authored-by: DrakiaXYZ <565558+TheDgtl@users.noreply.github.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/256
Co-authored-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
Co-committed-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
2024-03-11 00:03:41 +00:00
Dev
561c5a7ffc Remove unused injection + lint 2024-03-10 23:18:42 +00:00
Dev
e6b0dbbf8e Removed unused injection 2024-03-10 23:17:19 +00:00
Dev
da3b2944a7 Move reward code out of repeatable controller and into its own class 2024-03-10 23:15:03 +00:00
Dev
b45a091099 Prevent daily quest system choosing armor rewards to duplicate 2024-03-10 23:02:12 +00:00
Dev
1098a9d869 Fixed wallets not having money stacks in them
Increased chance of money in wallets

some lint fixes
2024-03-10 14:13:08 +00:00
Dev
ef81363ec6 Merge branch '3.8.0' of https://dev.sp-tarkov.com/SPT-AKI/Server into 3.8.0 2024-03-10 12:37:57 +00:00
Dev
68d0007545 Fix german locales not working because bsg map DE to GE for some reason 2024-03-10 12:37:47 +00:00
DrakiaXYZ
1326ee9626 Remove special handling for LK Locked tasks in post-raid (!255)
Handling of time-gated LK tasks is now properly handled in the client via `InRaidQuestAvailablePatch`, so we no longer need to handle `Locked` status quests post-raid

Co-authored-by: DrakiaXYZ <565558+TheDgtl@users.noreply.github.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/255
Co-authored-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
Co-committed-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
2024-03-09 22:45:07 +00:00
Dev
4ce4663fbe Add msising object 2024-03-09 16:57:47 +00:00
Dev
7e1a47bedc Remove unused endpoint client/match/group/create 2024-03-09 16:46:40 +00:00
Dev
5011af03ea Removed unused endpoint + related code /raid/profile/list 2024-03-09 16:38:43 +00:00
Dev
b11c9579b5 Cleanup of comments inside ProfileHelper
merged unnecessary functions
2024-03-09 16:35:46 +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
f95ed922a4 Fix quest statusTimers ending up with named keys (!254)
- Don't depend on status being non-numeric to fix statusTimers
- Cleaner tracking of fix counts in `updateProfileQuestDataValues`
- Better number checking for quest status, since `0` is a valid status, but fails the `!Number()` check
- Cleanup of quest status setting in `processAlteredQuests`

Co-authored-by: DrakiaXYZ <565558+TheDgtl@users.noreply.github.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/254
Co-authored-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
Co-committed-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
2024-03-09 08:49:26 +00:00
Dev
5ea7d7b97d Merge branch '3.8.0' of https://dev.sp-tarkov.com/SPT-AKI/Server into 3.8.0 2024-03-08 12:05:56 +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
DrakiaXYZ
56c0007caf Fix scav case timer not taking crafting skill into account (!252)
The assembly calculation for scav case timer first applies the player's crafting skill reduction, then multiplies by the resulting time by the Fence modifier:

```
return base.ReductionCoefficient * this.fenceTraderInfo_0.FenceLoyalty.ScavCaseTimeModifier;
```

This change makes the server calculation match this expected value

Co-authored-by: DrakiaXYZ <565558+TheDgtl@users.noreply.github.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/252
Co-authored-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
Co-committed-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
2024-03-08 09:00:06 +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
b79fc89d11 Filter out seasonal items from scavcase rewards when not inside seasonal event 2024-03-07 18:15:42 +00:00
Dev
f439f5888b Fix warning being logged constantly 2024-03-07 13:44: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
DrakiaXYZ
246f0d5030 Fix give command not working on armor presets and not marking presets as FiR (!250)
- Commando `give` command now handles all presets in the same way, so if BSG adds new types of presets in the future they should be supported without changes
- Commando `give` command now marks all given items as FiR for consistency

Co-authored-by: DrakiaXYZ <565558+TheDgtl@users.noreply.github.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/250
Co-authored-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
Co-committed-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
2024-03-07 08:43:15 +00:00
Dev
9b07a11a1b Merge branch '3.8.0' of https://dev.sp-tarkov.com/SPT-AKI/Server into 3.8.0 2024-03-06 21:38:12 +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
Cj
2249337a02 Small optimization (!248)
Change `foreach` to use `for of` instead, `for of` is faster than `foreach`

Co-authored-by: Cj <161484149+CJ-SPT@users.noreply.github.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/248
Co-authored-by: Cj <cj@noreply.dev.sp-tarkov.com>
Co-committed-by: Cj <cj@noreply.dev.sp-tarkov.com>
2024-03-06 19:50:45 +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
570a81ff78 Show commit hash on debug and release versions 2024-03-05 20:23:10 +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
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
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
Cj
c7a577d903 Use globals ratingSumForIncrease value (!243)
Corrects previous pull request hardcoding the value for `ratingSumForIncrease`.

Anytime it changes in globals it will now be reflected without needing to change it in `RagFairOfferHelper`

Co-authored-by: Corey <dirtbikercj@gmail.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/243
Co-authored-by: Cj <cj@noreply.dev.sp-tarkov.com>
Co-committed-by: Cj <cj@noreply.dev.sp-tarkov.com>
2024-03-04 18:06:10 +00:00
Cj
9bd9ad30c0 Divide ratingInceaseCount by 100000 (!242)
Should address massive flea rep gains. Tested about 10 cases, all seem within expected range.

Divided ratingIncreaseCount by a factor of 100000

Co-authored-by: Corey <dirtbikercj@gmail.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/242
Co-authored-by: Cj <cj@noreply.dev.sp-tarkov.com>
Co-committed-by: Cj <cj@noreply.dev.sp-tarkov.com>
2024-03-04 17:16:34 +00:00
Dev
a5de871c92 Added seasonal item handling inside daily quest reward generation code 2024-03-04 17:13:36 +00:00
chomp
9a28e86261 Fix incorrect trader messages being sent when dealing with insurance on labs (!241)
Co-authored-by: HiddenCirno <hiddencirno@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/241
2024-03-03 11:06:33 +00:00
Dev
d828e9da7d Revert change made to increaseProfileRagfairRating() 2024-03-02 20:12:40 +00:00
Dev
767063d291 Adjust water_collector total craft time every update() to include the players current CRAFTINGskill level instead of the first time profile is created
Refactored `registerProduction()` to also use this code

Fix code that was getting value to 4dp, not 3dp
Skip doing work in `getHideoutManagementConsumptionBonus()` if hideoutMgmt skill is 0
2024-02-29 16:24:47 +00:00
Dev
cfee4c10db Added additional soft insert slots to getSoftInsertSlotIds()
Fixes ronin face shield missing soft inserts
2024-02-29 12:24:32 +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
c64e5f7239 Correct comment now power has changed 2024-02-28 22:34:07 +00:00
Dev
eee10407e8 Further changes to sell curve 2024-02-28 22:31:15 +00:00
Dev
5cbc4b7014 Improve sell chance % of player offers that are close to the average price 2024-02-28 22:24:58 +00:00
Dev
874463509a Remove unused base value from ragfair config 2024-02-28 21:37:42 +00:00
Dev
69bf8939d5 Add Optional chaining to registerProduction() to fix null error relating to crafts without tools 2024-02-28 20:33:10 +00:00
Dev
854670d4d5 Merge branch '3.8.0' of https://dev.sp-tarkov.com/SPT-AKI/Server into 3.8.0 2024-02-28 18:34:37 +00:00
Dev
3a301b02cc Handle when pscav kills a bot that doesnt have a json, default to 0 rep loss 2024-02-28 18:34:25 +00:00
DrakiaXYZ
4b8b62ae83 Utilize the release callback returned by lockFileSync to release the lock file (!239)
The error people are getting about a lock file already existing is due to `checkFileSync` returning false if the lock file is "stale".
The default "stale" timeout is 10 seconds, so if a save takes longer than this, the user will end up in a state where they can no longer save.

The documentation for `proper-lockfile` recommends using the callback returned by `lockFileSync` to remove the lock file, so I've switched to using this, and the error no longer occurs with long running save operations

Co-authored-by: DrakiaXYZ <565558+TheDgtl@users.noreply.github.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/239
Co-authored-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
Co-committed-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
2024-02-28 07:56:53 +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
phrisk
42782589e0 Return after returning player offers to avoid redundant remove offer following (!237)
#### Summary

> Should fix [Issue 523](https://dev.sp-tarkov.com/SPT-AKI/Issues/issues/523)

Tested a few different scenarios and the items were always correctly removed and returned to the player, however I did see the console warnings reported in the issue.

Both of the following call `this.ragfairOfferHandler.removeOffer(...)`:

 - `this.returnPlayerOffer(...)`
 - `this.removeOfferById(...)`

The latter logs a warning to the console because the offer is already removed when we reach that point.

This fix simply returns after the offer has been returned to the player, letting `returnPlayerOffer` deal with removing from the flea

Co-authored-by: phrisk <phrisk@phrisk.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/237
Co-authored-by: phrisk <phrisk@noreply.dev.sp-tarkov.com>
Co-committed-by: phrisk <phrisk@noreply.dev.sp-tarkov.com>
2024-02-27 23:45:47 +00:00
Dev
a1a5aa356a Add missing medical filter on backpack loot cache builder
remove hard coded 2 stim limit from assault
2024-02-27 23:44:23 +00:00
Dev
bf317b6c2f updated setFindInRaidStatusForItem() to be protected + added return type
Improve comments inside `InventoryHelper`
2024-02-27 12:12:46 +00:00
Dev
3bc9833e57 Update getPlayerStashSize() to take into account bonus STASH_ROWS 2024-02-27 12:02:03 +00:00
Dev
7ec5d89608 Add ability to insert stash rows to profile 2024-02-26 23:51:45 +00:00
Dev
bde364388f Allow enabling snow in raid via SPT friend 2024-02-26 19:35:18 +00:00
Dev
51e1f7734e Add missing standing logging inside getFenceStandingChangeForKillAsScav() 2024-02-26 19:15:26 +00:00
Dev
47882e59d6 only show Found x insurance packages in profile in console, not log file 2024-02-26 18:24:45 +00:00
Kaeno
3c113ddf7f Fixed ammobox breaking client + profile due to ragfair refresh adding extra ammo to ammo boxes 2024-02-26 16:32:56 +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
40b31e1fe0 improved initialize() inside PresetController 2024-02-25 11:54:13 +00:00
Dev
a5450c6552 Moved addItemWithChildrenToEquipmentSlot() from BotWeaponGeneratorHelper to botGeneratorHelper 2024-02-25 11:45:34 +00:00
Dev
5f8b0592cc Updated foldItem() to use a .find() call instead of looping over all inventory items 2024-02-25 11:43:49 +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
DrakiaXYZ
19013a478f If a preset has a different _id property than its object key, output an error and skip it. (!233)
This resolves an issue where a mod with bad preset data is able to break loot generation

Can be tested by changing the "\_id" property of an item preset in globals.json, and seeing the error output to the console.

A better solution for the future may be to deprecate the "\_id" property entirely, and use just the object key, however that would have more far reaching changes compared to this simple fix

Co-authored-by: DrakiaXYZ <565558+TheDgtl@users.noreply.github.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/233
Co-authored-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
Co-committed-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
2024-02-24 23:26:27 +00:00
Dev
b5cde813a3 Cleanup of date calculation code 2024-02-23 16:10:18 +00:00
Dev
386aeee9d7 Updated server to match raid times with live 2024-02-23 16:05:30 +00:00
Dev
6d84dbb2d4 Commnent improvement 2024-02-22 21:51:44 +00:00
Dev
104fd03b39 FIxed infinite loop when only one item exists in pool and bot has maxed out number of that item already 2024-02-22 21:48: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
cdb55ef7d5 Weight PMC look by price, higher price = smaller weight 2024-02-22 14:02:32 +00:00
Dev
ded7142774 Comment improvement 2024-02-22 13:55:57 +00:00
Dev
a26ff26a4a Add code to add items to a wallets flee slot if available 2024-02-22 13:52:59 +00:00
Dev
25a4e64e9a Invert Currency check 2024-02-21 18:37:24 +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
6cda845f1f Handle when foldItem() tries to modify an item without a upd object 2024-02-20 14:17:04 +00:00
Dev
867b1ea50f Add COMB_MUZZLE_DEVICE to BaseClasses enum 2024-02-20 13:12:30 +00:00
Dev
2e8cb81016 Format draw() 2024-02-20 09:12:16 +00:00
Dev
0bf2cf38fe Add logging to drawAmmoTpl to help with finding mod errors 2024-02-20 09:07:48 +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
5917fbce38 When generating a bots appearance check if it has a body/hand mapping in globals and use that if isNotRandom is set 2024-02-19 11:55:24 +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
DrakiaXYZ
886d99bb71 Fix achievement progress being wiped after doing a scav run (!232)
There is no need to copy all achievement counters from scav to PMC, we only need to copy the achievement counters where the achievement side is "Savage"

Co-authored-by: DrakiaXYZ <565558+TheDgtl@users.noreply.github.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/232
Co-authored-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
Co-committed-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
2024-02-18 16:32:46 +00:00
DrakiaXYZ
97994fc0a6 Handle IsAlwaysSpawn in the same way we handle spawnpointsForced to allow single spawn restrictions (!231)
Also move the relaxation key single spawn limit to Streets instead of shoreline

Co-authored-by: DrakiaXYZ <565558+TheDgtl@users.noreply.github.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/231
Co-authored-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
Co-committed-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
2024-02-18 09:03:37 +00:00
Dev
2e245d98ff Merge branch '3.8.0' of https://dev.sp-tarkov.com/SPT-AKI/Server into 3.8.0 2024-02-17 21:56:23 +00:00
Dev
5386ca8d5a Small improvements to updateFuel() 2024-02-17 21:55:43 +00:00
DrakiaXYZ
b84531bb27 Fix the "Unable to transfer stack" exception on scav post-raid screen (!230)
Switched `transferItem` to use the `getOwnerInventoryItems` method, so that it properly handles transfer events on the scav inventory

Bit of cleanup and consistency changes made to the `transferItem` method

Testing instructions in issue: https://dev.sp-tarkov.com/SPT-AKI/Issues/issues/483

Co-authored-by: DrakiaXYZ <565558+TheDgtl@users.noreply.github.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/230
Co-authored-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
Co-committed-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
2024-02-17 20:53:47 +00:00
DrakiaXYZ
8853ff9aad Remove maps the player can't access due to PMC level from the list of possible daily locations (!229)
This change should handle any map having its level range changed.

With base data, no changes should occur, because GZ currently lists level 0-100 as its level range. You can however change GZ's base.json to limit it to level 20 for testing

Co-authored-by: DrakiaXYZ <565558+TheDgtl@users.noreply.github.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/229
Co-authored-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
Co-committed-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
2024-02-17 10:48:52 +00:00
DrakiaXYZ
91c154daa8 Fix some armor not showing up on the flea when Operational filter is enabled (!228)
Some plate carriers have no required plates, and thus were failing the functional check. I've changed it to check for an item count greater than the required plate count (Since `items` also contains the carrier itself).

Co-authored-by: DrakiaXYZ <565558+TheDgtl@users.noreply.github.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/228
Co-authored-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
Co-committed-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
2024-02-17 10:48:22 +00:00
Dev
64810f7216 Fixed completing a quest not failing linked quests properly 2024-02-17 10:46:38 +00:00
Dev
e9ad1c50a0 Fixed quest completion check not working for quests that have string values inside its AvailableForStart status array 2024-02-17 10:13:19 +00:00
Kaeno
fbbc410182 fix not being able to sell keys that are unlimited and have uses. Thanks drakia 2024-02-16 21:18:06 +00:00
Dev
edd5f0bbb4 Log skills gained when repairing armor using kits 2024-02-16 20:02:00 +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
Dev
bb10151bda Add Santas's bag to christmas event items array 2024-02-16 15:30:56 +00:00
Dev
87229cc58d Make killing a traitor scav give positive fence rep 2024-02-16 15:11:09 +00:00
Kaeno
ab86830a1a Update Wildspawntypes Enums to match client 2024-02-16 14:40:52 +00:00
Dev
8be821cec0 Clear bot cache of data prior to generating bots for first time 2024-02-16 14:40:14 +00:00
Dev
21caeed3db Improve fence multi-stack assort handling 2024-02-16 13:41:16 +00:00
Kaeno
cfe321cf4b Change durability calculation to match live better 2024-02-16 12:56:39 +00:00
qe201020335
a7ae3c3c67 Fix ProbabilityObjectArray.draw returning undefined when the pool is initially empty (!227)
It now returns an empty array if the pool is initially empty.

This function does not guarantee the number of elements returned because it will break out the loop early if the pool is exhausted.

Co-authored-by: qe201020335 <qe201020335@sina.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/227
Co-authored-by: qe201020335 <qe201020335@noreply.dev.sp-tarkov.com>
Co-committed-by: qe201020335 <qe201020335@noreply.dev.sp-tarkov.com>
2024-02-16 10:12:15 +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
2965709535 Fix ammo packs not showing on fence 2024-02-15 23:34:04 +00:00
Dev
d352f678b3 Removed debug logging 2024-02-15 23:14:53 +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
qe201020335
a1d82af41f Fix dynamic loot generation not respecting spawn point's IsAlwaysSpawn field (!226)
A similar field can also be seen in static container generation which the value is respected

Also Limited the amount of random draws to avoid going over the `desiredSpawnpointCount`
- Consider a potential mod that changes every spawn point's `IsAlwaysSpawn` to true, then there is absolute no point for the generator to draw them again and only to have them removed during dedupe

Co-authored-by: qe201020335 <qe201020335@sina.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/226
Co-authored-by: qe201020335 <qe201020335@noreply.dev.sp-tarkov.com>
Co-committed-by: qe201020335 <qe201020335@noreply.dev.sp-tarkov.com>
2024-02-15 09:09:35 +00:00
DrakiaXYZ
d77c930396 Fix bitcoin desync between client/server while offline (!225)
The server expects that the total "Progress" when a bitcoin is complete to be the "ProductionTime" value (145000 by default). However the server was using a modified target value, while only adding the actual time change to the Progress.
This results in a drift over time between the client/server while the server is stopped, as the client gets an incorrect value on startup.

If we instead scale the addition to Progress based on the adjusted craft time, and target the base productionTime for completion, we can get a much more accurate progress while offline that matches the client

I used the profile from this ticket for testing: https://dev.sp-tarkov.com/SPT-AKI/Issues/issues/496

The user has both an upgrade and bitcoin going at the same time, so they should progress at the same rate. This is what the code was previously resulting in:
![image](/attachments/fe428a3b-d271-40e1-a3f6-08ef936224b6)

While the server was shut down for 50 minutes (As noted by the upgrade), only 36 minutes was deducted from the bitcoin craft.

This is the result of that same profile after these changes were made:
![image](/attachments/d2ce44e6-1a0e-4991-aa51-3eb340c22ca5)

You can see that ~2 hours 25 minutes was deducted from both the upgrade, as well as the bitcoin craft timer. There is still a slight discrepancy, but in a total bitcoin run it should be minimal

Co-authored-by: DrakiaXYZ <565558+TheDgtl@users.noreply.github.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/225
Co-authored-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
Co-committed-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
2024-02-15 08:57:26 +00:00
Dev
f449a51f6a Further output object changes 2024-02-14 15:11:19 +00:00
Dev
99df88ec24 Clean up passing IItemEventRouterResponse around and then returning it in same function 2024-02-14 14:59:43 +00:00
Dev
b294766304 Only pass sessionId into createPlayerOffer() instead of full profile 2024-02-14 14:12:53 +00:00
Dev
8ad8193194 Improve comments 2024-02-14 14:11:54 +00:00
Dev
bafb3e4569 Remove unnecessary pre SPT 3.6.x null check 2024-02-14 14:04:30 +00:00
Dev
22d158f8a4 Remove second call to this.saveServer.getProfiles() + only run offer processing for profiles that have the necessary level to create flea offers 2024-02-14 14:01:27 +00:00
Dev
991ee312bd Remove redundant call to get pmc profile when we already have full profile 2024-02-14 13:52:44 +00:00
Dev
882d1b6ee5 FIx equipment preset flea seach not showing any offers 2024-02-14 11:58:17 +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
9403ff796e Merge branch '3.8.0' of https://dev.sp-tarkov.com/SPT-AKI/Server into 3.8.0 2024-02-13 16:32:01 +00:00
Dev
9c2ee34d6f When inspecting item, save result to scav and pmc profile 2024-02-13 16:16:36 +00:00
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
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
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
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
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
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
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
1858fe5bd5 Fix pockets being lost on death 2024-02-10 23:28:36 +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
Kaeno
882c1d6082 Allow Scavs to examine items and retain their Encyclopedia (Examined Items) 2024-02-10 14:17:33 +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
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
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
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
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
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
c097914e45 Add system to ignore armor plate slots when removing plates not suitable for flea 2024-02-08 16:53:14 +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
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
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
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
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
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
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
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
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
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
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
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
63603f5d9a Reduce grizzly count added to PMC secure to 1 + morphine to 2 2024-02-04 14:43:37 +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
193161f786 Fix preset buy searches not filtering items based on search criteria/player level 2024-02-04 09:31:00 +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
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
b6a57553de Enhance profile template initial trader standing system to be per trader 2024-02-03 15:53:28 +00:00
CWXDEV
06ce2c090e Fix Required Search 2024-02-03 15:26:15 +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
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
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
Dev
5136d69050 Implement flea required searching 2024-02-02 19:23:08 +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
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
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
Dev
3bf44b7863 Update handleScavCase() to use addItemsToStash() 2024-02-01 12:42:02 +00:00
Dev
d564a7a992 Comment improvements 2024-02-01 12:35:18 +00:00
Dev
16cb48ad70 Improvements to handleRecipe()
Cleaner handling of stackable rewards
Moved task condition counter lookup to own function
2024-02-01 12:31:48 +00:00
Dev
44560991b0 Improve handleRecipe()
Better handling of item rewards that need to be split into root + child (ammo boxes)
Use `addItemsToStash()`
move `recipe.isEncoded` check to earlier in function

make use of `getItem()` inside `splitStack()` instead of direct db access
2024-02-01 11:23:32 +00:00
Dev
92d949b445 Comment improvements 2024-02-01 10:24:10 +00:00
Dev
8c99b25df0 Rename interface to IOwnerInventoryItems 2024-02-01 09:58:20 +00:00
Dev
1e4d07937b Update getBTC() to make use of new function 2024-02-01 09:58:04 +00:00
Dev
406c59789a Add interface 2024-02-01 09:50:50 +00:00
Dev
8d8baec766 Add new addItemsToStash() function to InventoryHelper 2024-02-01 09:48:46 +00:00
Dev
69735b5037 Check inventory has space before adding bitcoins from craft 2024-01-31 23:39:01 +00:00
Kaeno
23ceca5279 Blacklist Quest Items from Scav Case 2024-01-31 22:52:55 +00:00
Dev
95dd27038d improve accuracy of daily quest system
Keep completed dailies inside "activeQuests" array until dailies are refreshed
Adjust post-raid quest handling to ensure previously completed/failed quests keep their original status
2024-01-31 14:38:18 +00:00
Dev
a45cc3052e Fix issue with choosing a default mod for a weapon when the bot doesnt have the default mod in their mod pool already - would result in missing vital mods causing a fallback to a default weapon preset 2024-01-30 21:14:15 +00:00
Dev
9616f9b34b Improve armor slot compatibility checking 2024-01-30 16:32:03 +00:00
Dev
81960a23fe Fix bitcoins being returned in bundles instead of individually 2024-01-30 13:24:46 +00:00
Dev
491a5204bb optimisation: only update the current profiles hideout data 2024-01-30 12:16:58 +00:00
Dev
d0af930dc9 Fix not being able to collect bitcoins
Improved handling of server/client sync when clicking 'get iems' to reduce chance of `no bitcoins to collect` error
2024-01-30 12:16:27 +00:00
Dev
55154c8b1a improve block checking logic to be dynamic based on pool size 2024-01-29 23:02:09 +00:00
Dev
f3ec237674 Fix issue with weapon mod generation flagging mod as incompatible even though it passes compatibility checks
Stop trying to fit a mod to a weapon after 8 blocked attempts
Created streamlined mod compatability checker function
2024-01-29 22:41:08 +00:00
Dev
58d620d424 Fix weapon mod generation choosing a default mod only to keep it flagged as incompatible 2024-01-29 21:27:36 +00:00
Dev
bf7e214b77 Add nullguard to updateFuel() when generator slot has no items array 2024-01-29 16:40:58 +00:00
Dev
099e2cd6f3 Update air filters to correctly calculate time they were being used since last hideout update tick 2024-01-29 16:05:32 +00:00
Dev
9b45d40c2b Improve dogtag bonus function for HoF area + allow any side dogtag to be used 2024-01-29 15:56:35 +00:00
Dev
ad0489a9e7 Cleanup of updateFuel()
Make function calculate drain rate for the whole period since last update ran, not just the interval period in config
Look up max fuel storage of item instead of assuming its expeditionary or the other fuel container

Reduce nesting by inventing an if
2024-01-29 15:55:43 +00:00
Dev
a9517bb1cc Remove redundant return statements from RagfairOfferGenerator 2024-01-29 11:22:04 +00:00
Dev
330b1ebf28 declare repeatableQuests as const not let inside removeOrphanedQuests() 2024-01-29 11:12:57 +00:00
Dev
2bb8965c80 Remove redundant else from updateBitcoinFarm() 2024-01-29 11:11:44 +00:00
Dev
079651045d Remove return type from updateWaterFilters() 2024-01-29 11:10:26 +00:00
Dev
4cc7813320 Replace skillType bonus property with enum 2024-01-29 10:48:53 +00:00
Dev
e88a661e7e Convert hideout area bonus property + Bonus type property into an enum and update code that uses altered property 2024-01-29 10:42:02 +00:00
Dev
dbc6bd9a0b Improve reorderHideoutAreasWithResouceInputs() debug messaging 2024-01-29 10:25:14 +00:00
Dev
e579cac907 improve applyPlayerUpgradesBonuses() debug messaging 2024-01-29 09:59:22 +00:00
Dev
8fe2508e00 Improve addItemToStash() debug messaging 2024-01-29 09:54:20 +00:00
Dev
8b691e10a9 Improve server locale handling 2024-01-27 23:33:31 +00:00
Dev
215e8f1c4b Create new SNOW event separte from new years 2024-01-27 23:08:21 +00:00
Dev
8ec94a1322 Skip gifter when removing christmas items 2024-01-27 22:39:57 +00:00
Dev
5ffa186b0e Build fix 2024-01-27 22:38:16 +00:00
Dev
023bf7ac3f Removed return type from generateId() 2024-01-27 21:01:57 +00:00
Dev
88179f1c4c Remove return type for generateInventoryID() 2024-01-27 20:31:20 +00:00
Dev
8cf9cb8e15 Fix issue with getDynamicOfferPriceForOffer() not seeing presets correctly after ragfair rework 2024-01-27 20:00:18 +00:00
Dev
ccb610dda6 Add config property forceOnlyArmoredRigWhenNoArmor + wire it up 2024-01-27 18:52:36 +00:00
Dev
734d821630 Improve mod item filtering code 2024-01-27 18:12:13 +00:00
Dev
8ca0c5d82b Remove faceshield from headwear section 2024-01-27 17:08:01 +00:00
Dev
b3f2e3e2a5 Stop PMCs being genered as usec with side of bear 2024-01-27 16:19:26 +00:00
Dev
30efd8b720 Only add location property to mag cartridge stacks when more than 1 is added 2024-01-27 15:03:15 +00:00
Dev
b6327b7d0d Build fix 2024-01-27 09:03:39 +00:00
Dev
ac78ce1b82 Make name consistent 2024-01-26 22:40:30 +00:00
Dev
26ebe6cfca Add modUrl for mod data 2024-01-26 22:37:40 +00:00
Dev
89b16cf7c1 remove 2 lint errors 2024-01-26 17:57:42 +00:00
Dev
59bc9cb3e0 Move bot hands/head/voice over to weighted lists 2024-01-26 17:57:13 +00:00
Dev
3764d923fd Linting 2024-01-26 15:56:53 +00:00
Dev
9b09319d3d Cleanup of cancelled player flea offer code 2024-01-26 10:49:06 +00:00
Kaeno
09a07ece66 Fix to Items not retaining upd properties when returning them from hideout area stashes 2024-01-25 23:49:35 +00:00
Dev
9520a2977e Move variable calculation outside of loop 2024-01-25 22:38:42 +00:00
Dev
c116adc0b9 Clenaed up how PMC names are replaced during event 2024-01-25 22:17:18 +00:00
Dev
e8013321ce improve flea result filtering to allow weapon presets to show when searching for 1 build item but ignore presets when searching for mulitple 2024-01-25 15:09:10 +00:00
Dev
9b47c3b50e Fix being unable to buy items via equipment preset menu 2024-01-25 14:40:28 +00:00
Dev
fd7050b0ac Fix issue with weapon/equipment mod selection where it would ignore settings when mod slot was required
Fix JSON errors in bot.json
2024-01-25 13:45:42 +00:00
Dev
fc9e3f9f59 Fix server error when generating single sptBear/sptUsec 2024-01-25 12:59:45 +00:00
Dev
9fbed0c23f Variable cleanup of generateModsForEquipment() and removal of duplicate call to db 2024-01-25 10:55:33 +00:00
Dev
2c50139dba Round armor/weapon durability values to 2 DP 2024-01-25 09:30:50 +00:00
Dev
7d734a18f1 Bot wave adjustments
Remove gifter from streets
Remove manual waves from streets
2024-01-24 19:49:42 +00:00
Dev
a6eac990aa Add more missing props to ITempalteItem 2024-01-24 17:29:11 +00:00
Dev
008d431cf2 Add missing props to ITemplateItem 2024-01-24 17:20:42 +00:00
Terkoiz
d2254249e6 Fixed and expanded QTE type definitions (!206)
Co-authored-by: Terkoiz <terkoiz@spt.dev>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/206
Co-authored-by: Terkoiz <terkoiz@noreply.dev.sp-tarkov.com>
Co-committed-by: Terkoiz <terkoiz@noreply.dev.sp-tarkov.com>
2024-01-24 16:35:23 +00:00
Dev
e6c3271b23 JSON update 2024-01-24 13:48:02 +00:00
Dev
3ec63ef31d Fix issue with addChildSlotItems() and add additional mods 2024-01-23 21:33:24 +00:00
Dev
b68164b830 Add support for sub locales - initial support for PT and ZH 2024-01-23 20:49:06 +00:00
Kaeno
7f90c52386 Corrected isinsured check 2024-01-23 20:19:53 +00:00
Dev
054aea23e0 Enhance findAndReturnChildrenAsItems with the ability to filter out stored child objects 2024-01-23 20:00:36 +00:00
Dev
2e6574c917 Clean up imports 2024-01-23 16:49:00 +00:00
Dev
d3f9cea4c1 Fix ammobox + magazine cartridges being given to player with an incorrect FiR status, shouild match parents status 2024-01-23 15:24:02 +00:00
Dev
4ce26ea870 Refactor of RagfairAssortGenerator and associated code that touches it 2024-01-23 14:17:01 +00:00
Dev
b766fa1220 Allow armor items without plates to be listed on flea 2024-01-23 12:46:29 +00:00
Dev
27bc7cfa6e Fixed armors being listed with plates above the allowed level on flea 2024-01-23 11:42:47 +00:00
Dev
6378ac6f87 Add back CLIENT_START_TIMESTAMP saving on game start 2024-01-23 10:14:37 +00:00
OkaMoez
1c6b76163b Make accelerated time calculations independent of client (!205)
Changes server accelerated time calculation to be fully independent of client calculations.

Local testing over most of a day showed time acceleration continuing through relogging as a client, and calculated times being synced to about +- 2 seconds between server and client with no drift.

-----------
In #202 I referenced the client side formula for accelerate time:
`In Raid Time = Today's Date + Location Time + Time Since Client Connection * Acceleration`
At the time I didn't know where Location Time was set and conservatively tried to match the server calculations to the client.  Since then I've confirmed that it is set after calling `client/game/start` and holds the accelerated server timestamp from that call.  With this in mind, I'm more confident changing the server calculations and here we are.

Previously each time you started your client, the accelerated time would start counting from your irl time at launch.  This change moves that to the server, so you could leave your server running to have a more live-like experience where you won't be sure of the in raid accelerated time until you log in.

Added benefit of significantly simplifying the `getInRaidTime()` code.

Future work could be done to add save/load support to the server's timestamp to further emulate the live experience where timers won't reset to your irl time unless you wipe the data.  I'd personally lean towards saving it at a server level, not a profile level, to allow multiple profiles to share a single 'wipe'.

-----------

Co-authored-by: OkaMoez <43766412+OkaMoez@users.noreply.github.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/205
Co-authored-by: OkaMoez <okamoez@noreply.dev.sp-tarkov.com>
Co-committed-by: OkaMoez <okamoez@noreply.dev.sp-tarkov.com>
2024-01-23 10:13:53 +00:00
Dev
32eb8ae35c Refactor handleRecipe() to use addItemToStash() 2024-01-21 20:51:00 +00:00
CZPZ
1551a5e793 feature: add probability for extra rep gain on pmc kills as pscav (!204)
Feel free to rename everything.

We can also use the new function from randomutil and replace code block below on InsuranceController.ts

```
        const maxRoll = 9999;
        const conversionFactor = 100;

        const returnChance = this.randomUtil.getInt(0, maxRoll) / conversionFactor;
        const traderReturnChance = this.insuranceConfig.returnChancePercent[traderId];
        const roll = returnChance >= traderReturnChance;
```

I killed 2 PMCs with 100% chance and gained 0.07 rep (rounding issue probably somewhere else)

![image](/attachments/00f00922-eb18-4fdc-8958-129b680af704)

Some JS problems :S

![image](/attachments/dcbeb1d1-2ee3-4809-890e-e19fe3190840)

Implements: https://dev.sp-tarkov.com/SPT-AKI/Issues/issues/150
Co-authored-by: alimoncul <alimoncul@gmail.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/204
Co-authored-by: CZPZ <czpz@noreply.dev.sp-tarkov.com>
Co-committed-by: CZPZ <czpz@noreply.dev.sp-tarkov.com>
2024-01-21 17:39:37 +00:00
Dev
c68c9a72fb Refactor handleScavCase() to use addItemToStash()
blacklist soft armor inserts from scavcase rewards
2024-01-21 16:40:14 +00:00
DrakiaXYZ
e31c52e7ff Add BTR config options (!203)
Also add the cover service entry

Co-authored-by: DrakiaXYZ <565558+TheDgtl@users.noreply.github.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/203
Co-authored-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
Co-committed-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
2024-01-21 08:46:12 +00:00
Dev
693dc4bbb5 Fix PMCs not spawning 2024-01-20 22:50:12 +00:00
Dev
910b5e946c Refactor removeResourceFromArea() to use addItemToStash() 2024-01-20 22:42:15 +00:00
Dev
d112d0fa6e Reworked openRandomLootContainer() to make use of addItemToStash() 2024-01-20 22:13:47 +00:00
Dev
af50cb7869 FIx getProfileTraderPurchase() failing when trader doesnt exist in profile 2024-01-20 20:37:41 +00:00
Dev
80b549a2d5 Migrate getBTC() to use addItemToStash() 2024-01-20 20:26:55 +00:00
Dev
ceba6b3064 Move isItemInStash into inventoryHelper
Cleanup of variable names
2024-01-20 20:15:03 +00:00
Dev
4bca0b7747 Migrate giveProfileMoney() to use addItemToStash() 2024-01-20 20:06:15 +00:00
Dev
399bbb2e3b Add framework for BTR config 2024-01-20 18:47:57 +00:00
Dev
13ce200f80 Small optimisations applied to reateRandomLoot() 2024-01-20 18:08:09 +00:00
Dev
80fdaf65e6 Finalise fence changes 2024-01-20 17:56:19 +00:00
Dev
42b915990e Moe majority of assort generation from FenceService into FenceBaseAssortGenerator
Generate an items children and store in fence assort base

Better handle presets
Fix `removeRandomItemFromAssorts()` not removing all of an items mods from memory
Correctly calculate an items price including its children
2024-01-20 16:20:39 +00:00
OkaMoez
8b2fa7c8dd Adjust server raid time calculations to match client (!202)
This change brings the server in raid time calculation (accelerated time/time you see when choosing a map) to parity with the client.

The time returned by `getInRaidTime()` effectively is the same, but the server can stop using `acceleration - 1` and the adjacent comment has an answer.

-----

The Tarkov client calculates current raid time via the following formula in `Session.GetCurrentLocationTime()`:
`In Raid Time = Today's Date + Connection Time + Time Since Client Connection * Acceleration`

The server currently uses the following:
`In Raid Time = Current Date and Time + Time Since Client Connection * (Acceleration - 1)`

The `Current Time` and `-1` used in the server calculation effectively cancel each other out if `acceleration > 1`.  Removing both should have no effect on the calculated time (not date).

The client side using `Today's Date + Connection Time` is kinda weird.  Using `acceleration = 1`, you'd see the calculated date move 2 days after 24 hours.  That said, I don't see the date portion of the raid time being used, so that might not matter.  Either way, I've matched the formula to avoid any edge cases causing desync.

Co-authored-by: OkaMoez <43766412+OkaMoez@users.noreply.github.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/202
Co-authored-by: OkaMoez <okamoez@noreply.dev.sp-tarkov.com>
Co-committed-by: OkaMoez <okamoez@noreply.dev.sp-tarkov.com>
(cherry picked from commit afb64c1ebf)
2024-01-20 10:02:59 +00:00
Dev
05533bb166 Prevent no exit data killing client start 2024-01-20 00:19:52 +00:00
Dev
a1f043d088 Fix issie with BuyRestrictionCurrent value persisting between profiles 2024-01-20 00:19:13 +00:00
Dev
4fd37e3a92 Fix all items being free 2024-01-19 22:49:31 +00:00
Dev
134d789a0e Merge branch '3.8.0' of https://dev.sp-tarkov.com/SPT-AKI/Server into 3.8.0 2024-01-19 19:23:11 +00:00
Dev
1c9acbbc2e improve bot generation time 2024-01-19 19:21:51 +00:00
Kaeno
812a6a6884 Fix function removing daily/weekly quests from profile on profile load 2024-01-19 16:41:35 +00:00
Dev
cdb5baac4b Improve variable names 2024-01-19 12:10:51 +00:00
Dev
34b9d318a3 Pull some code out of addLootFromPool() into its own function 2024-01-19 11:57:25 +00:00
Dev
63ca393372 Add short circuit optimisation to isItemIncompatibleWithCurrentItems() 2024-01-19 09:56:18 +00:00
Dev
f3f008e0ec Rename function to help with clarity 2024-01-19 09:52:56 +00:00
Dev
c96b177416 Disable use of sorting table when buying from flea/trader/fence - fixes client error 2024-01-19 09:08:11 +00:00
Dev
0d4fdf11e3 include handling armors without plates 2024-01-18 23:29:07 +00:00
Dev
310762d66d Refactor airdrop loot generation to account for armor plate changes 2024-01-18 23:25:08 +00:00
Dev
ea0d8224e6 Add loop to try multiple armor pieces to find one that's compatible with bots current loadout 2024-01-18 22:36:14 +00:00
Dev
8f12bf479a Generate armor vest for bots first, then rig 2024-01-18 21:39:35 +00:00
Dev
6eeb8c58d6 Improve iRagfairConfig comments 2024-01-18 20:30:13 +00:00
Dev
c8fa31184f Prevent gifter bot being added twice 2024-01-18 12:20:28 +00:00
Dev
bb741f681d Store and process secure container loot items for bots
Give gifter more items
2024-01-18 12:07:32 +00:00
snowythefox811
f6192f1891 Added The ability to have enhancements on armored rigs and helmets. (!200)
Added the vest and headwear classes to be eligible for armor enhancement

Co-authored-by: Snow <Notarealemail@email.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/200
Co-authored-by: snowythefox811 <snowythefox811@noreply.dev.sp-tarkov.com>
Co-committed-by: snowythefox811 <snowythefox811@noreply.dev.sp-tarkov.com>
(cherry picked from commit 35eb9feebf)
2024-01-18 09:08:22 +00:00
Dev
04edb19f14 Allow dogtags to be added to custom bots 2024-01-17 22:17:12 +00:00
Dev
f38d098aae Exclude scav coop exits when choosing pmc exit 2024-01-17 16:47:53 +00:00
Dev
727a85f5fc Improve repeatable quest exit choice code 2024-01-17 16:39:55 +00:00
Dev
43cbe45376 Make players PMC equipment id unique on profile creation 2024-01-17 15:05:01 +00:00
Dev
d9186e0e48 Improve workaround for spawnpoint values 2024-01-17 10:45:25 +00:00
Dev
03a451115c Temp fix to ensure dynamic loot count generator doesnt generate a negative value 2024-01-16 21:55:25 +00:00
Dev
15be241dbf FIx premature exiting of loop 2024-01-16 19:00:21 +00:00
Dev
93edb3e074 Fix player being charged multiple times
Fix issue with  `findBarterItems()` where it would incorrectly wipe out found results each loop
2024-01-16 18:25:03 +00:00
Dev
33d1395dea Add debug logging to getSortedMoneyItemsInInventory() 2024-01-16 17:24:28 +00:00
Dev
fbee59fede When choosing an item to add to a bot, check if the item being added would block an item already equipped 2024-01-16 13:14:48 +00:00
Dev
0166e30dd1 Reduce instances of IItemEventRouterResponse being passed into a function and then returned, its an object and passed by ref, no need to return it
Reduce instances of `IItemEventRouterResponse` being reassigned in a function

Rename `getMoney` to `giveProfileMoney`
2024-01-16 12:21:42 +00:00
Dev
9daa706325 Use correct buycount when buying from fence 2024-01-16 12:08:30 +00:00
Dev
ca1df5ee71 FIx appendErrorToOutput() overwriting warnings instead of appending 2024-01-16 12:04:55 +00:00
Dev
818bb7e37a Refactored flea purchase code 2024-01-16 11:47:40 +00:00
Dev
4d1066b51a Make use of presetHelper instead of rolling own implementation 2024-01-16 10:28:08 +00:00
Spoony
e1a8f26507 Generate ammo box Ragfair offers with cartridges (!198)
#### TL;DR
Previously, Ragfair offers involving ammo boxes weren't generated with cartridges inside of them. This copies a lot of the logic from `InventoryHelper.hydrateAmmoBoxWithAmmo()` to add ammo to offers when they are generated. Made to fix #312.

#### Testing
Purchased various ammo boxes from Flea:

![image](/attachments/340fb349-2589-4b1a-81fa-f8d63f6f1a36)

Purchased ammo boxes are listed as full:

![image](/attachments/f52057d3-efe0-40e7-b64e-8d257a818fa5)

Unloading them produces correct ammunition:

![image](/attachments/33c71f7b-d452-473e-9705-cbad1ecc3f7d)

Co-authored-by: Spoony <Spoony@example.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/198
Co-authored-by: Spoony <spoony@noreply.dev.sp-tarkov.com>
Co-committed-by: Spoony <spoony@noreply.dev.sp-tarkov.com>
2024-01-16 10:26:48 +00:00
Dev
2787b25c8d Items json changes 2024-01-15 23:14:15 +00:00
Dev
34628561ce Filter repeatable explore quest map exits per side 2024-01-15 23:13:57 +00:00
Dev
825db77b1f Move trader purchases over to new system
Fix callback errors not being propigated into client error message
FIx incorrect offer id being passed into `buyItem`
Update callbacks to accept a `buyCount` parameter - solves trader purchase limits being exeeded prematurely
Exit addItemToStash early if warning/error found in output
2024-01-15 14:25:17 +00:00
Merijn Hendriks
bdc505bed6 Add locales fallback (!197)
Fixes [#310](https://dev.sp-tarkov.com/SPT-AKI/Issues/issues/310)

Co-authored-by: Merijn Hendriks <merijn.d.hendriks@gmail.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/197
Co-authored-by: Merijn Hendriks <senko-san@noreply.dev.sp-tarkov.com>
Co-committed-by: Merijn Hendriks <senko-san@noreply.dev.sp-tarkov.com>
2024-01-15 12:45:24 +00:00
Dev
cff4a45291 Resolve fence selling helmets that lack inserts 2024-01-15 12:41:54 +00:00
Dev
0d059fbaf4 Remove ancient profile fix 2024-01-15 10:07:57 +00:00
Dev
1d9ff8ace8 Improve buyItem() to also support putting fence purchases through addItemToStash() 2024-01-14 22:30:05 +00:00
Dev
2f07d6083f Fix armor plates/visors/helmet plate inserts not having thier durability altered on ragfair 2024-01-14 22:28:53 +00:00
Dev
5005a5160a Improve buyItem() handling of multiple and stackable item purchases
rename `reparentPresets` to `reparentItemAndChildren` and move to `itemHelper`
2024-01-14 21:12:56 +00:00
Dev
c2f390d4ac Make all properties of ITrader optional 2024-01-14 15:06:43 +00:00
Dev
303be64880 Move code to its own variable 2024-01-14 14:38:10 +00:00
Dev
47a84e508b Fix some quests failing twice (chemical part 4), reducing rep twice as much as it should
Quest failure is handled by client now, no need to find and fail quests in server on quest completion

Move `getQuestsFailedByCompletingQuest()` to questHelper
2024-01-14 12:29:58 +00:00
Dev
4efb75ea58 Fix typo 2024-01-14 10:27:45 +00:00
Dev
41d491dd16 Show error when quest not found in db 2024-01-14 10:27:26 +00:00
Dev
8b03faca89 Fix ragfair offers not saving upd properties
Create replacement for `addItem()`, only used for ragfair purchases currently - goal is to fully remove `addItem()`

Dont show warning when generating armor without a default plate on fence
2024-01-14 10:09:43 +00:00
Dev
72fdada5d7 Add vistor shot damage to those listed on flea/fence - 25% chance a damaged helmet can have a visor with bullet hits
Improved `FenceService.addModsToArmorModSlots()` to not break when it cant find a default plate tpl
2024-01-13 20:47:59 +00:00
Dev
bf148dba4a First pass at implementing Place of fame dogtag bonus, bonus is slight out from what is shown on client (0.0x out) 2024-01-13 16:41:06 +00:00
Dev
46ec7bf3ba Improve handling of presets when adding to player inventory
Presets now have all child items FiR status set
2024-01-13 15:01:29 +00:00
Dev
ae6bb7a43b Small cleanup of preset handling code in addItem() 2024-01-13 15:00:31 +00:00
Dev
6cd82ce2a6 Add location property minFillLooseMagazinePercent
Make static/dynamic magazine loot have chance to not have cartridges
2024-01-13 12:30:15 +00:00
Dev
48f99ecfa6 Additional changes to randomiseWeaponDurabilityValues()
Move chance to make changes check outside of function
Aliased ragfair config property
Aliased chosen child multipler value
Added comment to function
2024-01-13 09:15:11 +00:00
r2go
a87129c541 #284 fixed flea armors not having random values (!193)
https://dev.sp-tarkov.com/SPT-AKI/Issues/issues/284

Probably needs some balancing since some armors are very random, some are not at all. It feels pretty realistic I think.

Any feedback is appriciated.

Co-authored-by: r2go-beep <hans@hummelusa.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/193
Co-authored-by: r2go <r2go@noreply.dev.sp-tarkov.com>
Co-committed-by: r2go <r2go@noreply.dev.sp-tarkov.com>
2024-01-13 09:03:51 +00:00
CWXDEV
22ad266b27 why the f*ck we using spaces and not tabs :reee: 2024-01-12 23:47:41 +00:00
CWXDEV
091e4fa41b added check to make sure same item isnt used, still has an edge case, if maxRequestedAmount is too high, and we cant offer enough items, dupes will appear, but this will fix normal use 2024-01-12 23:44:58 +00:00
CWXDEV
04564d7e76 Merge branch '3.8.0' of https://dev.sp-tarkov.com/SPT-AKI/Server into 3.8.0 2024-01-12 22:00:02 +00:00
CWXDEV
f7bdded54d remove orphaned quests to stop softlocking quest screen. 2024-01-12 21:59:38 +00:00
Dev
0440bdab70 Reworked flea armor listing code
Randomises plate durability
Randomises insert durability
2024-01-12 21:59:30 +00:00
Dev
eb961b3e11 Fix saveEquipmentBuild() not correctly setting root id to first items _id 2024-01-12 17:18:10 +00:00
Dev
98241d894f Rework how plates are filtered from bot equipment
Add `filterPlatesByLevel` to bot config
2024-01-12 17:00:22 +00:00
Dev
bf7dac25ae Allow fence to strip items from listed weapons that're not raid-modadble, players can sell broken guns to him from menu 2024-01-12 13:33:11 +00:00
Dev
c5806aadb8 Allow fence to list items with missing required items 2024-01-12 13:30:22 +00:00
Dev
3a76757957 Add various missing type properties for new map 2024-01-12 13:00:48 +00:00
Dev
d92f30d281 Fix insurance return all child items of an item (ammo in mags/chamber) 2024-01-12 12:32:04 +00:00
Dev
cb18d251ba Improve selection of items to add mods for:
quest rewards
bot loot gen
map loot gen
fence assort gen

Updated `removeRandomModsOfItem()` to also skip slots with a _required prop
2024-01-11 17:42:58 +00:00
Dev
6a8e261af1 Fix typo 2024-01-11 12:48:10 +00:00
Dev
3b255f3ce4 Fix createMagazineTemplate failing when no userbuilds.magazineBuilds array exists 2024-01-11 11:53:19 +00:00
DrakiaXYZ
fcbd39c6b0 Remove delivered items from player insured items (!191)
This stops players from duplicating insured items via the BTR delivery service

Note: This does un-insure the item, I don't have any proof one way or the other for whether live causes the items to no longer be insured, but this was the easier solution to implement.

Co-authored-by: DrakiaXYZ <565558+TheDgtl@users.noreply.github.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/191
Co-authored-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
Co-committed-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
2024-01-11 08:13:27 +00:00
Dev
3ef7e3218e Update loot data 2024-01-10 23:07:06 +00:00
Dev
219086d9bb Fix only one type of bot spawning 2024-01-10 21:08:00 +00:00
Dev
f66b2d04a9 Revert "This PR aims to resolves issue #280 (!190)"
This reverts commit e0e62d8e47.
2024-01-10 17:43:39 +00:00
Dev
dc1e172df0 Handle generating a fence armor item and a default plate is not found
Add extra plates to pool

Centralise plate-related checks into itemhelper
2024-01-10 14:47:09 +00:00
Dev
7ee3be1e2b Round completeTime property to integer to prevent client error 2024-01-10 14:10:03 +00:00
Dev
c918875a38 Fix view profile not showing correctly 2024-01-10 13:53:26 +00:00
Dev
9a4231d8b8 Rename function profileHelper.removeCompletedQuestConditionFromProfile() to removeQuestConditionFromProfile 2024-01-10 12:37:34 +00:00
Dev
297bc2786a Improve armor quest rewards
Attempt to return the armor preset found in globals.json first as this has default plates, if that fails construct item outselves based on mods _requried properties
2024-01-10 10:04:09 +00:00
Dev
55eae60329 Merge branch '3.8.0' of https://dev.sp-tarkov.com/SPT-AKI/Server into 3.8.0 2024-01-10 09:14:11 +00:00
Dev
2fd2c677b7 Reduce usage of magic string inside getUserBuilds() 2024-01-10 09:13:34 +00:00
Mihai
e0e62d8e47 This PR aims to resolves issue #280 (!190)
Updated itemDelivery method in InraidController to filter out insured items from the items array using the insuranceService.
Added logic to exclude insured items from being sent as part of the delivery message to the player.

Co-authored-by: mihaicm93 <45673304+mihaicm93@users.noreply.github.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/190
Co-authored-by: Mihai <mihai@noreply.dev.sp-tarkov.com>
Co-committed-by: Mihai <mihai@noreply.dev.sp-tarkov.com>
2024-01-10 08:44:03 +00:00
Dev
f59041121b Fix plate filtering code not correctly handling when no plates of desired armor level are found 2024-01-09 23:46:57 +00:00
Dev
4078d7cc89 Fix plates not spawning on bots because of capitalisation 2024-01-09 20:16:49 +00:00
Dev
443d8da7f7 FIx server error when passing failed quest data to client 2024-01-09 18:46:44 +00:00
Dev
a9c36ec205 Fix issue with armors as quest rewards not being sent with soft inserts
Centralised a soft insert check into `ItemHelper`

Add extra base types to `generateGearPool()` in equipment bot pool service
2024-01-09 16:49:59 +00:00
Dev
154578dd44 Update randomisation config to specifiy its for weapon mods + add equipment mod adjustment system
Adjust PMCs to use more gear mods at higher levels
2024-01-09 16:15:31 +00:00
Dev
f3964639bd Rename mods to weaponMods and add new object equipmentMods
regenerate bot jsons to include this new data (includes correct inclusion of equipment slot "TacticalVest" which was previously missing)

Fix issue with PMM ammo causes generation issues
2024-01-09 15:31:56 +00:00
Dev
a742beeae9 Comment and property name cleanup inside removeDanglingTaskConditionCounters() 2024-01-09 12:27:08 +00:00
Terkoiz
98b0a579b3 Fixed achievement counters getting mistakenly cleaned up as stale quest counters (!189)
Fixes #273

Co-authored-by: Terkoiz <terkoiz@spt.dev>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/189
Co-authored-by: Terkoiz <terkoiz@noreply.dev.sp-tarkov.com>
Co-committed-by: Terkoiz <terkoiz@noreply.dev.sp-tarkov.com>
2024-01-09 11:57:27 +00:00
Dev
01e63118c6 Rename function 2024-01-09 10:58:06 +00:00
Dev
bac86262d4 Improve handling of equipment mod generation 2024-01-09 10:30:00 +00:00
Dev
15d53a2d38 Fix armor in bot backpacks having no soft inserts
centralise code that adds mods to equipment into one location
2024-01-08 23:27:18 +00:00
Dev
5ffccddf94 Nullguard against missing properties 2024-01-08 21:17:23 +00:00
Dev
878284f108 Fix issue with insurance not returning soft inserts for armors 2024-01-08 21:16:53 +00:00
Dev
e18f75a60c Cast trader property to number before use 2024-01-08 21:14:13 +00:00
Dev
0c7cecdacd Add variable durability loss to armor plates sold by fence 2024-01-08 17:43:19 +00:00
Dev
0997c21ba3 Remove debug code 2024-01-08 17:39:28 +00:00
Dev
6dc4604a77 Update inventoryHelper.addItem() to account for items with children that have a upd object
This whole function is in dire need of a rewrite, its awful
2024-01-08 12:41:52 +00:00
Dev
507e8eeaa7 Improve comments 2024-01-08 11:35:20 +00:00
Dev
96f75fd744 Correctly remove item + children from fence assorts when running removeFenceOffer() 2024-01-08 11:34:52 +00:00
Dev
30507acd1b Add armor to randimisation list for PMCs 2024-01-08 10:22:24 +00:00
Dev
07b5ab432e Check for empty pool when adding mods to equipment during loot generation 2024-01-08 09:40:18 +00:00
DrakiaXYZ
3401b4094e Initial commit of trader services structure (!187)
- Only contains BTR taxi and delivery services
- Super basic implementation, client doesn't seem to need anything except the service type for these
- Includes handling of the BTR Item Delivery service

Basic implementation can be merged and expanded on later, doesn't break anything by existing (Hopefully)

I've opted to add the routes to the `InRaid` controller/Callbacks, because it is a route only accessed within the raid. Seemed like it would be the best place for it

Co-authored-by: DrakiaXYZ <565558+TheDgtl@users.noreply.github.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/187
Co-authored-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
Co-committed-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
2024-01-08 08:51:46 +00:00
Dev
0b3ad5bbd8 Only send failed quest trader messages for non-repeatable quests 2024-01-07 23:51:28 +00:00
Dev
5eda074dbe Add comments 2024-01-07 23:11:18 +00:00
Dev
928e406b76 First draft of randomisd armors on fence 2024-01-07 22:11:05 +00:00
Dev
f0b9785d16 Add BTR_ITEMS_DELIVERY to enum MessageType 2024-01-07 21:21:20 +00:00
Dev
92e600e906 Improve logic for choosing an exit inside generateExplorationQuest() 2024-01-07 20:49:33 +00:00