Commit Graph

189 Commits

Author SHA1 Message Date
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
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
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
c097914e45 Add system to ignore armor plate slots when removing plates not suitable for flea 2024-02-08 16:53:14 +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
7bc9fdbe95 Add system to override handbook price, add christmas gift items small/med/large 2024-02-06 12:16:26 +00: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
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
Refringe
90492f3aa2
Formatting
Have you been using the recommended VSCode extensions? ;)
2024-02-02 15:00:21 -05: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
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
c116adc0b9 Clenaed up how PMC names are replaced during event 2024-01-25 22:17:18 +00:00
Dev
b68164b830 Add support for sub locales - initial support for PT and ZH 2024-01-23 20:49:06 +00:00
Dev
27bc7cfa6e Fixed armors being listed with plates above the allowed level on flea 2024-01-23 11:42:47 +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
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
399bbb2e3b Add framework for BTR config 2024-01-20 18:47:57 +00:00
Dev
310762d66d Refactor airdrop loot generation to account for armor plate changes 2024-01-18 23:25:08 +00:00
Dev
6eeb8c58d6 Improve iRagfairConfig comments 2024-01-18 20:30:13 +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
Dev
04edb19f14 Allow dogtags to be added to custom bots 2024-01-17 22:17:12 +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
98241d894f Rework how plates are filtered from bot equipment
Add `filterPlatesByLevel` to bot config
2024-01-12 17:00:22 +00:00
Dev
3a76757957 Add various missing type properties for new map 2024-01-12 13:00:48 +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
30507acd1b Add armor to randimisation list for PMCs 2024-01-08 10:22:24 +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
928e406b76 First draft of randomisd armors on fence 2024-01-07 22:11:05 +00:00
Dev
c6135802be Refactor equipment mod parameters 2024-01-07 14:46:25 +00:00
Dev
749fc75a25 Add randomWeather/randomTime to inraidConfig 2024-01-07 12:56:57 +00:00
Dev
bd60cf51e2 Fix event system not working for events other than halloween and christmas
Allow events to overlap

Rename config property from `enableWinterEvent` to `forceWinterEvent`
2024-01-06 23:29:42 +00:00
Dev
52a5380c33 Add botRelativeLevelDeltaMin to pmc.json to allow configuration of lowest level of pmc relative to player 2024-01-06 15:19:04 +00:00
Dev
8ef405e551 Correctly implemented:
`client/builds/delete`
`client/builds/equipment/save`
`client/builds/weapon/save`

Updated `defaultEquipmentPresets` json data

Removed old 0.13 preset implementation files

profile-breaking change
2024-01-06 11:11:04 +00:00
Dev
1249b309cf Improve accuracy when handling client/achievement/statistic 2024-01-04 21:28:47 +00:00
Dev
90f82d0e03 Update map linkages 2024-01-02 19:12:11 +00:00
Dev
d1b9cbbfc5 Enable snow for christmas/new years 2023-12-29 19:09:03 +00:00
Dev
e27f52c505 Added system to randomise the mods on equipment found as loose/static loot
controlled via config
2023-12-28 21:31:31 +00:00
Dev
9e55a52965 update quest objects and implement get achievemetns 2023-12-27 17:15:38 +00:00
Dev
db70e8e4bc Merge branch 'master' of https://dev.sp-tarkov.com/SPT-AKI/Server into 3.8.0
# Conflicts:
#	project/assets/configs/core.json
#	project/src/controllers/DialogueController.ts
2023-12-27 11:24:49 +00:00
Alex
0ade8f4b9c Added configs and simplification to ChatBot (!180)
Co-authored-by: clodan <clodan@clodan.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/180
Co-authored-by: Alex <clodan@noreply.dev.sp-tarkov.com>
Co-committed-by: Alex <clodan@noreply.dev.sp-tarkov.com>
2023-12-25 08:38:42 +00:00
Alex
66f04f194a Added config to compress profile (zero to none performance difference on high end CPUs) and debug time measurements for load/save times (!178)
Co-authored-by: clodan <clodan@clodan.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/178
Co-authored-by: Alex <clodan@noreply.dev.sp-tarkov.com>
Co-committed-by: Alex <clodan@noreply.dev.sp-tarkov.com>
2023-12-22 09:27:15 +00:00
Dev
90324ed343 Merge branch 'master' of https://dev.sp-tarkov.com/SPT-AKI/Server into 3.8.0
# Conflicts:
#	project/assets/configs/core.json
#	project/package.json
#	project/src/generators/RagfairOfferGenerator.ts
2023-12-19 17:31:19 +00:00
Dev
8a964aef29 improve IScavRaidTimeLocationSettings comments 2023-12-19 13:23:27 +00:00
chomp
1cf8b1ec9b flea-sell-changes (!176)
Co-authored-by: Shibdib <shibdib@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/176
2023-12-17 10:36:54 +00:00
Dev
77dba80fbd Merge branch 'master' of https://dev.sp-tarkov.com/SPT-AKI/Server into 3.8.0
# Conflicts:
#	project/assets/configs/core.json
#	project/assets/database/locales/global/ch.json
#	project/assets/database/locales/global/cz.json
#	project/assets/database/locales/global/en.json
#	project/assets/database/locales/global/es-mx.json
#	project/assets/database/locales/global/es.json
#	project/assets/database/locales/global/fr.json
#	project/assets/database/locales/global/ge.json
#	project/assets/database/locales/global/hu.json
#	project/assets/database/locales/global/it.json
#	project/assets/database/locales/global/jp.json
#	project/assets/database/locales/global/kr.json
#	project/assets/database/locales/global/pl.json
#	project/assets/database/locales/global/po.json
#	project/assets/database/locales/global/ru.json
#	project/assets/database/locales/global/sk.json
#	project/assets/database/locales/global/tu.json
#	project/src/controllers/TradeController.ts
#	project/src/generators/LocationGenerator.ts
2023-12-08 22:20:16 +00:00
Dev
c015882eac Improve handling of a mail profileChangeEvents property 2023-12-07 20:16:04 +00:00
Dev
7f995de5d1 Reworked how the flea market categories are calculated, instead of trying to be smart and add/remove in a cache as offers are created, calculate the categories when needed
Categories:
Are now much more accurate
take into account when player is below flea unlock level
Any with a (1) and no offers have been fixed
Take into account when offers are barters + barters are filtered out

Skip items with a type of `node` during flea assort generation
2023-12-05 20:41:43 +00:00
Dev
1db690afb3 Merge branch 'master' of https://dev.sp-tarkov.com/SPT-AKI/Server into 3.8.0
# Conflicts:
#	project/src/controllers/HideoutController.ts
2023-12-03 11:13:22 +00:00
DanW
1fdd1967e9 Change name of trainArrivalDelaySeconds to clarify its meaning (!171)
Changed the name of the new `trainArrivalDelaySeconds` setting to `trainArrivalDelayObservedSeconds` so it's more obvious that it doesn't actually control the train arrival time.

`trainArrivalDelayObservedSeconds` is my first choice for naming this setting, and `trainArrivalDelayThatYouDefinitelyShouldNotChangeSoDoNotEvenThinkAboutItSeconds` is my second choice.

Co-authored-by: dwesterwick <dwesterwick@yahoo.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/171
Co-authored-by: DanW <danw@noreply.dev.sp-tarkov.com>
Co-committed-by: DanW <danw@noreply.dev.sp-tarkov.com>
2023-12-02 19:41:27 +00:00
Dev
2a3839f6de Move trainArrivalDelaySeconds value into config 2023-12-01 09:03:14 +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
000e48ca4c Allow wave adjustment to be controlled via config param
Prevent bot wave min/max from falling  below 0
2023-11-29 17:18:45 +00:00
Dev
dde5c7e8af Move raid adjustment code into own service
Rename various parts of sytem to better match what it does
2023-11-29 16:52:13 +00:00
Dev
9c2725e2fe Add system that adjusts the loot multipliers for a scav raid based on the percentage of the raid time remaining
Controlled per location

Most maps are capped at 40/50% min

Added multiple config proeprties to configure how system works
Added ability to remove all AppContext values by key

During `getRaidTime()` loot % modifier values are stored in app context,
Then, during `generate()` those values are retreived and applied if found
After loot generation values are reset to their original value
2023-11-28 12:42:58 +00:00
Dev
f9cf3242c8 Add new core config entry fixProfileBreakingInventoryItemIssues, defaults to off
Attempts to fix common issues that happen to profile inventory items:
Duplicate items with the same _id value
Item Tag names with non alphanumeric characters
StackObjectsCount null values
2023-11-28 11:06:08 +00:00
Dev
8d32cf2d03 Store player scav brain data in config and pass to client when requested 2023-11-26 21:33:47 +00:00
Dev
ac459335c0 Add new endpoint to calcualte a reduced raid time for scavs and send the maps base.EscapeTimeLimit value to client for PMC raids 2023-11-26 21:11:03 +00:00
Dev
aa6f765a64 Merge branch 'master' of https://dev.sp-tarkov.com/SPT-AKI/Server into 3.8.0
# Conflicts:
#	project/assets/configs/core.json
2023-11-22 14:28:30 +00:00
Dev
396b56d08d Expose uniqueItemCount config value for use in choosing total items to return in Completion quests
Weekly quests now require more items than dailies
2023-11-19 14:58:45 +00:00
Dev
1def90e9d6 Improve handling of how reward items have their stack count randomised
Separated out how weapons are chosen as rewards

Lowered chance of skill reward

Added additional reward types to most traders
2023-11-19 13:21:34 +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
79cb201b82 Split maxExtracts into additional maxExtractsWithSpecificExit for repeatable quests 2023-11-18 12:32:03 +00:00
Refringe
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
Refringe
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: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/168
2023-11-16 21:42:06 +00:00
Dev
925d9b3f07 Add fence rep gain on taking COOP extract
Refactored fence rep handling code for Car extracts
2023-11-16 11:38:55 +00:00
Refringe
622949cd83
Auto-formatting Sweep 2023-11-15 21:12:40 -05:00
Dev
c9dc0d2192 Make each trader reward different types of items
Prevent trader from rewarding more than 1 weapon
Fixed trader failing to find default weapon to send as reward
2023-11-14 23:05:34 +00:00
Refringe
a190311612
Removes IUUidGenerator Class
Removes the `IUUidGenerator` class in favour of the built-in `crypto.randomUUID()` method.
2023-11-07 23:27:52 -05:00
Dev
847586f073 Merge branch 'master' of https://dev.sp-tarkov.com/SPT-AKI/Server into 3.8.0 2023-11-07 14:44:26 +00:00
Dev
7defca2ae4 Add ability for repeatable quests to reward skill points
Slightly increase rep gain from weekly quests
2023-11-07 14:38:13 +00:00
Dev
24894643de Merge branch 'master' of https://dev.sp-tarkov.com/SPT-AKI/Server into 3.8.0 2023-11-04 10:43:06 +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
a5a0bf82d7 Changes after feedback from Drakia 2023-11-02 21:16:31 +00:00
Dev
981da646b0 Add 2023 haloween event system
Event bots are generated from their base type, then their role is updated before being sent to the client e.g. peacefullZryachiyEvent becomes bossZryachiy for generation, then back to peacefullZryachiyEvent
2023-11-02 15:02:18 +00:00
Dev
0a85f6f319 Merge branch 'master' of https://dev.sp-tarkov.com/SPT-AKI/Server into 3.8.0 2023-11-02 09:00:14 +00:00
DrakiaXYZ
ebeda336db Implement live-like calculation of Weapon Maintenance XP (!164)
- Implement formula based on 30 weapon repairs done on live
- Return the repair amount as `repairAmount` from `repairItemByKit`
- Add an additional `repairPoints` to `RepairDetails` to return the repair points used
- Update `repairAmount` references to `repairPoints` to keep old behavior
- Add new parameter to rewardSkillPoints that applies live-like level scaling
- Only give weapon maintenance XP when using a repair kit

This implementation comes with a "Crit Fail" and "Crit Success" mechanic to account for live sometimes randomly being -4 or +4 off from my estimated values. By default the chance of each is 10%, and they can overlap and cancel each other out

Spreadsheet of live repair data:
https://docs.google.com/spreadsheets/d/1-tR4WYelhZfKZ3ZDbxr3nd73Y60E1wQRjDWONpMVSew/edit?usp=sharing

Useful columns:
C: The amount of dura attempted to be repaired, this is used in the estimated skill calculated
G: Hand entered value of how much skill gain I actually saw on live (Multiplied by 10 for readability. So "3.2" would be "32")
J: The estimated skill gain, based on the calculation included in this merge request
K: How far off the estimated skill gain was (Negative implies we guessed high and the actual result was lower)

One thing of note:
I've modified all the existing references to `repairAmount` to be the new `repairPoints` when a repair kit is used. This is to keep the existing behaviour outside of my direct changes as much as possible.

However, this seems to be incorrect in some cases (For example, buff chance is repairPoints/maxDura, but repairPoints will go down the higher your int. I'm assuming this is meant to be repairedDura/maxDura). May want to update these references to use `repairAmount` once they've been confirmed to expect the repair amount instead of repair points used.

Co-authored-by: DrakiaXYZ <565558+TheDgtl@users.noreply.github.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/164
Co-authored-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
Co-committed-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
2023-11-02 08:56:02 +00:00
Dev
73be87bee4 Update IBotDurability with additional bot types 2023-10-28 12:44:44 +01:00
DrakiaXYZ
170a185928 Add a new /singleplayer/log route (!160)
Add a new /singleplayer/log route for logging data to the server console from the client

Supports:
- All server log levels
- `Custom` log level with text/background color
- Specifying the source of the log line (ex. Plugin name)

Example output:
![Example](https://i.imgur.com/c0XBYLm.png)

Co-authored-by: DrakiaXYZ <565558+TheDgtl@users.noreply.github.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/160
Co-authored-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
Co-committed-by: DrakiaXYZ <drakiaxyz@noreply.dev.sp-tarkov.com>
2023-10-26 09:44:17 +00:00
Dev
1cf63ad1ad Split pmc kill requirement for elimination into separate min/max counts from other bot types 2023-10-24 15:01:31 +01:00
Dev
20b9a39cda Add missing IDs to json and pass throughout code 2023-10-19 21:36:17 +01:00
TheSparta
418d9f2a8f Import path alias on the whole project (!157)
- Ability to use @spt-aki path alias on the whole project.
- Swapped all imports from relative paths, for imports using the path alias.

Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/157
Co-authored-by: TheSparta <thesparta@noreply.dev.sp-tarkov.com>
Co-committed-by: TheSparta <thesparta@noreply.dev.sp-tarkov.com>
2023-10-19 17:21:17 +00:00
TheSparta
6231d73109 Implemented loadBefore and loadAfter (!156)
This PR adds the ability to set `loadBefore` and `loadAfter` on a mod's package.json, this allows for modders to define an array of mods their current mod needs to load before or after.

Examples:

if we have <u>__MOD1__</u> that has `loadAfter` = `[ "MOD2" ]` the loading order would be:

1 - MOD2
2 - MOD1

if we have <u>__MOD2__</u> that has `loadBefore` = `[ "MOD1" ]` the loading order would also be:
1 - MOD2
2 - MOD1

Begone zzzzzz, name your mods the way you want to.

Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/156
Co-authored-by: TheSparta <thesparta@noreply.dev.sp-tarkov.com>
Co-committed-by: TheSparta <thesparta@noreply.dev.sp-tarkov.com>
2023-10-18 14:44:29 +00:00
Dev
650a3173c8 Implement Pickup quests for scav
It seems like these are scav-only
2023-10-17 16:28:48 +01:00
Dev
87e2948806 Remove scripts content from imported mods package data 2023-10-14 09:48:24 +01:00
Dev
3c3fd56e65 Send gift to player after taking coop extract 2023-10-12 20:04:50 +01:00
Dev
db619a30b3 Add boss item blacklist and wire into:
airdrops
scav cases
sealed weapon containers
daily quests

Default boss item filter to on
2023-10-12 11:00:04 +01:00
Dev
968911e3de Refactored repeatable quest system
Moved quest generation code into its own class
Moved shared methods used by controller and generator into helper class
2023-10-11 17:43:57 +01:00
Dev
0986bd0932 Make separate bossKill min/max properties + adjust various difficulty values 2023-10-11 17:05:06 +01:00
Dev
c2a6ca678e Add support for daily quests to request specific weapon kill requirements on elimination quests 2023-10-11 17:04:18 +01:00
chomp
0b67a9a0e9 0.13.5.0 (!147)
Co-authored-by: Dev <dev@dev.sp-tarkov.com>
Co-authored-by: Terkoiz <terkoiz@noreply.dev.sp-tarkov.com>
Co-authored-by: TheSparta <thesparta@noreply.dev.sp-tarkov.com>
Co-authored-by: Refringe <refringe@noreply.dev.sp-tarkov.com>
Co-authored-by: Kaeno <e>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/147
2023-10-10 11:03:20 +00:00
Dev
96de45e580 Expose SPT friend nickname in core config 2023-08-09 16:01:51 +01:00
chomp
6a864bffa9 Rework high flea listing price adjuster to be configurable, more item types can be added (!111)
Co-authored-by: Dev <dev@dev.sp-tarkov.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/111
2023-08-06 11:36:07 +00:00
Dev
1bf3dba1a9 Add 1% chance all PMCs in players game are named after them with random prefixes 2023-08-01 13:31:58 +01:00
Dev
82de7c097d Replace old "evil x" pmc name system with v2 2023-08-01 12:51:40 +01:00
Dev
5b7199b952 Update flea prices + Add sytem for adjusting unreasonable high mod prices on flea 2023-07-30 15:22:19 +01:00
Dev
a514a94b45 Improve wording + Add missing properties from config 2023-07-29 10:16:03 +01:00