0
0
mirror of https://github.com/sp-tarkov/server.git synced 2025-02-13 09:50:43 -05:00

130 Commits

Author SHA1 Message Date
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: SPT/Server#383
Co-authored-by: Refringe <me@refringe.com>
Co-committed-by: Refringe <me@refringe.com>
2024-07-22 21:15:57 +00:00
Dev
5e3899c426 Improved fillMagazineWithRandomCartridge() logging
(cherry picked from commit f406918bb8bf418ad32daabb947e1004282c1f0b)
2024-07-17 12:44:24 +01:00
Dev
bda69a5563 Added getMoneyTpls() 2024-07-07 19:43:32 +01:00
Dev
5f280612c4 Update interface to correct naming scheme 2024-07-05 09:39:01 +01:00
Dev
c8f08ff2bc Fixed edge case where rigs with no soft inserts or plates is listed on flea, resulting on a sell chance of NaN 2024-07-01 16:37:14 +01:00
Dev
2a750a9989 Fixed regression where sellchance because NaN due to a divide by 0 error 2024-06-22 20:40:13 +01:00
Dev
cf5411336f Adjusted how item quality % is calculated for player flea offers. Now excludes items without any quality modifier from calculation instead of assuming 100% (slightly lowers sell chance of things like armors)
Renamed `getItemQualityModifierForOfferItems()` to `getItemQualityModifierForItems()`
2024-06-19 14:27:58 +01:00
edfe995c52 Initial implementation of an ItemTpl and Weapon enum generator (!364)
ItemTplGenerator will create a full ItemTpl.ts and Weapons.ts file with all items and weapons respectively
Renamed WeaponTypes to Weapons to better indicate its new format
Updated all references to these enums to use the new names
New npm command `npm run gen:items` to run this tool

Co-authored-by: DrakiaXYZ <565558+TheDgtl@users.noreply.github.com>
Reviewed-on: SPT/Server#364
Co-authored-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
Co-committed-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
2024-06-16 08:33:01 +00:00
Dev
da04065d42 Added game version specific dogtags to PMC bots
removed dogtags from `baseClasses` and placed in `ItemTpl`
2024-06-14 14:38:30 +01:00
Dev
f8bd65ed90 Replaced various array.find() with array.some()
Rewrote `tagItem()` to use `.find()`
2024-06-13 13:41:29 +01:00
Dev
3327bc916a Renamed functions to better explain what they do 2024-06-13 11:05:10 +01:00
Dev
8c05345b85 Replaced various magic strings with enum values
Added `itemHelper.getItemFromPool()`
2024-06-13 10:53:07 +01:00
Dev
3c0887172e Fixed MARK_OF_UNHEARD incorrectly adjusting insurance return time
Added `ItemHelper.hasItem()`
2024-06-13 09:47:03 +01:00
Dev
b7a9296fac Expanded getItemName() to return short name when full name is not found 2024-05-31 11:09:19 +01:00
Dev
7d515ad680 Replaced uses of DatabaseServer with DatabaseService 2024-05-28 22:24:52 +01:00
Dev
0dfbf61ddf Replaced usages of parameters with fixed values 2024-05-28 18:32:09 +01:00
8727f6150e primery-dependencies (!355)
Co-authored-by: clodan <clodan@clodan.com>
Reviewed-on: SPT/Server#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
65f27a7d8c Fixed various Object is possibly undefined warnings 2024-05-28 10:25:23 +01:00
173a726f33 Removed all null references in favor of undefined (!354)
Co-authored-by: clodan <clodan@clodan.com>
Reviewed-on: SPT/Server#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
Dev
88242238f9 Peppered fillMagazineWithCartridge() with guards to assist players with finding cause of error 2024-05-26 12:17:47 +01:00
d13e86ba46 Rebranding to SPT (!345)
Rebranded src code and scripts to SPT

Co-authored-by: clodan <clodan@clodan.com>
Reviewed-on: SPT-AKI/Server#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
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
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: SPT-AKI/Server#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
ba1ac09b0b
Merge branch '3.8.2-DEV' into 3.9.0-DEV
# Conflicts:
#	project/src/callbacks/ItemEventCallbacks.ts
#	project/src/models/eft/common/IGlobals.ts
#	project/src/models/eft/common/ILocation.ts
#	project/src/models/eft/common/ILocationBase.ts
#	project/src/models/eft/common/tables/ILootBase.ts
#	project/src/models/eft/common/tables/ITemplateItem.ts
#	project/src/models/eft/weather/IWeatherData.ts
#	project/src/models/spt/bots/BotGenerationDetails.ts
#	project/src/models/spt/config/IPmcConfig.ts
#	project/src/models/spt/config/IWeatherConfig.ts
#	project/src/models/spt/server/IDatabaseTables.ts
#	project/src/models/spt/server/ILocations.ts
#	project/src/servers/http/IHttpListener.ts
2024-05-08 00:21:12 -04:00
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
509e208fb9 Merge branch '3.8.1-DEV' of https://dev.sp-tarkov.com/SPT-AKI/Server into 3.9.0-DEV
# Conflicts:
#	project/assets/configs/pmc.json
#	project/src/helpers/ItemHelper.ts
#	project/src/models/spt/config/IPmcConfig.ts
2024-05-04 21:41:44 +01:00
0502257093 Added functionality for Fence to resell items sold to him by PMCs, and fixed give command giving incomplete preset items and bugged ammo boxes (!317)
Fixes SPT-AKI/Issues#625

Co-authored-by: clodan <clodan@clodan.com>
Reviewed-on: SPT-AKI/Server#317
Co-authored-by: Alex <clodan@noreply.dev.sp-tarkov.com>
Co-committed-by: Alex <clodan@noreply.dev.sp-tarkov.com>
2024-05-01 20:17:09 +00:00
Dev
bddf87a4e2 Prevented drawAmmoTpl() failures from killing loot generation when cartridge data cannot be found inside staticAmmoDist 2024-04-30 23:23:00 +01:00
Dev
267efdc7ea Merge branch '3.8.1-DEV' of https://dev.sp-tarkov.com/SPT-AKI/Server into 3.9.0-DEV 2024-04-29 21:50:12 +01:00
Dev
a1070f941c Added extra guard against adding cartridges to box sold by fence
Skip adding cartridges to ammo box inside `addCartridgesToAmmoBox()` if cartridge already exists
2024-04-28 23:04:37 +01:00
Dev
995d50dba4 made use of function addUpdObjectToItem() 2024-04-28 22:50:39 +01:00
Dev
57557d6063 Migrate loot generation code to use per-map static data - ONLY WORKS WITH CUSTOMS (other maps to follow later) 2024-04-23 10:27:09 +01:00
Dev
d2cf495426 Merge branch '3.8.1-DEV' of https://dev.sp-tarkov.com/SPT-AKI/Server into 3.8.1-DEV 2024-04-23 09:34:58 +01:00
Dev
f82cbc189b Improved how drawAmmoTpl() handles bad static ammo distribution data input 2024-04-23 09:34:01 +01:00
01d97953fa
Fixes Linting Issues
Fixes a number of Biome linting issues:
- Variable implicitly has the any type.
- Use a function type instead of a call signature.
- Reassigning a function parameter is confusing.
- Suppression comment is not being used
2024-04-22 23:43:35 -04:00
5aebbb9c86
Test - ItemHelper - 3.8 Refactor
- Removes unused code from getRepairableItemQualityValue in itemHelper
- Updated tests for getRepairableItemQualityValue to no longer assume a special calculation for armour
- Added tests for adoptOrphanedItems (moved from insuranceController)
2024-04-11 21:18:36 -04:00
Dev
cdec8729aa Fixed scav case never giving unarmored rigs as a reward 2024-03-23 11:23:29 +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
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: SPT-AKI/Server#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
cfee4c10db Added additional soft insert slots to getSoftInsertSlotIds()
Fixes ronin face shield missing soft inserts
2024-02-29 12:24:32 +00:00
Dev
0bf2cf38fe Add logging to drawAmmoTpl to help with finding mod errors 2024-02-20 09:07:48 +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
Kaeno
cfe321cf4b Change durability calculation to match live better 2024-02-16 12:56:39 +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
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
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
Dev
9819ac3737 Mimic live behaviour for ammo box locarion values 2024-02-11 12:12:27 +00:00
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