100 Commits

Author SHA1 Message Date
Dev
c2402af09e Add small refactors to 2 functions 2024-08-31 20:48:32 +01:00
Kaeno
ae6f2e4417 Gear stand changes to match dump data. Will cause client to hang. 2024-08-26 21:31:31 +01:00
CWX
05c4bb1946 Update comments, refactor check 2024-08-26 20:47:09 +01:00
CWX
b3b36c37ee dont send upgrades back to client for gear area 2024-08-26 20:39:04 +01:00
Dev
0d611eae24 Add pocket item to mannequin on area upgrade 2024-08-26 18:54:10 +01:00
Dev
7dfa911213 Added comments to function 2024-08-26 14:23:23 +01:00
Dev
63cf9ae132 Created new CircleOfCultist service and transplanted all code from Hideout controller into it 2024-08-26 11:46:38 +01:00
Dev
6803ee6241 Cultist circle:
Added support for weapon/armor rewards
Added support for variable stack sizes (only ammo for now)
Added support for breaking out of reward item while loop if no item is found (5 attempts max)
Added helper function `itemHelper.getRandomisedAmmoStackSize()`
2024-08-26 11:17:10 +01:00
Dev
d720f7fa3a Refactor of Circle of sacrifice code, added getRewardsWithinBudget() 2024-08-25 19:29:13 +01:00
Dev
768a275253 Logged error when nothing can be placed in reward grid 2024-08-25 15:13:50 +01:00
Dev
d3e7e1006b Increased multipler to 140%
Limited reward items to 5
2024-08-25 15:02:18 +01:00
Dev
94f3bd0d02 Removed debug/redundant code 2024-08-25 14:47:02 +01:00
Dev
c13d5c49a5 Added functionality to send player rewards based on cost of items sacrificed 2024-08-25 14:32:29 +01:00
TetrisGG
eee46aad30 Fix CircleOfCultists not finishing (!402)
Production resp should be null according to network dumps. Also instead of delete nulled out the recipe, so that it properly overwrites the id.

Co-authored-by: TetrisGG <tetrisggdev@gmail.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT/Server/pulls/402
Co-authored-by: TetrisGG <tetrisgg@noreply.dev.sp-tarkov.com>
Co-committed-by: TetrisGG <tetrisgg@noreply.dev.sp-tarkov.com>
2024-08-25 13:30:10 +00:00
Dev
244fe62617 Added code to create a pool of items the player needs to complete crafts/upgrade areas in their hideout for the cultist circle rewards 2024-08-25 13:46:47 +01:00
Dev
c8e66de039 Refactored addUpdateInventoryItemToProfile()and added addMissingPresetStandItemsToProfile() 2024-08-24 22:34:53 +01:00
Dev
557dc55a33 Implemented inclusion of standx items when updating/installing hideout equipment area
Set area to level 0 for USEC
Removed unnecessary mannequin pose array from dev profiles
2024-08-23 23:41:50 +01:00
Dev
6d7c4d95b6 Added further progress on cultist circle - now rewards items upon completion
Now handles `HideoutDeleteProductionCommand` event, Deletes sacrificed items on craft start
Set craft time to 30 secs for debugging
2024-08-22 17:48:39 +01:00
Dev
38d2f88e0c Fixed circle craft not registering correctly 2024-08-22 12:43:30 +01:00
Dev
c6877f998b Updated StartTimestamp to be stored as a string 2024-08-22 12:34:54 +01:00
Dev
47fcff1338 Added further work to circle of sacrifice area 2024-08-22 10:32:35 +01:00
Dev
3d8d09cc18 Expanded implementation of circleOfCultistProductionStart 2024-08-21 19:56:29 +01:00
Dev
7316e6377d Added equipment preset area to addUpdateinventoryItemToProfile blacklist 2024-08-21 17:05:38 +01:00
Dev
471c606e12 Updated production recipe interface to match live 2024-08-21 14:43:19 +01:00
Dev
f4d1ac9097 Added TODO inside circleOfCultistProductionStart 2024-08-21 13:45:03 +01:00
Dev
726e4f4b2c Stubbed out HIDEOUT_CIRCLE_OF_CULTIST_PRODUCTION_START event 2024-08-21 13:36:51 +01:00
Dev
858026b5b9 Handled edge case handling for adding an item to a hideout area 2024-08-21 13:28:30 +01:00
Dev
0839f34b9b Updated addContainerImprovementToProfile to better handle cultist circle 2024-08-21 13:05:59 +01:00
Dev
c45f4c5f4b Added s to Improvement
Updated hideout area enum
2024-08-20 21:19:00 +01:00
Dev
8014bdd06f Updated water filtering system to correctly check the craft progress against the ProductionTime value stored in the profile instead of the base ProductionTime value in the hideout json.
This is because the base value doesn't take into account any craft bonuses the profile has

After collecting a product from a continious craft, `ProductionTime` in the profiles craft data will be refreshed, this resolves issues with adjusting the `production.json` craft times not applying to continuous crafts
2024-08-09 16:04:43 +01:00
TetrisGG
7b835f1501 Fix Bonuses in various Services using Find and not filter. 2024-08-09 15:03:50 +01:00
Refringe
5740774a46
Apply Biome Formatting
This is the result of running `npm run format` which applies the Biome formatting rules. Rejoice!
2024-07-23 11:12:53 -04:00
Refringe
ed8dbbd195 Adds Biome - Removes ESLint & Prettier (!383)
Boogidy, boogidy, boogidy. Let's go racing! 🏎️

Removes the over-complicated and super-slow setup we had with ESLint & Prettier in favour of Biome. The largest change with the formatting is moving from Allman braces to 1TBS braces. Other than that, it's *pretty much* the same. Ah, and that Biome runs formatting and linting on the entire project about x10 faster than the old system ran formatting on one file. Seriously, the guy who came up with that last solution should be fired. :runs:

I've kept all of the formatting and linting commands the same as before, with the main mamma-jamma being: `npm run format`, which applies formatting and linting changes to the entire project.

Formatting-on-save works (quickly!) by (1) ensuring that you're working within the VSC workspace (as you should be), and (2) have the recommended Biome VSC extension installed. The link to the Biome extension is in the README.

This limits our options on code formatting going forward; Biome, like prettier, is very opinionated with very few formatting options available. But I see this as a good thing. I'd rather spend my time arguing about which gun in Tarkov is the best, rather than coding brace styles...

...It's the TOZ, and it always will be. Don't DM me.

Co-authored-by: chomp <chomp@noreply.dev.sp-tarkov.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT/Server/pulls/383
Co-authored-by: Refringe <me@refringe.com>
Co-committed-by: Refringe <me@refringe.com>
2024-07-22 21:15:57 +00:00
Dev
15eb6eb69f Cleaned up various functions to improve readability
Removed unused function `splitStackIntoSmallerChildStacks()`
2024-06-30 20:38:23 +01:00
Dev
f8bd65ed90 Replaced various array.find() with array.some()
Rewrote `tagItem()` to use `.find()`
2024-06-13 13:41:29 +01:00
Alex
8727f6150e primery-dependencies (!355)
Co-authored-by: clodan <clodan@clodan.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT/Server/pulls/355
Co-authored-by: Alex <clodan@noreply.dev.sp-tarkov.com>
Co-committed-by: Alex <clodan@noreply.dev.sp-tarkov.com>
2024-05-28 14:04:20 +00:00
Dev
fdb7a2b7d8 Updated various classes to use DatabaseService instead of DatabaseServer 2024-05-28 13:59:19 +01:00
Alex
173a726f33 Removed all null references in favor of undefined (!354)
Co-authored-by: clodan <clodan@clodan.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT/Server/pulls/354
Co-authored-by: Alex <clodan@noreply.dev.sp-tarkov.com>
Co-committed-by: Alex <clodan@noreply.dev.sp-tarkov.com>
2024-05-27 20:06:07 +00:00
Alex
d13e86ba46 Rebranding to SPT (!345)
Rebranded src code and scripts to SPT

Co-authored-by: clodan <clodan@clodan.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/345
Co-authored-by: Alex <clodan@noreply.dev.sp-tarkov.com>
Co-committed-by: Alex <clodan@noreply.dev.sp-tarkov.com>
2024-05-21 17:59:04 +00:00
Refringe
cb169a18b9
Project Code Format
Ran the `npm run format` command to bring the entire project in-line with the formatting rules.
2024-05-17 15:32:41 -04:00
Dev
d95423b0f1 Merge branch 'master' of https://dev.sp-tarkov.com/SPT-AKI/Server into 3.9.0-DEV
# Conflicts:
#	project/assets/configs/core.json
#	project/package.json
#	project/src/models/eft/common/IGlobals.ts
#	project/src/routers/dynamic/BundleDynamicRouter.ts
2024-05-15 16:39:41 +01:00
Alex
f8d1227dfd Introduced a new ICloner interface with 3 implementations, one of them being a recursive cloner which is faster and more efficient than its counterparts by more than 50% (!328)
Co-authored-by: clodan <clodan@clodan.com>
Co-authored-by: Dev <dev@dev.sp-tarkov.com>
Co-authored-by: chomp <chomp@noreply.dev.sp-tarkov.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/328
Co-authored-by: Alex <clodan@noreply.dev.sp-tarkov.com>
Co-committed-by: Alex <clodan@noreply.dev.sp-tarkov.com>
2024-05-13 17:58:17 +00:00
Dev
aeee99bae5 updated removeResourceFromArea() to get FiR status for a fuel item without a upd property 2024-05-10 14:51:23 +01:00
Refringe
50c7a26a58
ESLint Pass
This is the first pass of ESLint on the codebase.

ESLint formatting is less strict when it comes to line-length and line-breaks then dprint/biome, so if you see formatting that you don't like... fix it! It shouldn't require a configuration change.

- This should merge clean into master (when the time comes).
- This will not merge clean into `3.9.0-DEV`, but the conflicts aren't that bad.
2024-05-07 23:57:08 -04:00
Dev
a9d89695f0 Added new service ProfileActivityService
Maintains a timestamp of when each profile was last active on the server.
Timestamp is refreshed on two events: `game/start and `game/keepalive`

Timestamp is used to determine if a profiles hideout should be processed. If a profile has a timestamp older than 90 minutes, it is not processed. (could be set lower but its a conservative value)
This has the side effects of not adjusting the `sptUpdateLastRunTimestamp` property, resulting in `saveProfile()` not running for every profile.

My testing shows a 20x perf increase for every profile in SPT not in use.

Service could likely be used in other scenarios to avoid doing unnecessary work
2024-04-13 12:46:43 +01: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
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