569 Commits

Author SHA1 Message Date
Dev
35e48add20 Added ability to override hideout craft times via config 2024-04-06 20:25:57 +01:00
Dev
13ab57298b Add endpoint to allow getting all bot difficulty data in one call 2024-04-06 16:57:01 +01:00
Dev
da523f2deb
Added clarifying comment 2024-04-06 11:25:09 -04:00
Dev
6690704208
29577 2024-04-06 11:25:04 -04:00
Dev
798dcfffaa
Prevent nullref when profile is missing the Place of Fame area on game start
variable cleanup in build controller
2024-04-06 11:23:57 -04:00
Refringe
740ab1e563
Lint fixes 2024-03-30 14:25:46 -04:00
Dev
c05347279b Added variable hideout update() check times when in and out of raid 2024-03-30 15:15:06 +00:00
Dev
4bb5e3de43 Remove redundant registerProduction() function 2024-03-30 11:33:02 +00:00
Dev
a66b6644a1 Add crafting skill into water filter drain rate calculation
Added small optimisation to only process water filters if a water filter is installed
Added crafting skill bonus to water filter craft time calculation

Various variable/comment renames for clarity
2024-03-30 11:32:14 +00:00
Refringe
41ef66298e
Skip Processing Deleted Insurance Attachments
This check simply skips over rolling for insurance for attachment items that have already been deleted due to their main-parent item being previously rolled for deletion.
2024-03-28 00:29:46 -04:00
Refringe
8a20da7e08
Resolves Insurance Attachment Return Issue
This update resolves an issue that was causing items that were not in-raid moddable to be rolled for insurance. We were checking to see if the item is in-raid moddable within the context of the main-parent item (the gun), but not the immediate parent item (upper receiver). This update resolves this by checking to see if the immediate parent is set on the attachment, and if it is, checking within that context instead of the main-parent context.

Thank you to Roselyn Cristal for the report. ♥️
2024-03-28 00:26:40 -04:00
Kaeno
cd8d6eaecf Update Scav fence rep after using a carextract to keep profiles in sync 2024-03-25 07:28:24 +00:00
Dev
eca6f4bd75 Copy adjusted fence rep value into scav profile 2024-03-24 22:08:32 +00:00
Dev
2516354451 Fixed getNewlyAccessibleQuestsWhenStartingQuest() not filtering out quests flagged for non-player side 2024-03-24 17:17:40 +00:00
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
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
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
ee7c2aab36 Nullguard inspecting a keycard when scav has no encyclopedia init 2024-03-20 17:47:48 +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
Dev
f2254b150a Add funtionality to propigate scav Charisma gains into PMC based on live testing 2024-03-18 12:56:34 +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
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
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
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
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
Dev
561c5a7ffc Remove unused injection + lint 2024-03-10 23:18:42 +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
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
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
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
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
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
DrakiaXYZ
0433308fa8 Fix tools not coming back with the right properties after crafting (!238)
This resolves an issue where FiR tools were coming back as non-FiR. We now just store the whole .upd property, so any stats on the tool should carry over to after the craft is finished

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

Co-authored-by: DrakiaXYZ <565558+TheDgtl@users.noreply.github.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/238
Co-authored-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
Co-committed-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
2024-02-28 07:55:39 +00:00
Dev
47882e59d6 only show Found x insurance packages in profile in console, not log file 2024-02-26 18:24:45 +00:00
DrakiaXYZ
1deb6d9488 Add trader service requirement support & LKS Service requirements (!235)
Add LightKeeper trader service requirements

Co-authored-by: DrakiaXYZ <565558+TheDgtl@users.noreply.github.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/235
Co-authored-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
Co-committed-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
2024-02-25 20:18:54 +00:00
Dev
40b31e1fe0 improved initialize() inside PresetController 2024-02-25 11:54:13 +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
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
386aeee9d7 Updated server to match raid times with live 2024-02-23 16:05:30 +00:00
Dev
6cda845f1f Handle when foldItem() tries to modify an item without a upd object 2024-02-20 14:17:04 +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