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

59 Commits

Author SHA1 Message Date
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
d49bf4a378 Replace single letter variables with better names 2024-04-23 21:07:34 +01:00
Dev
fe7d09e075 Improved logic inside isModValidForSlot() to better handle edge cases 2024-04-22 09:39:32 +01:00
df93245e9d Fix incompatible default mods being used in required slots (!299)
This prevents weapons from getting the default mods for their base preset when they won't fit other required mods.

This was observed on the AK-74M, where the weapon generator would choose the VDM CS gas tube, which is incompatible with the default AK-74 polymer handguard (6P20 Sb.9).

When this occurs, the generator will bypass the default mod selection and instead choose from the loot pool assigned to the handguard in the bot configs.

SPT-AKI/Issues#596

Reviewed-on: SPT-AKI/Server#299
Co-authored-by: Brent <wiggyvidyadev@gmail.com>
Co-committed-by: Brent <wiggyvidyadev@gmail.com>
2024-04-18 14:29:16 +00:00
Dev
1dda9efbd7 Move ExhaustableArray into its own file + make it implement interface 2024-02-25 11:17:33 +00:00
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
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
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
422b7878ab Add getMatchingPreset() and add workaround for silenced DVL choosing wrong barrel mods 2024-02-05 15:36:05 +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
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
90492f3aa2
Formatting
Have you been using the recommended VSCode extensions? ;)
2024-02-02 15:00:21 -05: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
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
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
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
9fbed0c23f Variable cleanup of generateModsForEquipment() and removal of duplicate call to db 2024-01-25 10:55:33 +00:00
Dev
1c9acbbc2e improve bot generation time 2024-01-19 19:21:51 +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
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
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
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
01e63118c6 Rename function 2024-01-09 10:58:06 +00:00
Dev
db13df89d9 Add plate filtering system based on bot level 2024-01-07 15:34:59 +00:00
Dev
c6135802be Refactor equipment mod parameters 2024-01-07 14:46:25 +00:00
Dev
17c4d6cec0 Rework on equipment generation to process mods on an item if the item supports them instead of if the bots mods array has mods
Add new bots to bot.json
2023-12-28 18:36:37 +00:00
Dev
f3fee2bc39 Update bot difficulties + fix various mod errors 2023-12-28 10:58:29 +00:00
Dev
31198120a1 Add missing param 2023-12-28 00:07:41 +00:00
Dev
06c60b9fd9 Log bot role on error 2023-12-28 00:06:45 +00:00
Dev
369a8a6cca Begin work on updating equpiment code to handle required mods 2023-12-27 23:29:37 +00:00
Dev
2148eaafe5 Merge branch 'master' of https://dev.sp-tarkov.com/SPT-AKI/Server into 3.8.0
# Conflicts:
#	project/src/context/ApplicationContext.ts
#	project/src/context/ContextVariableType.ts
#	project/src/controllers/QuestController.ts
#	project/src/di/Container.ts
#	project/src/generators/weapongen/implementations/ExternalInventoryMagGen.ts
2023-11-30 10:20:37 +00:00
Dev
a1d6596f8d Fix multiple typos 2023-11-29 11:36:20 +00:00
Dev
0d205ed50c Merge branch 'master' of https://dev.sp-tarkov.com/SPT-AKI/Server into 3.8.0
# Conflicts:
#	project/src/controllers/HealthController.ts
2023-11-18 14:13:08 +00:00
Dev
c2aaf9c6fb Add workaround for stm-9 generating with an impossible configuration and being reset to default 2023-11-17 12:40:23 +00:00
6cd86e67b0
Merge branch 'master' into 3.8.0
# Conflicts:
#	project/.vscode/launch.json
#	project/assets/database/locations/bigmap/base.json
#	project/assets/database/locations/interchange/base.json
#	project/assets/database/locations/rezervbase/base.json
#	project/gulpfile.mjs
#	project/package.json
#	project/src/ErrorHandler.ts
#	project/src/Program.ts
#	project/src/callbacks/DataCallbacks.ts
#	project/src/callbacks/DialogueCallbacks.ts
#	project/src/callbacks/GameCallbacks.ts
#	project/src/callbacks/HandbookCallbacks.ts
#	project/src/callbacks/HealthCallbacks.ts
#	project/src/callbacks/HttpCallbacks.ts
#	project/src/callbacks/LauncherCallbacks.ts
#	project/src/callbacks/LocationCallbacks.ts
#	project/src/callbacks/MatchCallbacks.ts
#	project/src/callbacks/ModCallbacks.ts
#	project/src/callbacks/NotifierCallbacks.ts
#	project/src/callbacks/PresetCallbacks.ts
#	project/src/callbacks/ProfileCallbacks.ts
#	project/src/callbacks/RagfairCallbacks.ts
#	project/src/callbacks/TraderCallbacks.ts
#	project/src/context/ApplicationContext.ts
#	project/src/context/ContextVariableType.ts
#	project/src/controllers/BotController.ts
#	project/src/controllers/CustomizationController.ts
#	project/src/controllers/DialogueController.ts
#	project/src/controllers/GameController.ts
#	project/src/controllers/HealthController.ts
#	project/src/controllers/HideoutController.ts
#	project/src/controllers/InraidController.ts
#	project/src/controllers/InsuranceController.ts
#	project/src/controllers/InventoryController.ts
#	project/src/controllers/LauncherController.ts
#	project/src/controllers/LocationController.ts
#	project/src/controllers/MatchController.ts
#	project/src/controllers/QuestController.ts
#	project/src/controllers/RagfairController.ts
#	project/src/controllers/RepeatableQuestController.ts
#	project/src/controllers/TradeController.ts
#	project/src/di/Container.ts
#	project/src/di/Router.ts
#	project/src/generators/BotEquipmentModGenerator.ts
#	project/src/generators/BotLevelGenerator.ts
#	project/src/generators/BotWeaponGenerator.ts
#	project/src/generators/LocationGenerator.ts
#	project/src/generators/LootGenerator.ts
#	project/src/generators/RepeatableQuestGenerator.ts
#	project/src/generators/WeatherGenerator.ts
#	project/src/generators/weapongen/InventoryMagGen.ts
#	project/src/generators/weapongen/implementations/BarrelInventoryMagGen.ts
#	project/src/generators/weapongen/implementations/ExternalInventoryMagGen.ts
#	project/src/helpers/AssortHelper.ts
#	project/src/helpers/BotGeneratorHelper.ts
#	project/src/helpers/InRaidHelper.ts
#	project/src/helpers/ProfileHelper.ts
#	project/src/helpers/RagfairHelper.ts
#	project/src/helpers/RagfairOfferHelper.ts
#	project/src/helpers/TraderHelper.ts
#	project/src/loaders/ModLoadOrder.ts
#	project/src/loaders/PostDBModLoader.ts
#	project/src/loaders/PreAkiModLoader.ts
#	project/src/models/eft/common/IGlobals.ts
#	project/src/models/eft/common/ILocationBase.ts
#	project/src/models/eft/common/tables/IBotBase.ts
#	project/src/models/eft/common/tables/IProfileTemplate.ts
#	project/src/models/eft/common/tables/ITemplateItem.ts
#	project/src/models/eft/dialog/IAcceptFriendRequestData.ts
#	project/src/models/eft/dialog/IDeleteFriendRequest.ts
#	project/src/models/eft/game/IGameConfigResponse.ts
#	project/src/models/eft/game/IGameKeepAliveResponse.ts
#	project/src/models/eft/game/IGameStartResponse.ts
#	project/src/models/eft/match/IJoinMatchResult.ts
#	project/src/models/eft/notifier/INotifier.ts
#	project/src/models/eft/profile/GetProfileStatusResponseData.ts
#	project/src/models/eft/trade/IProcessBuyTradeRequestData.ts
#	project/src/models/eft/trade/IProcessSellTradeRequestData.ts
#	project/src/models/enums/WildSpawnTypeNumber.ts
#	project/src/models/spt/bots/BotGenerationDetails.ts
#	project/src/models/spt/config/IBotConfig.ts
#	project/src/models/spt/config/IBotDurability.ts
#	project/src/models/spt/config/IInRaidConfig.ts
#	project/src/models/spt/config/ILocationConfig.ts
#	project/src/models/spt/config/IQuestConfig.ts
#	project/src/models/spt/config/ISeasonalEventConfig.ts
#	project/src/models/spt/server/ILocations.ts
#	project/src/models/spt/utils/IUuidGenerator.ts
#	project/src/routers/dynamic/BotDynamicRouter.ts
#	project/src/routers/dynamic/BundleDynamicRouter.ts
#	project/src/routers/dynamic/CustomizationDynamicRouter.ts
#	project/src/routers/dynamic/DataDynamicRouter.ts
#	project/src/routers/dynamic/HttpDynamicRouter.ts
#	project/src/routers/dynamic/InraidDynamicRouter.ts
#	project/src/routers/dynamic/LocationDynamicRouter.ts
#	project/src/routers/dynamic/NotifierDynamicRouter.ts
#	project/src/routers/dynamic/TraderDynamicRouter.ts
#	project/src/routers/save_load/InsuranceSaveLoadRouter.ts
#	project/src/routers/save_load/ProfileSaveLoadRouter.ts
#	project/src/routers/serializers/NotifySerializer.ts
#	project/src/routers/static/BotStaticRouter.ts
#	project/src/routers/static/BundleStaticRouter.ts
#	project/src/routers/static/ClientLogStaticRouter.ts
#	project/src/routers/static/CustomizationStaticRouter.ts
#	project/src/routers/static/DataStaticRouter.ts
#	project/src/routers/static/DialogStaticRouter.ts
#	project/src/routers/static/GameStaticRouter.ts
#	project/src/routers/static/HealthStaticRouter.ts
#	project/src/routers/static/InraidStaticRouter.ts
#	project/src/routers/static/InsuranceStaticRouter.ts
#	project/src/routers/static/ItemEventStaticRouter.ts
#	project/src/routers/static/LauncherStaticRouter.ts
#	project/src/routers/static/LocationStaticRouter.ts
#	project/src/routers/static/MatchStaticRouter.ts
#	project/src/routers/static/NotifierStaticRouter.ts
#	project/src/routers/static/PresetStaticRouter.ts
#	project/src/routers/static/ProfileStaticRouter.ts
#	project/src/routers/static/QuestStaticRouter.ts
#	project/src/routers/static/RagfairStaticRouter.ts
#	project/src/routers/static/TraderStaticRouter.ts
#	project/src/routers/static/WeatherStaticRouter.ts
#	project/src/services/BotEquipmentFilterService.ts
#	project/src/services/BotGenerationCacheService.ts
#	project/src/services/BotWeaponModLimitService.ts
#	project/src/services/PaymentService.ts
#	project/src/services/ProfileFixerService.ts
#	project/src/services/RagfairOfferService.ts
#	project/src/services/RagfairTaxService.ts
#	project/src/services/RepairService.ts
#	project/src/services/SeasonalEventService.ts
#	project/src/utils/RagfairOfferHolder.ts
#	project/src/utils/TimeUtil.ts
#	project/src/utils/UUidGenerator.ts
#	project/src/utils/VFS.ts
#	project/src/utils/collections/queue/Queue.ts
#	project/src/utils/logging/AbstractWinstonLogger.ts
#	project/src/utils/logging/WinstonMainLogger.ts
#	project/src/utils/logging/WinstonRequestLogger.ts
#	project/tests/utils/TimeUtil.test.ts

Manually resolved by Refringe.
2023-11-16 23:35:11 -05:00
4ac12ef70a Formatting/Linting Changes (!168)
These are the formatting & linting configuration changes from the `3.8.0` branch and the changes that they make to the overall project.

The majority of these changes are from running two commands:

`npm run lint:fix`
`npm run style:fix`

This has already been run on the `3.8.0` branch and this PR should make `master` play nicer when it comes to merges going forward.

There are now four VSCode plugins recommended for server development. They've been added to the workspace file and a user should get a UI notification when the workspace is opened if they're not installed.

The four plugins are:
https://marketplace.visualstudio.com/items?itemName=EditorConfig.EditorConfig
https://marketplace.visualstudio.com/items?itemName=dprint.dprint
https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint
https://marketplace.visualstudio.com/items?itemName=biomejs.biome

Once installed they should just work within the workspace.

Also, be sure to `npm i` to get the new dprint application.

Co-authored-by: Refringe <brownelltyler@gmail.com>
Reviewed-on: SPT-AKI/Server#168
2023-11-16 21:42:06 +00:00
0793df60c2
Formatting Change - Space is now given around object properties. 2023-11-13 12:38:16 -05:00
32b47bdc18
Formatting Change - When a statement can be moved into a single line and still be under the maximum line length, it is. 2023-11-13 12:31:52 -05:00
7533d33358
Formatting Change - Operator positions are now at the start of the next line (for multi-line statements). 2023-11-13 12:29:16 -05:00
2b826f8b1e
Conditional Code Adjustments Re:Biome
When multiple falsey conditions are being checked Biome recommends to check for all the truthy conditions negated. Logic remains untouched, while only using one negation. Apparently easier to comprehend.
2023-11-13 12:00:49 -05:00
d3e5418fc8
Formatting for generator classes. 2023-11-13 11:05:05 -05:00
ed1557d26b fixed suppressions/deprecatedSuppressionComment 2023-11-08 19:52:58 +00:00
5b46e956c4 fixed lint/complexity/useLiteralKeys 2023-11-08 19:52:56 +00:00
Dev
8ee176b9d8 Handle when fillCamora() cannot find camora slots in weapons modPool 2023-11-04 20:11:09 +00:00
Dev
93209e4a76 Add config option to force stock to spawn on a bot during weapon generation
Enable it for various bot types (most bosses/raiders)
2023-11-03 17:40:00 +00:00
Dev
220a89b915 Default value to false if not found intead of letting it be undefined 2023-10-29 20:45:35 +00:00