Dev
ef9ecfd51d
Change warning to debug message
2023-12-06 19:18:25 +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
56366068e0
Remove redundant quest item check from fence assort generation as its already handled by itemHelper.isValidItem()
2023-12-05 15:00:23 +00:00
Dev
ef769cf0d7
Cleanup of var names and comments inside addForcedLoot()
...
Prevent duplicate loot locations with same Id being added to client response
2023-12-04 16:00:44 +00:00
Dev
221cd98316
Allow fixProfileBreakingInventoryItemIssues()
to also fix clothing issues
...
Move `fixProfileBreakingInventoryItemIssues` into `ProfileFixerService`
2023-12-03 20:37:35 +00:00
Dev
fd40d47698
Handle when hideout crafts have null progress values, not just undefined
2023-12-03 14:50:01 +00:00
Dev
48de3139ae
Fix bug where setting ragfairconfig.purchasesAreFoundInRaid to true would make trader purchases on flea Found in raid
2023-12-03 12:06:52 +00:00
Dev
3d28574969
Remove unused ref to uuid generator
2023-12-03 11:43:56 +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
f5e5136603
Fix big that casued bots to spawn with only 1 magazine at most
2023-12-02 19:25:46 +00:00
Dev
12cb176a42
Potential fix for failed/repeatable quests keeping their subtask completed status
2023-12-02 00:10:25 +00:00
Dev
19f6bbaed4
improve weightedRandom()
handling of bad data input
...
update allowed param types, should only be arrays
2023-12-01 17:22:24 +00:00
Dev
52b91cae87
Remove useless length check
2023-12-01 16:45:31 +00:00
Dev
e1790ff7a5
Prevent getWeightedValue()
function from null error if items and weights do not match
2023-12-01 14:15:11 +00:00
Dev
2a3839f6de
Move trainArrivalDelaySeconds
value into config
2023-12-01 09:03:14 +00:00
DanW
1994832281
Improved check for disabling train extracts in Scav raids ( !170 )
...
Made the following changes for determining if train extracts should be disabled in Scav raids:
* When determining at what time the train will leave, include the extraction time and the delay between the train extract activating and it becoming available to board
* Fixed the variable used for determining if the extract should be disabled
* Ensure `MinTime` and `MaxTime` for extracts are never negative
Also, trains are hard, and my brain hurts.
Co-authored-by: dwesterwick <dwesterwick@yahoo.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/170
Co-authored-by: DanW <danw@noreply.dev.sp-tarkov.com>
Co-committed-by: DanW <danw@noreply.dev.sp-tarkov.com>
2023-12-01 08:37:52 +00:00
Dev
8ddad763be
Cleanup of handleScavCase()
2023-11-30 13:44:43 +00:00
Dev
3d01fe6211
Move TraderData
object into ItemEventRouterBase
where it will cause less confusion
2023-11-30 10:30:13 +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
b52ea4f1fa
Only set start time in resetQuestState()
when new status is started
2023-11-30 10:13:45 +00:00
Dev
9ed5869fa6
Reduce calls to this.timeUtil.getTimestamp()
inside getQuestReadyForProfile()
...
Set `startTime` property inside `resetQuestState()`
2023-11-30 10:09:23 +00:00
Dev
67f7eb59c5
Improve handling of profileChanges
, dont overwrite existing data when adding new objects
2023-11-30 10:02:00 +00:00
Dev
288b7cf654
Further cleanup of acceptQuest
2023-11-30 09:36:28 +00:00
Dev
a941a22305
Attempt to resolve issue where failed quests that are restarted retain their previous completed statuses until client restart
...
New function to purge completed condtions + remove status timers beyond what a newly started quest would have + add updated quest status object to `questsStatus` property on profile changes response object
2023-11-29 23:36:31 +00:00
Dev
bfee07d5fe
Fix item tag regex replacing non-english characters
2023-11-29 22:30:23 +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
5d0d9e2cd9
Fix issue where OriginalSurvivalTimeSeconds
would be set to the raid time in minutes, not the survival time in seconds
2023-11-29 14:22:48 +00:00
Dev
3945de8b1f
Fix incorrect NewSurviveTimeSeconds
value being sent to client
...
Thanks to DanW
2023-11-29 13:32:55 +00:00
Dev
a1d6596f8d
Fix multiple typos
2023-11-29 11:36:20 +00:00
Dev
c801dba0b7
Fix some weapons not having their chamber loaded with a cartridge during weapon generation
...
weapons:
weapon_izhmeh_mr43_sawed_off_12g
weapon_izhmash_mp18_multi
`addCartridgeToChamber` assumed the only id a chamber could have was `patron_in_weapon` this is wrong, it can also have `patron_in_weapon_000` and `patron_in_weapon_001`
it also assumed weapons only have one chamber
Some weapons can have multiple chambers
Some weapons can have 1 chamber but have the id `patron_in_weapon_000` not `patron_in_weapon`
2023-11-29 11:35:34 +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
382cf4c785
Update getMessageItemContents()
to handle when its items.data property is null
2023-11-27 18:24:02 +00:00
Dev
cc488477fb
Logging improvements
2023-11-27 17:01:38 +00:00
Dev
58e6cc8cd7
Remove message sending code from acceptRepeatableQuest()
dailies in live do not send messages upon accepting them
2023-11-27 16:35:44 +00:00
Dev
7a798d2b60
Reworked singleplayer/settings/getRaidTime
endpoint
...
Handles adjustments to train extract appearance times
Handles time needed to be alive in a raid to get a Success raid status
Added extra reduction percent weight: 30%
2023-11-27 15:02:35 +00:00
Dev
14e917823c
Nullguard getMessageItemContents()
when checking count of reward items
2023-11-26 22:53:09 +00:00
Dev
130f120fda
Comment change
2023-11-26 22:35:26 +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
1350fdb78b
Find quest in player quest array using .find
instead of .filter
2023-11-25 13:28:52 +00:00
Dev
64722bac17
Add quit exit for gameStart when resetting profile
2023-11-25 13:26:11 +00:00
Dev
eb22acc785
Handle when checking for gun wall level and linked inventory item does not exist
2023-11-25 13:25:43 +00:00
Dev
0b57fe3a5b
Stop addAmmoIntoEquipmentSlots()
from adding ammo if item cannot find container to add item to
2023-11-25 10:04:17 +00:00
Dev
4057301953
Nullguard prior to saving quest data to scav profile
2023-11-24 19:18:29 +00:00
Dev
3c0e6a34f2
Improve addItemWithChildrenToEquipmentSlot()
, Make it return different result when:
...
There are no containers to add item to
Unknown reason
Improved handling of when container has no space for item
Improve `ExternalInventoryMagGen.process()`, Handle edge case when a weapon with a default internal magazine but weapon uses external magazine
Improve most locations that call `addItemWithChildrenToEquipmentSlot()` to log failure reason
2023-11-24 16:05:58 +00:00
Dev
8c7b5da9ff
Rename variable for clarity
2023-11-24 15:38:37 +00:00
Dev
5a2f6b7581
Optimisation: addAmmoIntoEquipmentSlots()
, if it fails because of lack of space, break out of loop and skip trying to add remaining ammo
2023-11-24 15:35:19 +00:00
Dev
a0016ae2fa
Parse result inside getRandomizedMagazineCount()
to number before returning
2023-11-24 15:31:16 +00:00
Dev
0c658745eb
Add missing base class
2023-11-24 15:26:56 +00:00
Dev
27e16e09d7
log when addLooseWeaponsToInventorySlot()
fails to add weapon to bot inventory
2023-11-24 15:26:41 +00:00
Dev
7342849f61
Resolve getRandomizedBulletCount
returning extremely large ammo values for rotating grenade launchers
2023-11-24 15:24:46 +00:00
Dev
dcb579116c
Fix regression in fixIncorrectAidValue
if check
2023-11-23 20:21:02 +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
ddb9917c6b
Rework of post-raid scav/pmc profile handling:
...
Moved logic out of `updateProfileBaseStats()` and into separate functions for pmc/scav, left profile-agnostic code alone
new functions `updatePmcProfileDataPostRaid` and `updateScavProfileDataPostRaid`
scav - Only copy active quest progress from client profile to server scav profile
scav - dont attempt to update trader standings, none exist on scav profile
scav - dont transfer psot-raid limb damage to server profile
Update quest status values similarly to PMC quests post raid to ensure they're consistent with existing quest data in profile
Simplifies `migrateScavQuestProgressToPmcProfile`
made various warnings debug instead
2023-11-20 16:33:04 +00:00
Dev
d2209114c9
Rename parameter as it can be scav or pmc profile
2023-11-20 15:07:59 +00:00
Dev
525e5cd21b
Fix length comparison not working as its an object, not an array
2023-11-20 15:05:35 +00:00
Dev
9929cf8c33
Clone handbook data before caching it
2023-11-20 13:47:47 +00:00
Dev
1abc7e3604
Handle failing a quest while raiding as scav
2023-11-20 11:19:11 +00:00
Dev
ccc017c976
Fix issue with scav case rewards being collectable twice
2023-11-20 10:22:03 +00:00
Dev
2132ea7adb
Fix issue with hideout crafts being collectable twice
2023-11-20 10:14:21 +00:00
Dev
f727b13215
prevent collection quests requesting more than 1 ammo per repeatable quest
2023-11-19 20:29:41 +00:00
Dev
aeea8f6e49
Guard against empty RepeatableQuests
array in profile
2023-11-19 16:12:20 +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
8cb4833001
Fix reward creatio code giving 1 extra reward compared to what was specified
2023-11-19 10:54:06 +00:00
Dev
ee3096328e
Exit reward finding loop when reward pool is empty
2023-11-19 10:52:50 +00:00
Dev
8fe9fb9391
Adjust getWeaponRepairSkillPoints()
to never return a value below 0
2023-11-18 21:59:48 +00:00
Dev
aed65ce1cb
Rework getWeightedCompatibleAmmo()
to loop over cartridges until it finds one compatible instead of giving up after the first failure
2023-11-18 18:46:03 +00:00
Dev
546ae76976
Add missing request object
2023-11-18 15:03:33 +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
b0afad72dd
Randomise min durabiltiy value for weapon/armor collection quests to be 60 or 80%
...
rename param for clarity
2023-11-18 12:33:00 +00:00
Dev
79cb201b82
Split maxExtracts
into additional maxExtractsWithSpecificExit
for repeatable quests
2023-11-18 12:32:03 +00:00
Dev
fa1e15897a
Only heal bodypart if player chose hp healing in post-raid therapist healing screen
2023-11-18 11:33:06 +00:00
Dev
5e919f4793
Only add xp reward to repeatable quests when value is > 0
2023-11-18 11:13:36 +00:00
Dev
0abcd8b3b7
Further adjustments to daily/weekly reward xp/roubles/skill reward chance
...
Adjusted fence quest values in level increments of 10 + make fence reward Euros instead of Roubles
2023-11-17 18:39: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
Dev
ba2666f801
Set production
property to null when no updates are to be sent to the client
2023-11-17 11:13:14 +00:00
Dev
2f122df9f6
Update SPTUSEC and SPTBEAR values
2023-11-17 09:18:30 +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
ba443ca9a9
Fix bot generation error when crazyAssaultEvent
spawns
2023-11-16 18:43:22 +00:00
Refringe
50f8a84f5c
Rewrites a number of filter().reduce() calls to use more straight-forward for...of loop.
2023-11-16 10:18:11 -05:00
Refringe
f6ba864ea8
Removes unnecessary constructor.
2023-11-16 10:16:20 -05:00
Refringe
a4d2013ff6
Converts forEach loop to for...of loop
2023-11-16 10:15:52 -05:00
Refringe
be841a3de3
Resolves Type Issue in ProfileFixerService
...
When attempting to access a property/type that *shouldn't* exist (on purpose) it has to be cast to the type manually, else annoying type error.
2023-11-16 10:11:31 -05:00
Refringe
00be492d5e
Resolves ESLint Naming Convention Issues
2023-11-16 10:09:01 -05:00
Refringe
0ac9e147cb
Resolved post-conflict syntax errors. Sorry!
2023-11-16 10:07:46 -05:00
Dev
b70474133b
Fix multiple locations in code where an array for hideout areas is incorrectly accessed like a dictionary
2023-11-16 14:33:39 +00:00
Dev
15082afde2
Fix reorderHideoutAreasWithResouceInputs()
off by one error because it was checking the index instead of finding the area type
2023-11-16 14:30:08 +00:00
Dev
fce724b380
Fix water collector craft not resetting after completion of craft
2023-11-16 12:55:57 +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
8066eb942e
Merge branch 'fix/linting-errors' into 3.8.0
...
# Conflicts:
# 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/InventoryCallbacks.ts
# project/src/callbacks/LauncherCallbacks.ts
# project/src/callbacks/ModCallbacks.ts
# project/src/callbacks/PresetCallbacks.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/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/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/BotGenerator.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/HttpServerHelper.ts
# project/src/helpers/InRaidHelper.ts
# project/src/helpers/TradeHelper.ts
# project/src/helpers/TraderHelper.ts
# project/src/loaders/PostDBModLoader.ts
# project/src/loaders/PreAkiModLoader.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/IProcessSellTradeRequestData.ts
# project/src/models/external/HttpFramework.ts
# project/src/models/external/tsyringe.ts
# project/src/models/spt/config/ILocationConfig.ts
# project/src/models/spt/server/ILocations.ts
# project/src/routers/dynamic/BundleDynamicRouter.ts
# project/src/routers/dynamic/DataDynamicRouter.ts
# project/src/routers/dynamic/HttpDynamicRouter.ts
# project/src/routers/dynamic/NotifierDynamicRouter.ts
# project/src/routers/save_load/HealthSaveLoadRouter.ts
# project/src/routers/save_load/InraidSaveLoadRouter.ts
# project/src/routers/save_load/InsuranceSaveLoadRouter.ts
# project/src/routers/save_load/ProfileSaveLoadRouter.ts
# project/src/routers/static/BundleStaticRouter.ts
# project/src/routers/static/ClientLogStaticRouter.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/LauncherStaticRouter.ts
# project/src/routers/static/LocationStaticRouter.ts
# project/src/routers/static/MatchStaticRouter.ts
# project/src/routers/static/ProfileStaticRouter.ts
# project/src/routers/static/QuestStaticRouter.ts
# project/src/routers/static/RagfairStaticRouter.ts
# project/src/routers/static/WeatherStaticRouter.ts
# project/src/services/BotGenerationCacheService.ts
# project/src/services/BotLootCacheService.ts
# project/src/services/LocalisationService.ts
# project/src/services/ProfileFixerService.ts
# project/src/services/RagfairOfferService.ts
# project/src/services/RagfairTaxService.ts
# project/src/services/RepairService.ts
# project/src/utils/App.ts
# project/src/utils/DatabaseImporter.ts
# project/src/utils/RagfairOfferHolder.ts
# project/src/utils/collections/queue/Queue.ts
# project/tests/__factories__/ProfileInsurance.factory.ts
# project/tests/controllers/InsuranceController.test.ts
Manually resolved by Refringe
2023-11-15 22:28:43 -05:00
Refringe
622949cd83
Auto-formatting Sweep
2023-11-15 21:12:40 -05:00
Dev
467c87b026
Fix trader repair not costing any money
2023-11-15 20:17:24 +00:00
Dev
6dddeed6a8
Add 25% chance to double daily reward stack (item should be stackable and not weapon)
2023-11-15 19:43:35 +00:00
Dev
3b053b741b
Allow custom profiles to use localied descriptions
...
Fixed an inconsistently named locale key
Added logger to LauncherController
2023-11-15 11:16:56 +00:00
Dev
8cda48cac7
Get a more accurate price for weapon preset rewards
2023-11-14 23:12:50 +00: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
Dev
cd36e3993d
When rewarding a weapon for a repeatable quest, choose a random default preset if the chosen weapon has no defaults
2023-11-14 21:43:37 +00:00
Dev
909d79f415
Remove unnecessary removeMapAccessKey()
method, now handled in client
2023-11-14 17:34:44 +00:00
Dev
bb8677bc65
Rework payMoney()
to handle taking money from post-raid therapist healing
2023-11-14 17:06:11 +00:00
Dev
844cb12cc1
If offer to remove is not found, don't reduce rep loss
2023-11-14 16:09:45 +00:00
Dev
1021a945cb
Fix insurance costing 0 roubles
2023-11-14 11:46:51 +00:00
Refringe
0793df60c2
Formatting Change - Space is now given around object properties.
2023-11-13 12:38:16 -05:00
Refringe
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
Refringe
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
Dev
206f0d672d
Merge branch 'master' of https://dev.sp-tarkov.com/SPT-AKI/Server into 3.8.0
...
# Conflicts:
# project/assets/configs/core.json
2023-11-13 17:06:19 +00:00
Refringe
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
Refringe
ce45862e75
Favours dot object notation whenever possible.
2023-11-13 11:51:02 -05:00
Refringe
e709b6c111
Reformatted imports with (only) Biome.
2023-11-13 11:43:37 -05:00
Refringe
4479f68388
Formatting for utils.
2023-11-13 11:14:58 -05:00
Refringe
8576929404
Formatting for services.
2023-11-13 11:13:25 -05:00
Refringe
ca9ab9bcc8
Formatting for servers.
2023-11-13 11:12:51 -05:00
Refringe
b90fb8c8b9
Formatting for routers.
2023-11-13 11:12:17 -05:00
Refringe
d62ccce3ca
Formatting for models.
2023-11-13 11:11:36 -05:00
Refringe
3f2d36a2fc
Formatting for loader classes.
2023-11-13 11:10:44 -05:00
Refringe
8586447d21
Formatting for helper classes.
2023-11-13 11:10:22 -05:00
Refringe
d3e5418fc8
Formatting for generator classes.
2023-11-13 11:05:05 -05:00
Dev
6cf91ad923
Skip null production objects inside handleRecipe()
2023-11-13 12:01:48 +00:00
Dev
0666aad779
Implement Unbind
event handler
...
Occurs when player moves item from quick access panel to inventory
Small optimistion for `Bind` event, once item is found, exit loop
2023-11-12 10:10:34 +00:00
Dev
5f774bf3c8
Exit loop after deleting hideout craft
2023-11-11 20:15:46 +00:00
Refringe
3ef51e771b
Formatting of DI classes.
2023-11-10 16:58:55 -05:00
Refringe
87bb07cfd9
Formatting for controller classes.
2023-11-10 16:49:29 -05:00
Refringe
5fa8803f8c
Auto-formatting for context classes.
2023-11-10 15:23:51 -05:00
Refringe
ab7f41b924
Auto-formatting for callback classes.
2023-11-10 15:19:56 -05:00
Refringe
90cdd6eea1
Auto-formatting of root-level files.
2023-11-10 15:17:43 -05:00
Dev
8fda5395e6
FIx getFleaPriceForItem()
handing items with a price of 0 incorrectly.
...
Only show error when price returned is undefined
2023-11-10 20:11:36 +00:00
Dev
d2f4327871
Update updateProductionTimers()
to handle Progress
value being undefined
2023-11-10 19:18:58 +00:00
Dev
37029791da
Nullguard removeQuestFromScavProfile()
accessing a null scav quest array
2023-11-10 19:13:14 +00:00
Dev
7849a730f2
Fix nullguard firing for all traders
2023-11-10 19:00:04 +00:00
Dev
ade4875362
Change warning in checkTraderRepairValuesExist()
to use nickname
2023-11-10 10:37:26 +00:00
Dev
c4c923f8dc
Update checkTraderRepairValuesExist() to not use .clone
2023-11-10 10:31:22 +00:00
Dev
21dd62269e
Log server values on start
2023-11-09 22:27:20 +00:00
Dev
171d39d5cf
Merge branch 'master' of https://dev.sp-tarkov.com/SPT-AKI/Server into 3.8.0
2023-11-09 14:49:41 +00:00
TheSparta
f48e704bf1
import DependencyContainer type directly from tsyringe
...
- Redundant re-export of DependencyContainer from tsyringe, caused madge to think it was a circular dependency due to the file name also being tsyringe, deleted the file and importing directly from tsyringe instead.
2023-11-08 19:53:03 +00:00
TheSparta
09a64b801a
fixed lint/style/noNonNullAssertion
2023-11-08 19:53:01 +00:00
TheSparta
98a793229c
fixed lint/complexity/noUselessSwitchCase
2023-11-08 19:53:00 +00:00
TheSparta
f2ef3efdac
fixed suppressions/unused
2023-11-08 19:53:00 +00:00
TheSparta
d13bcc2eba
fixed lint/style/noInferrableTypes
2023-11-08 19:52:59 +00:00
TheSparta
ed1557d26b
fixed suppressions/deprecatedSuppressionComment
2023-11-08 19:52:58 +00:00
TheSparta
e3c833a085
fixed lint/style/useExponentiationOperator
2023-11-08 19:52:58 +00:00
TheSparta
133c0f760d
fixed lint/suspicious/noGlobalIsNan
2023-11-08 19:52:57 +00:00
TheSparta
5b46e956c4
fixed lint/complexity/useLiteralKeys
2023-11-08 19:52:56 +00:00
TheSparta
3eee163aae
fixed lint/complexity/noForEach
2023-11-08 19:51:52 +00:00
TheSparta
40a9ed4102
fixed lint/complexity/noUselessConstructor
2023-11-08 19:51:52 +00:00
TheSparta
0308ae4bf7
fixed lint/style/useEnumInitializers
2023-11-08 19:51:51 +00:00
Dev
4580c1cea8
FIx hideout crafts flaged as needFuelForAllProductionTime
not progressing
2023-11-08 16:17:14 +00:00
Dev
98ab19c6fa
Update countAllInsuranceItems()
to make use of MathUtil.arraySum()
2023-11-08 09:51:15 +00:00
Dev
4f7715825a
Make timeutil.pad()
protected so it appears in mod types data
2023-11-08 09:06:22 +00:00
Refringe
eaa4c3cf0b
Removes trailing spaces.
2023-11-07 23:29:25 -05: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
Refringe
0ad85b45e1
Small ItemHelper.getRandomCompatibleCaliberTemplateId()
Improvements
...
- Updated to safely access a deeply nested property.
- Updated to safely access the item `_id` and `_name` properties in the warning log.
- Updated to use the `RandomUtil.getArrayValue()` method to select a random ammo item template ID.
- Finished up some tests.
2023-11-07 22:59:04 -05:00
Refringe
3ba9e48a3e
Updates TimeUtil Class
...
- Adds the `date-fns-tz` module to dep.
- Moves the `date-fns` module from development dependancies to dependancies.
- Removes the depreciated `substr` method usage.
- Adds the `pad` method to handle padding time digits.
- Dates and times are now standardized UTC.
- Adds basic tests for all methods.
2023-11-07 21:32:57 -05:00
Dev
80afa0262c
Merge branch 'master' of https://dev.sp-tarkov.com/SPT-AKI/Server into 3.8.0
2023-11-07 21:22:06 +00:00
Dev
dfd1bcc589
getTemplatePrice(), when an item cannot be found in the handbook, add it with the price of 0 instead of 1
2023-11-07 21:21:34 +00:00
Dev
7941675102
getItemPrice()
if static price is 0 and dynamic price is missing, return 0 instead of undefined
2023-11-07 21:13:41 +00:00
Dev
d2736f4004
Merge branch '3.8.0' of https://dev.sp-tarkov.com/SPT-AKI/Server into testing-redux
2023-11-07 20:59:14 +00:00
Dev
123df5c595
Merge branch 'master' of https://dev.sp-tarkov.com/SPT-AKI/Server into 3.8.0
2023-11-07 20:58:56 +00:00
Dev
1f622a0760
Add Trader Repair Value on game start
2023-11-07 20:00:02 +00:00
Dev
8fb8b66afb
Add Charisma bonus when using repair kit (50% chane of no toall durability loss on kit use)
2023-11-07 17:01:24 +00:00
Dev
203ef0c011
Centralise getting a skill from a player profile into one location profileHelper.getSkillFromProfile()
2023-11-07 15:17:38 +00:00
Dev
d10c226db0
Add Melee skill to enum
2023-11-07 15:05:59 +00: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
5a60e4dcf0
Consolodate multiple functions (incrementSkillLevel
, rewardSkillpoints
) that do the same task into one addSkillpointsToPlayer
, make them use enum for skill type instead of string
2023-11-07 11:20:25 +00:00
Dev
206509359e
Add Charisma points when insuring items
, points to reward is a total guess until data can be obtained
2023-11-07 10:40:14 +00:00
Dev
938e439c81
Use daily quest count value from globals instead of hard coding it
2023-11-07 10:20:59 +00:00
Dev
1510237b01
take into accout Charisma skill at elite level when calculating daily quest count
2023-11-07 09:58:58 +00:00
Dev
214e81ba83
Merge branch '3.8.0' of https://dev.sp-tarkov.com/SPT-AKI/Server into testing-redux
2023-11-06 14:54:34 +00:00
Dev
0abfe0699e
Merge branch 'master' of https://dev.sp-tarkov.com/SPT-AKI/Server into 3.8.0
2023-11-06 14:52:14 +00:00
TheSparta
a244e89abe
Skip mods that are duplicated ( !165 )
...
- Instead of loading duplicated mods, it now skips all of them.
- Changed a few localisation strings, deleted the ones that became outdated.
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/165
Co-authored-by: TheSparta <thesparta@noreply.dev.sp-tarkov.com>
Co-committed-by: TheSparta <thesparta@noreply.dev.sp-tarkov.com>
2023-11-06 14:51:31 +00:00
Dev
1cccb0445a
Merge branch '3.8.0' of https://dev.sp-tarkov.com/SPT-AKI/Server into testing-redux
2023-11-06 13:19:15 +00:00
Dev
6de32bad6a
Merge branch 'master' of https://dev.sp-tarkov.com/SPT-AKI/Server into 3.8.0
2023-11-06 13:18:56 +00:00
Dev
2040835566
Set halloween event as disabled by default + enable for halloween
2023-11-06 13:18:38 +00:00
Dev
4bce4b49f4
Change server logging to be grouped by day instead of per hour
2023-11-06 12:44:59 +00:00
Dev
6ba0cfa459
Fix inverted check
2023-11-06 09:24:13 +00:00
Dev
32b356d3f1
Fix isbotPmc
isBotBoss
and isBotFollower
failing when undefined values are passed in
2023-11-05 20:29:10 +00:00
Dev
5656384c8f
Merge branch '3.8.0' of https://dev.sp-tarkov.com/SPT-AKI/Server into testing-redux
2023-11-05 20:25:15 +00:00
Dev
d3b7e5ef7a
Merge branch 'master' of https://dev.sp-tarkov.com/SPT-AKI/Server into 3.8.0
2023-11-05 20:24:28 +00:00
Dev
df6a08367b
Remove reduandant else from getRepairableItemQualityValue()
2023-11-05 13:19:10 +00:00
Dev
c527824d60
Change getRepairableItemQualityValue()
to handle max durability being lower than durability
2023-11-05 13:16:59 +00:00
Dev
7e409735d1
Merge branch '3.8.0' of https://dev.sp-tarkov.com/SPT-AKI/Server into testing-redux
2023-11-05 12:39:38 +00:00
Dev
c7dfc5b9cf
Merge branch 'master' of https://dev.sp-tarkov.com/SPT-AKI/Server into 3.8.0
2023-11-05 12:39:20 +00:00
Dev
8f70b03284
Fix hasBuyRestrictions erroring on bad input data
...
Fix isItemTplStackable erroring on bad input data
2023-11-05 12:37:17 +00:00
Refringe
98a35f4b47
Merge branch '3.8.0' into testing-redux
2023-11-04 21:12:49 -04:00
Dev
8ee176b9d8
Handle when fillCamora()
cannot find camora slots in weapons modPool
2023-11-04 20:11:09 +00:00
TheSparta
9638288381
Fix level calcualtion function
2023-11-04 17:01:24 +00:00
TheSparta
45dad54e3e
Fixed PlayerService.calculateLevel
2023-11-04 14:53:08 +00:00
Dev
86c519b117
Merge branch 'master' of https://dev.sp-tarkov.com/SPT-AKI/Server into 3.8.0
2023-11-04 10:50:13 +00:00
Dev
75958ee7d2
Replace hard coded blacklist in isValidItem()
with more appropriate call to ItemFilterService.isValidItem()
2023-11-04 10:49:52 +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
ab01e42271
Call getDynamicItemPrice()
correctly inside getItemPrice()
2023-11-04 10:28:33 +00:00
Dev
432f778512
Make randomiseAmmoStackSize()
and randomiseMoneyStackSize()
not purge the entire upd object
...
Always randomise the ammo stack size, not only if it doesnt have one
2023-11-04 09:08:33 +00:00
Refringe
047884e9c7
Additional InsuranceController
Tests
...
- Adds tests for the remaining methods in the `InsuranceController`.
- Adds a `countAllInsuranceItems()` method to the `InsuranceController`.
- Adds the Vitest UI and coverage packages.
- Updates the `profileInsuranceFactory` to use second-epoch dates instead of millisecond-epoch dates.
- Updates the `InsuranceController.fetchHideoutItemParent()` method to log a warning when an item with a slotId of 'hideout' cannot be found.
TODO:
- The Vitest coverage options are not working.
2023-11-03 17:39:33 -04: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
Refringe
946552199e
Merge branch '3.8.0' into testing-redux
...
# Conflicts:
# project/package.json
Manually resolved by Refringe
2023-11-02 01:56:18 -04:00
Refringe
85a227e7d5
Updates 🚀
...
- Created profileInsurance test fixture.
- Created ProfileInsurance test factory class.
- Improved many of the InsuranceController method tests by utilizing the factory and fixture. Still some left to do here.
- Adds the `date-fns` package as a development dependancy for easy date manipulation.
- Cleaned up some comments.
Bug Fixes 🐞
- Resolved an issue where `ItemHelper.getAttachmentMainParent()` was not returning null when it should have.
- Resolved an issue where `InsuranceController.populateParentAttachmentsMap()` would continue to process when the parent could not be found.
2023-11-02 01:47:28 -04:00
Dev
b1842e1c49
When generating a specific location condition for an elimination quest, don't add weapon requirement props to it - unnecessary
...
Clean up kill condition generation method comments/param names
Replace magic strings with objects
2023-11-01 13:29:47 +00:00
Dev
9d56030880
Remove unused class property
2023-11-01 13:06:01 +00:00
Dev
90b76eab68
Correctly check when difficulty is not a number
2023-11-01 11:36:13 +00:00
Dev
d1db6cc7a9
Merge branch 'master' of https://dev.sp-tarkov.com/SPT-AKI/Server into 3.8.0
2023-11-01 11:35:18 +00:00
Dev
37b7712602
Rename function getAllSeasonalEventItems()
to getInactiveSeasonalEventItems()
2023-11-01 11:35:05 +00:00
Dev
9d3f6dc092
For slots that have seasonal items added, force slot spawn chance to be at least 75%
2023-11-01 11:00:43 +00:00
Dev
1c6550894e
Add additional items to halloween items list
2023-11-01 10:43:47 +00:00
Refringe
7f37d48753
InsuranceController Tests & Minor Changes
...
- Adds tests for the majority of the methods within InsuranceController.
- Simplifies the `InsuranceController.sendMail()` method so that the toDelete parameter is no longer required.
- Modifies `InsuranceController.findItemsToDelete()` to only process regular and attachment items when they exist.
- Modifies `InsuranceController.rollForDelete()` to return null in the event that the provided Trader can not be found.
2023-10-31 23:08:13 -04:00
Dev
fc606ee540
Merge branch 'master' of https://dev.sp-tarkov.com/SPT-AKI/Server into 3.8.0
...
# Conflicts:
# project/assets/database/bots/types/assault.json
# project/assets/database/bots/types/bossknight.json
# project/assets/database/bots/types/bosszryachiy.json
# project/assets/database/bots/types/followerzryachiy.json
2023-10-31 19:10:23 +00:00
Dev
1c18282cfe
Log profile save action into console window, not log file
2023-10-30 15:14:26 +00:00
Dev
dacb72e78d
Cleanup of akihttplistener
2023-10-30 09:36:19 +00:00
Dev
476788fee8
Fix build issue caused by merge of #162
2023-10-30 09:25:34 +00:00
ree
9fa0bcc705
Properly re-assemble all data in http requests before handling it ( !162 )
...
Remove unneeded HttpBufferHandler
-----------
The old code processed each chunk of data as an entire request, which is not correct. It was observed split data after ~14600 bytes (on a 1 gig lan connection). I think it was worse on remote connections.
This was the cause of the "unknown compression method" and invalid json parse errors when saving the profile.
Co-authored-by: Decoy <redacted@example.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/162
Reviewed-by: Terkoiz <terkoiz@noreply.dev.sp-tarkov.com>
Co-authored-by: ree <ree@noreply.dev.sp-tarkov.com>
Co-committed-by: ree <ree@noreply.dev.sp-tarkov.com>
2023-10-30 09:23:30 +00:00
TheSparta
f354811ca8
A few changes to Watermark and Error Handling
...
- Made it so Watermark doesn't initialize on the constructor, this makes it possible for tests to use `@spt-aki/di/Container`;
- Removed unnecessary calls to `ErrorHandler.handleCriticalError`, all you really need to do is `throw new Error()` and it'll get caught automatically.
2023-10-29 22:20:33 +00:00
Refringe
00ac9e190a
Additional Tests & New Setup
...
- Adds additional ItemHelper tests
- Attempts to bring container registration into the environment to debug how we can register everything but not actually start the server.
2023-10-29 22:20:32 +00:00
Dev
fe703b34ec
Remove unused file
2023-10-29 20:46:50 +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
Dev
6f62d0b400
Rename variable for clarity
...
Remove redundant `BlocksX` check
2023-10-29 20:44:41 +00:00
Dev
8223124882
Sort mod_barrel
after mod_handguard
to prevent weapon gen errors with certain combinations of barrel + gas blocks causing all handgaurds to be incompatible
...
Also force gas block to be processed AFTER barrel + handguard
2023-10-29 16:35:03 +00:00
Dev
fd7e59d1d2
Adjust servers handling of item stacks, when item has a StackMaxSize
value of 1, use that instead of items db property StackMaxRandom
2023-10-28 19:39:45 +01:00
Dev
6d30d86ea4
Correctly handle when crafts are completed, null craft data instead of removing entire production key/value pair
2023-10-28 17:57:14 +01:00
Dev
cc86ecce2b
Send correct data to client to inform it craft has been cancelled
2023-10-28 17:48:37 +01:00
Dev
ce50c88b87
Improve error message text
2023-10-28 16:16:39 +01:00
Dev
0316278b15
First pass at handling the cancellation of a hideout craft.
...
Doesnt explode server with unhandled exception error
Does remove craft from profile
Doesnt remove it from client screen until client refresh
2023-10-28 15:53:13 +01:00
Dev
73be87bee4
Update IBotDurability
with additional bot types
2023-10-28 12:44:44 +01:00
Dev
48913e8707
Update getDefaultCounters()
to return data found from live profile
2023-10-28 12:40:21 +01:00
Dev
6e3e8f13d6
set NeedWipeOptions
on profile creation
2023-10-28 12:28:52 +01:00
Dev
6e5d35dbd1
Update JSONs
2023-10-28 12:20:48 +01:00
chomp
ea518adb32
Add new WildSpawnTypes for 26835 ( !161 )
...
Co-authored-by: DrakiaXYZ <565558+TheDgtl@users.noreply.github.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/161
2023-10-28 09:39:49 +00:00
Dev
f4fce0612e
Force handguards that take a sub-handguard to set handguard spawn chance to 100% - fixes split handguards appearing without the lower part
...
Only adds lower when weapon has no launcher attached
Adjust sub stock adding code to trigger when stock has a subslot that starts with `mod_stock`, this means `mod_stock_akms` and `mod_stock_000` will be included
2023-10-26 20:31:05 +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
1f90ae0bb0
Add undefined check to updateProfileBaseStats()
2023-10-25 18:13:33 +01:00
Dev
0e3d25df03
Improve getTrader()
...
Error when no profile found
Reduce returns to 1
fold two checks into one
Remove magic string reliance on TradersInfo exist check
More comments
2023-10-25 12:18:27 +01:00
Dev
729b180e85
Add request object type
2023-10-25 11:54:11 +01:00
Dev
b29f0a0904
Coop extract gifts from fence are now Found in Raid
2023-10-25 10:14:19 +01:00
Dev
90efc36360
Fix incorrect value names in getEliminationKillCount
2023-10-24 17:06:02 +01:00
Dev
a5dbfef7d0
Localise some error text
2023-10-24 16:40:34 +01:00
Dev
657dd358c2
Give method an access type protected
2023-10-24 15:12:18 +01: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
c3777af231
Add guards to dynamic spawn point generation
...
Rename some variables for clarity
2023-10-24 11:15:23 +01:00
Refringe
8541e5f028
Refactor Currency Handling in PaymentService.payMoney()
Method ( !159 )
...
This commit includes a series of changes aimed at improving the logic and readability of the `payMoney` method in the PaymentService class. The method is pivotal for handling in-game payments, specifically in cases involving multiple types of currencies and barter trades. The changes resolve an issue that prevented barter payments that included both a currency and another item.
## Changes:
- Replaced `barterPrice` variable with a `currencyAmounts` mapping that efficiently tracks each type of currency involved in the trade.
- Updated how the `costOfPurchaseInCurrency` variable is calculated to factor in multiple currencies.
- Introduced a new variable `totalCurrencyAmount` to sum up the total amount of all currencies, which is checked to determine whether any (non)currency payment is necessary.
- Added some inline comments for readability.
Resolves #176
Co-authored-by: Refringe <brownelltyler@gmail.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/159
Co-authored-by: Refringe <refringe@noreply.dev.sp-tarkov.com>
Co-committed-by: Refringe <refringe@noreply.dev.sp-tarkov.com>
2023-10-24 09:27:46 +00:00
Dev
250b9dca3f
Merge branch 'master' of https://dev.sp-tarkov.com/SPT-AKI/Server
2023-10-23 19:29:35 +01:00
Dev
7b0298cda2
Adjsut 2 bot gen errors to be warnings
2023-10-23 19:19:05 +01:00
TheSparta
7aee78eb49
Fixes Insured items on secured containers ( !158 )
...
This PR fixes both https://dev.sp-tarkov.com/SPT-AKI/Issues/issues/174 and https://dev.sp-tarkov.com/SPT-AKI/Issues/issues/175 .
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/158
Co-authored-by: TheSparta <thesparta@noreply.dev.sp-tarkov.com>
Co-committed-by: TheSparta <thesparta@noreply.dev.sp-tarkov.com>
2023-10-23 16:45:40 +00:00
Dev
69ee8983b2
Improve logging text
2023-10-22 13:14:38 +01:00
Dev
3c709311d8
Correctly save statusTimer values into profile
2023-10-21 21:24:14 +01:00
Dev
ec7d3e1699
Fix bad injection
2023-10-21 20:22:11 +01:00
Dev
54d47585f2
Show sessionid/profile id when profile data is saved
2023-10-21 20:19:45 +01:00
Dev
018b0a8f70
Fix profile creation error
2023-10-21 20:13:29 +01:00
Dev
573d91a9c2
Persist ConditionCounters
data between pscav runs
...
Move values around to help with readability
2023-10-21 18:23:58 +01:00
Dev
de2f70fb79
Remove replaced repeatable quest from PMC and scav profile
2023-10-21 17:39:44 +01:00
Dev
3f07fc1bfc
Cleanup of async method names
...
Add method comments
Reduction of code complexity inside `executeModsAsync()`
Add error message when loaded mod has no `main` property
2023-10-20 12:23:19 +01:00
Dev
33d3e6ce05
move log to correct place
2023-10-19 22:55:53 +01:00
Dev
234cd0b833
Randomise standing loss for dailies
2023-10-19 21:49:38 +01:00
Dev
83590dcc25
Get id if not found in profile
2023-10-19 21:44:10 +01:00
Dev
20b9a39cda
Add missing IDs to json and pass throughout code
2023-10-19 21:36:17 +01:00
Dev
fa2a8c6513
Add missing id property to accept quest client response
2023-10-19 21:06:09 +01:00
Dev
11ae41dcff
Fix missing text
2023-10-19 20:59:06 +01:00
Dev
489189bd81
Add missing properties to templates
2023-10-19 20:51:16 +01:00
Dev
79dc3cca1b
Correct mistake in sending repeatable data to client on quest accept
2023-10-19 20:43:42 +01:00
Dev
d97beda4b7
Rework how repeatable quests are replaced
2023-10-19 20:04:47 +01:00
Dev
57b1fe0733
Improve bad replacement quest error messaging
2023-10-19 19:30:23 +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
Dev
5af4abab91
Handle critical errors on mod load better - show player error in console instead of closing it on error
2023-10-19 15:25:52 +01:00
Dev
6589bcc0a2
Show human readable error when two mods have conflciting load order requirements
...
Improve cyclic error message text
2023-10-19 15:18:07 +01:00
Dev
2507837198
When launcher requests profiles and the exp is null, fall back to 0
- Fixes profile killing launcher listing ability
...
Use properties without quotes
Update nullguard to use Nullish coalescing
2023-10-19 11:37:07 +01:00
Dev
14c0b73482
Log build date on server start
2023-10-19 11:25:41 +01:00
Dev
e8d3fb805e
updates to modLoadOrder
2023-10-18 17:36:36 +01: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
1adeed29ef
Transfer ConditionCounter and quest status changes incurred during scav raid into pmc profile
...
Only add quests to scav profile when its a pickup/exploration/elimination quest
2023-10-17 22:04:19 +01:00
Dev
480967ab9a
Incldue m4a1 with gas block item in modIsFrontOrRearSight()
check
2023-10-17 20:45:40 +01:00
Dev
99cb77d3cf
Save scav quests into scav profile when accepting them
2023-10-17 16:31:21 +01:00
Dev
650a3173c8
Implement Pickup
quests for scav
...
It seems like these are scav-only
2023-10-17 16:28:48 +01:00
Dev
f70cbcced7
Set quest side to scav when generated for fence
2023-10-16 18:33:09 +01:00
Dev
4b70bfb60d
Improve sourcemap handling in modCompilerService
2023-10-16 18:25:14 +01:00
TheSparta
fe6865b2f0
Added sourcemap generation for typescript mods ( !155 )
...
This PR makes it so typescript generates inline sourcemaps when transpiling mods to javascript.
This will make it so stacktraces originating in the mod source code point to the typescript files, lines and columns.
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/155
Co-authored-by: TheSparta <thesparta@noreply.dev.sp-tarkov.com>
Co-committed-by: TheSparta <thesparta@noreply.dev.sp-tarkov.com>
2023-10-15 16:15:34 +00:00
Dev
04235ca024
Reward more items for daillies/weeklies
...
Cleanup of `generateReward` item reward pool generation into its own function + return an easier array to work with
2023-10-15 11:46:33 +01:00
Dev
7bc0d3f383
Prevent distance + melee kill quest combination
2023-10-15 10:49:23 +01:00
Dev
f155f5f0d0
Improve code comments
2023-10-15 10:44:12 +01:00
Dev
d44bda96cf
make use of isbaseclasses
to check for bad items instead of a non-optimal loop
2023-10-15 10:43:27 +01:00
Dev
fdd328b07a
use function that only gets static price for daily rewards instead of function that falls back to flea price - improve price consistency
2023-10-15 10:39:35 +01:00
Dev
18c68fa353
make daily rewards found in raid
2023-10-15 10:38:50 +01:00
Dev
f23c8d484e
Fix peacekeeper rewarding dollars instead of euros
2023-10-15 10:33:52 +01:00
Dev
cd74f05558
Cleanup of daily reward code doing the same item check multiple times
2023-10-15 10:28:52 +01:00
TheSparta
1ab7c5946e
Fixed stacktraces and source maps on the built exe ( !153 )
...
This PR fixes a long standing issue where stacktraces in the built executable didn't have line and column numbers, so you were left wondering where exactly in a given function an error occurred.
This also fixes source maps being generated but not actually included in the executable, this fix results in `source-map-support` actually doing it's job, so now stacktrace paths point to the typescript files, line and column number, instead of the transpiled javascript line and column number.
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/153
Co-authored-by: TheSparta <thesparta@noreply.dev.sp-tarkov.com>
Co-committed-by: TheSparta <thesparta@noreply.dev.sp-tarkov.com>
2023-10-15 07:31:16 +00:00
Dev
5a0e16634e
Fixed seasonal event items not appearing on flea during event
...
Don't rely on globals event value for event check, store event bools on SeasonaleventService class construction
Remove dupe function `getSeasonalEventItemsToBlock(), rely on `getAllSeasonalEventItems()`
2023-10-14 16:52:48 +01:00
Dev
11b885539d
Fix halloween icons not loading
2023-10-14 16:05:12 +01:00
Dev
5dd2e10211
Configure additional scav property values on generation
2023-10-14 13:29:27 +01:00
Dev
79b9b2a7aa
Update various property values on scav generation
2023-10-14 13:18:07 +01:00
Dev
0b50385b84
Fix error on death because extract is undefined
2023-10-14 10:31:01 +01:00
Refringe
7948e3473c
Refactor of InsuranceController & New ItemHelper Methods ( !151 )
...
This commit is my second go-around at refactoring the `InsuranceController`, attempting to improving the code's modularity, maintainability, and efficiency while squashing a few bugs along the way.
1. **InsuranceController.ts**
- Removed `ITemplateItem` import, as it is no longer used.
- Introduced the `adoptOrphanedItems` method to manage orphaned items in the insurance list.
- Since "normal" items are individually rolled for deletion, and can be nested within one another, there are situations where a parent item is deleted, leaving its children orphaned. This method moves those orphaned children from their missing parent into the root of the insurance container.
- Overhauled `findItemsToDelete` method to improve its efficiency and readability:
- Divided the original monolithic method into smaller, specialized methods like `populateItemsMap`, `populateParentAttachmentsMap`, `processRegularItems`, and `processAttachments`.
- Changed the return type to `Set<string>` for better performance.
- Introduced `EnrichedItem` interface (a simple extension of the `Item` interface) to add additional item data, like `name` and `maxPrice` to `Item` objects as they're processed throughout the class. This is done in place of repeatedly querying for this data, or complicating return types.
- Enhanced logging capabilities to debug the item deletion process. Due to the *current* lack of testing available I've stepped up the amount of debug logging that is done. This will hopefully help us find issues in the future.
- Modified the `rollForItemDelete` method, now renamed to `rollForDelete`, to include more detailed logging, return a boolean directly, and changed the `insuredItem` parameter to be optional.
- Added new methods for dealing with some of the particulars that arise from item adoption and creating item maps.
- Improved inline comments and documentation for better code maintainability.
2. **ItemHelper.ts**
- Added the `isRaidModdable` method to check if an item is *actually* modifiable in-raid, which takes into account not just the item, but the item that it's attached to.
- Added the `getAttachmentMainParent` method to fetch the main parent item of a given attachment, useful for item hierarchy traversal. For example, if you pass it an item ID of a suppressor, it will traverse up the muzzle brake, barrel, upper receiver, and return the gun that the suppressor is ultimately attached to, even if that gun is located within other multiple containers.
- Added the `isAttachmentAttached` method to check if an item is an attachment that is currently attached to its parent.
**Fixes:**
- Resolved an issue that caused item attachments from being property grouped together for deletion rolls. This issue prevented valuable attachments from being taken first.
- Resolved an issue that caused child items being orphaned when their parent was removed due to an insurance roll. Probable cause of the bug that made the client spaz out and send repeated insurance packages to the profile---Though I'm still unable to reproduce.
- Probably more...
Co-authored-by: Refringe <brownelltyler@gmail.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/151
Co-authored-by: Refringe <refringe@noreply.dev.sp-tarkov.com>
Co-committed-by: Refringe <refringe@noreply.dev.sp-tarkov.com>
2023-10-14 09:05:49 +00:00
TheSparta
723f8db572
Updated dependencies + A few other things ( !150 )
...
Initially this was going to be an update to dependencies but it seems i got a little carried away!
Anyways this PR removes 2 unused dependencies (`jshint` and `utf-8-validate`), and 2 other, `del` and `fs-extra` that were replaced by the built-in `fs/promises`.
It also renames all `tsconfig` and `Dockerfile` files, in a way that when viewed in a file tree sorted alphabetically they will be next to each other.
It also updates the typescript target to `ES2022`, and changes moduleResolution from `Node` to `Node10` (this isn't an update, they are the same thing but `Node` is now deprecated).
It also adds the `node:` discriminator to every import from built-in modules.
It also has major changes to the build script, `del` and `fs-extra` were only being used in the build script, it's now using `fs/promises` instead, cleaned up the code from some functions, adds better documentation to a few functions, and renames some gulp tasks and npm scripts to better represent what they actually do.
And finally it updates dependencies, except for `atomically` which can't be updated unless the project switches to ESM.
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/150
Co-authored-by: TheSparta <thesparta@noreply.dev.sp-tarkov.com>
Co-committed-by: TheSparta <thesparta@noreply.dev.sp-tarkov.com>
2023-10-14 09:01:41 +00:00
Dev
87e2948806
Remove scripts content from imported mods package data
2023-10-14 09:48:24 +01:00
Dev
035fce63c3
Make use of Set
data structure inside createRandomLoot()
to improve performance via .has
instead of .includes
2023-10-13 20:18:39 +01:00
Dev
292791aca4
make itemHasBaseClass()
more robust against bad input
2023-10-13 16:54:17 +01:00
Dev
8e377594da
Split up code inside validateQuestAssortUnlocksExist()
to improve readability
2023-10-13 09:45:47 +01:00
Dev
45788e1489
Fix scav case erroring on item generation
2023-10-13 09:28:04 +01:00
Dev
3c3fd56e65
Send gift to player after taking coop extract
2023-10-12 20:04:50 +01:00
Dev
3598418f6e
Disable filtering out healing items from backpack loot
2023-10-12 14:33:09 +01:00
Dev
29ffe86caa
Remove redundant item added check from value check
2023-10-12 13:25:13 +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
Refringe
52172f2953
InsuranceController Quality and Maintainability ( !148 )
...
This pull request aims to refactor the InsuranceController class to improve its code quality and maintainability. The changes include restructuring methods, adding detailed comments, and enhancing the overall logic for processing insured items.
Specific changes include:
- Updating the `findItemstoDelete()` method (and the entire class, really) to keep track of which items are tagged using a Set. This *ensures* that an item can only be attempted to be deleted once, as Sets cannot contain duplicates.
- Changing the method in which we remove insurance packages from the profile. We were iterating over them using a `for` in reverse order and then removing them with a splice and the current index. On paper this should work, but funny things were happening... Sometimes. I've created a new method that removes packages from a profile by matching against the package systemData date, time, and location. This should give us a specific insurance package (as we don't have an ID to use). In addition to this we're fetching a new instance of the profile to edit, instead of modifying packages that are being iterated over as they're being iterated over.
-----
I was unable to reproduce the issue where insurance packages were not being removed from the profile, but hopefully these simplified approaches lead to less funny business.
Co-authored-by: Refringe <brownelltyler@gmail.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/148
Co-authored-by: Refringe <refringe@noreply.dev.sp-tarkov.com>
Co-committed-by: Refringe <refringe@noreply.dev.sp-tarkov.com>
2023-10-12 08:38:22 +00: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
Dev
2f2e7c2e32
Variable rename to aid in readability
2023-10-11 10:47:54 +01:00
Dev
a19e322373
Remove debug logging inside addMissingHideoutBonusesToProfile()
2023-10-11 09:01:45 +01:00
Dev
68a8d34489
Protect against a missing upd object inside changeItemStack()
2023-10-10 22:37:38 +01:00
Dev
f67c4293d8
Merge used profile mods onto a single record for each mod by name, choosing newest
2023-10-10 17:01:29 +01:00
Dev
76d8b944d5
Store `AvailableAfter value in statusTimer of timelocked quest
...
Send locked quest to client when requested
Delete `availableAfter` property when accepting a quest
2023-10-10 16:18:55 +01:00
Dev
8edc43e9de
Do not send timelocked quests to client until timer is passed
2023-10-10 14:46:23 +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
gasmo
8d911ccc19
Fix ballooning recursive function ( !120 )
...
The `BotEquipmentModPoolService.generatePool()` method is recursive, but it does not check if the pool it creates already contains data for sub items when it finds them and calls itself on them. This creates substantial bloat in the function that is undetectable to end users, but causes some additional delay when it is called.
I noticed this when using a server mod that allows for less restrictions on mod combinations (as it would hit the system recursion limit and error out) but the bloat still affects vanilla - it takes ~1 minute for all the recursive calls to end, whereas this fix reduces that to <10 seconds.
To fix this, I've moved a block of code into the conditional block that checks if the item we're adding (and its' sub items) are already in the pool before it calls itself.
This is my first pull request, so let me know if I've fudged up somewhere and I'll do my best to fix it.
I submitted a previous request about this, but I removed my name from the commits so I had to delete the branch.
Co-authored-by: gasmo <burr.cameron@gmail.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/120
Co-authored-by: gasmo <gasmo@noreply.dev.sp-tarkov.com>
Co-committed-by: gasmo <gasmo@noreply.dev.sp-tarkov.com>
2023-08-18 14:17:54 +00:00
Dev
1b387f706d
Revert "Update JSONs + add new params to interfaces"
...
This reverts commit 3bf644c0e4
.
2023-08-10 16:02:33 +01:00
Dev
3bf644c0e4
Update JSONs + add new params to interfaces
2023-08-10 16:00:49 +01:00
Dev
96ef616d48
Add comments
2023-08-10 14:30:29 +01:00
Dev
91ec0144ed
Esxpose two endpoints for launcher to get mod-related data
2023-08-10 14:29:09 +01:00
Dev
e591ea9e8f
make setFenceAssort and setFenceDiscountAssort public
2023-08-09 22:04:35 +01:00
Dev
285f65bb8d
Only remove item from fence assort if he has items to remove
...
Add empty assort check to remove function too
2023-08-09 19:20:41 +01:00
Dev
96de45e580
Expose SPT friend nickname in core config
2023-08-09 16:01:51 +01:00
Dev
99715f90cd
Update JSONs and include end of wipe gift
...
Add additional method to send localised messages from SYSTEM to player
2023-08-09 14:22:16 +01:00
Dev
7a1301d436
Fix request logger throwing errors when logging non-json data
2023-08-09 12:16:41 +01:00
Dev
dea27097b3
Improve server start message selection
2023-08-09 12:07:31 +01:00
Dev
643cf9a268
Regenerate item cache on game start
...
Fixes 'item missing from cache' errors seen when using multiple mods that add items to the game
2023-08-09 12:04:31 +01:00
Dev
b3f5ea8287
FIx null excpetion when a weapon reward is picked that has no presets
...
We only want the default preset, so use that function instead
2023-08-09 11:52:20 +01:00
chomp
c1a4c544bc
Add JSONC support to server configs + use by modders ( !112 )
...
Replaced calls (where possible) to JSON.parse/stringify with use of `jsonUtil` functions
`VFS.ts` was tricky, it can't be updated as it'd create a circular dependency
Also add json5 to package.json for modders to have access to
Co-authored-by: Dev <dev@dev.sp-tarkov.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/112
2023-08-09 10:49:45 +00:00
Dev
6262d74acc
Pass the location insurance was lost into sendLostInsuranceMessage()
...
make use of mailSendService.sendLocalisedNpcMessageToPlayer()
Make use of new `insuranceFailedLabs` array in prapors json data
2023-08-07 22:43:00 +01:00
Dev
ee46d1e6b8
Extend sendLocalisedNpcMessageToPlayer() to allow for custom systemData
2023-08-07 22:40:06 +01:00
Dev
dd26a94ede
Nullguard against missing data from client
2023-08-07 19:42:23 +01:00
Dev
74f7ee8e77
Rework usage of filter() into some()
2023-08-07 11:17:46 +01:00
Dev
92c30dbe5d
Add code to check BackendCounter values pre vs post-raid
2023-08-07 11:13:17 +01:00
Dev
b2530a6083
log not implemented message for stash row reward
2023-08-06 16:54:31 +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
chomp
a962823192
Persist durability changes + faceshield hit values incurred during a raid ( !110 )
...
Fixes insured items comin back full durability
Co-authored-by: CWX <CWX@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/110
2023-08-05 17:26:16 +00:00
Dev
9dd2d3cd04
Improve nullguard code inside findAndAddRandomPresetToLoot()
2023-08-05 14:50:05 +01:00
Dev
14c6104b65
FIx dialogs not showing
2023-08-04 18:58:00 +01:00
Dev
08c81aff26
introduce itemsDb variable inside repairItemByKit()
2023-08-04 15:59:34 +01:00
Dev
ce65ec1260
Add upd null object check to addMaxResourceToKitIfMissing()
2023-08-04 15:55:59 +01:00
Dev
4dc290c284
Nullgaurd against mods that adjust map static data
2023-08-04 12:57:16 +01:00
Dev
2a98b0a1b9
Move trader enum checking logic into traderHelper
2023-08-04 11:19:27 +01:00
Dev
07217e9ed0
Further extension of profiel fixing code, deletes more
...
Clothing, active repeatable quests with bad trader/items, trader purchases from bad traders
2023-08-04 10:25:21 +01:00
Dev
281cba8db5
Prevent randomiseItemUpdProperties() running if the item being randomised has a db item with no _props data
2023-08-04 08:49:22 +01:00
Dev
dbf9955272
potential fix for custom trader issue
2023-08-03 15:46:50 +01:00
Dev
beb7c5069b
Improve profile fixing system
...
Remove more modded items from profile when config set to true, warn of set to false
Handle weapon presets + messages containing modded items
2023-08-03 14:36:53 +01:00
Dev
cbcd431f09
Fixed new profiles failing to start game during christmas/new years event
...
Add new function in dialog helper for getting dialogs frm profile - creates empty object if none found
Set gift collection time to 48 hours if none supplied
2023-08-03 12:25:09 +01:00
Dev
0c37a76ff6
Improve processFailedQuests() handling of null parameter
2023-08-03 08:38:36 +01:00
Dev
172722a915
Cleanup code and also check if standing is 0
2023-08-02 16:15:33 +01:00
Dev
3fefe90b56
Set lightkeeper rep to 0,01 on account creation, prevents showing
2023-08-02 16:02:44 +01:00
Dev
f5eb96ed48
Refactor of hideout skill gains from area completion
2023-08-02 15:55:33 +01:00
Dev
946512ca6d
FIx server error with not being able to find singular hiddeout craft now there are two DSP crafts
2023-08-02 12:57:08 +01:00
Dev
3876e1ae15
Pull mod sorting code into its own function
2023-08-02 08:50:04 +01:00
Dev
cda89084d3
Show error when trader id can't be found in Traders enum
...
Exit early when sending messages from trader if no trader supplied
2023-08-02 08:29:23 +01:00
Dev
831dec7e55
Check for and remove dialogs with the key "undefined"
2023-08-01 23:16:06 +01: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
11acbbc0f2
Add Production object if none exists prior to adding a production to it + Move functions around for consistency
2023-07-31 19:18:29 +01:00
Dev
a912f7c9cd
When bsg flea blacklsit is disabled, set all items as sellable on flea
2023-07-31 15:41:10 +01:00
Dev
59b2fc3602
Typo fix
2023-07-30 19:29:19 +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
6b8fadef40
Save trader standing changes post-raid
2023-07-30 11:30:31 +01:00
Dev
a514a94b45
Improve wording + Add missing properties from config
2023-07-29 10:16:03 +01:00
Dev
b25342d2f5
Log error when RAID_CONFIGURATION values cannot be found inside getBotDifficulty()
2023-07-28 17:11:18 +01:00
Dev
5a435b363a
25206
2023-07-28 10:01:14 +01:00
Dev
32b32e627b
Force afaks into PMCs secure container
2023-07-27 15:01:08 +01:00
Dev
8a26d3f807
Rework items added to container code, now stops after 4 failed attempts
...
Don't increment cost of loot container total value if item was not placed in container
2023-07-27 13:14:09 +01:00
Dev
2d57bdb0ef
Add option to force healing items into PMCs secure
...
Make bots heal to a 90% instead of 65%
Log when item cannot fit into container when genning bots
2023-07-27 12:15:06 +01:00
Dev
6581896e30
Revert 999 stack size of ammo in bots secure containers + set secure stack count to 20 instead of 15
2023-07-26 22:46:19 +01:00
Dev
ef03d546ce
Improvements to PMC gear variety + comment changes
2023-07-26 16:41:54 +01:00
Dev
76dce7a548
Nullguard across multiple dialogueController methods to prevent missing profile/dialog from killing client
2023-07-26 12:47:42 +01:00
Dev
06d39b26a9
Improvements to chat responses
...
Exit response code when gift code entered
Reply to additional keywords
Randomisd responses + added multiple
2023-07-26 09:38:33 +01:00
Dev
69f08d9f87
Improve comments
2023-07-25 21:14:18 +01:00
Dev
6e33a9c37e
Add functionality to fail quests on server after failing them in-raid, fixes failing colleagues part 3 by completing sadist
2023-07-25 20:37:45 +01:00
Dev
9e056cf8f3
Handle failing quests post-raid if they are now failed and were not pre-raid
2023-07-25 19:50:46 +01:00
Dev
0a1913ab49
Fix issue with completing Sadist
not failing Colleagues Part 3
...
Added fail state to colleagues p3
Reworked loop inside `getQuestsFailedByCompletingQuest()` to use .some() instead
Reworked `failQuests()` to check all fail conditions instead of just the first one
2023-07-25 19:20:17 +01:00
Dev
903dbdf432
Improve emulation of live tarkov data - Remove hideout data from bots that are not pmcs or pscavs prior to being sent to client
2023-07-25 17:44:23 +01:00
Dev
b16d849280
Only add player to users inside getProfilesForMail() if they dont exist
2023-07-25 15:59:39 +01:00
Dev
8178f40b5d
Comment improvements
2023-07-25 14:04:21 +01:00
Dev
38b921a7e4
Move gift checks into GiftService.sendPraporStartingGift
2023-07-25 11:17:54 +01:00
Dev
41b4bdc432
Fix bug that casued prapor to send new player gifts regardless of how old profile was
...
Surround gift sending code with gift recieved check first
2023-07-25 10:36:23 +01:00
Dev
1a80d3fab8
Prevent exception in gift existence check doesnt find a profile
2023-07-25 10:35:12 +01:00
Dev
fd365df8ba
FIx getGameConfig() failing on profile creation
2023-07-25 10:22:12 +01:00
Dev
4a491df965
Add stackObjectCount for camora slots on weapons
2023-07-24 21:44:00 +01:00
Dev
777ca0c8ef
Fix issue with PMCs generating with one cartridge in magazine + no cartridge in weapon chamber
2023-07-24 21:24:55 +01:00
Dev
7e60ea9d79
Remove dupe items from seasonal gear
2023-07-24 18:47:26 +01:00
Dev
070b9c7ad6
Send total in game time on game start
2023-07-24 16:38:28 +01:00
Dev
848302e769
Convert post-raid player status into an enum and update usages
2023-07-24 16:30:03 +01:00
Dev
ad576a937a
Comment improvements
2023-07-24 15:52:55 +01:00
Dev
5c6aafea51
Add enum for notification type
2023-07-24 15:19:31 +01:00
Dev
40149edeb2
axmc bot weapon generation improvements
...
Slight weapon variety improvement for PMCs
Only generate backpack loot if bot has backpack - reduces warnings during botgen
Move warning mesage to debug
Add sanitar medkit to pmc blacklist
Pass ur to warning message when endpoint body fails json validation
Pass sessionId into `locationController.generateAll()` to help modders when overriding function
Test - Added grizzly x5 to PMC secure containers to see if they heal more when damaged
2023-07-24 13:20:17 +01:00
Dev
f4047489eb
Clean up sptFriend generation code - reduce duplication
2023-07-23 12:30:15 +01:00
Dev
c5332986eb
Fixed issues with moving items to sorting table after opening sealed container
...
Also allow money from sold flea offers to enter sorting table
Remove unused addItem() from InventoryController
Add optional param to inventoryHelper.addItem() to allow use of sorting table, default = off
2023-07-23 12:29:00 +01:00
Dev
e84781be5f
Handle moving items into sorting table when stash has no space
2023-07-23 11:51:04 +01:00
Dev
253fd3a42a
Fix prapor gift system failure on new profile creation
2023-07-23 11:36:41 +01:00
Dev
89ab3a99a8
sealedWeaponContainer - Get random weapon preset if default preset not found
2023-07-23 11:27:04 +01:00
Dev
e4b9be3bea
Fix for ragfair failed offers killing profile
2023-07-23 10:47:38 +01:00
Dev
618a41fcd9
Add system to make prapor give giffts the first and second day after starting a fresh character
...
Add functionality to handle gift service to use locale ids instead of raw text
2023-07-22 23:23:42 +01:00
Dev
41ef304d97
Improve seasonal system to give gifts during event
...
Add additional equipment to PMCs when event is active
2023-07-22 20:07:58 +01:00
Dev
5071072092
Place fence seasonal item blocking behind config propery
2023-07-22 14:16:19 +01:00
Dev
a04113eaa1
Block seasonal items when not inside active season (christmas/halloween so far)
2023-07-22 14:11:47 +01:00
Dev
c3a4caa38a
Convert sptDev profiles quest starter email function to use mail send service
2023-07-22 14:02:13 +01:00
Dev
ab912f519f
Fix issue with trader ids not being propigated to the profile
2023-07-22 13:59:21 +01:00
Dev
00a2fbde22
typo
2023-07-22 13:37:40 +01:00
Dev
429d357e89
Correctly parse hours into second for quest code
2023-07-22 13:35:49 +01:00
Dev
a09c813358
Add extra check for messages from traders where dialog type is defined
2023-07-22 13:32:37 +01:00
Dev
25ea9afae4
Typo
2023-07-22 13:14:40 +01:00
Dev
f2caff3c70
Migrate ragfair returnItems() to use new mail send service
...
Some renames + comments
2023-07-22 13:13:01 +01:00
Dev
3526b2764a
Migrate quest fail to new MailSendService
2023-07-22 13:02:42 +01:00
Dev
f3e1dd59fb
Migrate quest controller to use new message service instead of dialogHelper
2023-07-22 12:56:15 +01:00
Dev
1617617cf2
Improve localisation to reduce confusion that server mods are loaded, not client and server mods
...
Small comment typo fix
2023-07-22 11:46:38 +01:00
Dev
de356f8f71
Fix bad ref
2023-07-21 19:37:51 +01:00
chomp
a7b4ebe316
Rework message sending to support gift system ( !106 )
...
Co-authored-by: Kaeno <e>
Co-authored-by: Dev <dev@dev.sp-tarkov.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/106
2023-07-21 17:08:32 +00:00
Dev
a9e6d5d0fe
Stub out more of gift service + allow adjustment of sender for dialogs
2023-07-20 21:29:27 +01:00
Dev
4092ff7c9d
Add stub of gift service
2023-07-20 21:07:47 +01:00
Dev
67706f09fc
Fix missing import
2023-07-20 20:51:49 +01:00
chomp
e2a1b10989
Fixed bug to when talking with another user. Player messages shows like its being send from player instead of reciever. ( !105 )
...
Co-authored-by: Kaeno <e>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/105
2023-07-20 19:27:28 +00:00
Dev
c3232ac979
Refactor of InsuranceService
...
Add two methods to item helper, `getStaticItemPrice()` + `getFleaItemPrice()`
Changed how getItemPrice() works to return handbook price if its 1 rouble, not if its over 1
2023-07-20 16:04:26 +01:00
Dev
58063ce303
Fix incorrect comment
2023-07-20 14:02:53 +01:00
Dev
78d097498c
Update JSONs and add new properties to server interfaces
2023-07-20 13:53:44 +01:00
Dev
6edf331aff
Use corect type
2023-07-20 13:22:47 +01:00
Dev
a79a5f7aec
Allow modders to set item min/max stack size limits for any item on fence
2023-07-20 12:00:24 +01:00
Dev
d1d3674332
Localise warning messages
2023-07-19 13:16:45 +01:00
Dev
129fe0dc97
Localise server errors
2023-07-19 11:00:34 +01:00
Dev
d001fe8fb5
Adjust the secure container ammo stack sizes for PMCs to reduce chance PMCs run out of ammo
2023-07-18 19:14:52 +01:00
Dev
3cba3bfd4a
Additional types added to BaseClasses
2023-07-18 17:16:23 +01:00
Dev
3768742bc8
Improvements to varous types throughout the codebase
...
Added quest type as enum for IQuest
Added missing values to QuestReward enum
2023-07-18 16:53:15 +01:00
Dev
f28d6c2a6b
Added comments to various config files
2023-07-18 15:45:57 +01:00
Dev
942c079284
Rename all globals.ts interfaces to improve naming consistency
2023-07-18 15:44:14 +01:00
Dev
5b3e3e33df
extend MinMax for a number of interfaces
2023-07-18 15:18:01 +01:00
Dev
ca48f0e83c
Add property to location config to allow adding bot min/max spawn limits for maps
...
Limit marksman on customs/woods/streets between 2 and 4, woods to 2 and 5
2023-07-17 14:40:54 +01:00
Dev
02d43d491c
Save time spent in raid to profile
2023-07-17 09:36:10 +01:00
Dev
965e3efbc7
Handle additional events: ignore/set and ignore/remove
...
Pass full request object generateDialogueView instead of just id
Handle case when getting dialogue from profile that does not exist
Improve `getMessagePreview()` nullguard properties that may be missing
2023-07-15 15:01:23 +01:00
Dev
295ed59739
Additional code comments
2023-07-15 14:49:25 +01:00
Dev
5e3d3f5bd7
Rework generateAll() to not have hardcoded skip of "base" map + moved code around + varaible rename
...
Made generate() private
2023-07-15 11:58:35 +01:00
Dev
7a1140c229
Extract coder into function from updateProfileBaseState + log nickname on game start
2023-07-15 11:03:54 +01:00
Dev
ee3766aad3
Add SPT friend :3
2023-07-15 11:02:48 +01:00
Dev
18054e4004
Extract code into seperate functions inside ProfileController + add logger to class
2023-07-15 11:01:29 +01:00
Dev
5d20b6b781
Further comment improvements
2023-07-15 11:00:35 +01:00
Dev
76804c0326
Replace magic string with enum
2023-07-15 10:58:35 +01:00
Dev
2b6980358c
Moved keepalive code out of GameCallbacks and into its own function inside GameControler
2023-07-15 10:57:39 +01:00
Dev
c1e7c70c65
Remove unused getTemplateQuests
method
2023-07-15 10:56:47 +01:00
Dev
d2c2a39075
Add comments + improve comment consistency
2023-07-15 10:56:00 +01:00
Dev
195d0e3b1d
Add 'fixes' section to core.json, expose some flags for enabling spt fixes
...
Added flag to enable deletion of modded items from profile - default is off
Fixed issue where loop would stop checking for modded items after finding the first item
2023-07-15 10:53:08 +01:00
Dev
9288a59a77
Convert some privates to protected + some publics to protected
2023-07-15 10:45:33 +01:00
Dev
2df0d44de5
Add mock implementation for client/friend/request/cancel
endpoint
...
Addec comments
2023-07-14 13:03:55 +01:00
Dev
162709a5b0
Improve comments in gamecallback/controller
...
Move public functions to top of class
Use parameter property instead of hard coded string inside healthTreatment()
2023-07-14 12:55:32 +01:00
Dev
455bde264c
Improve offraidEat
...
use .find() instead of iterating over every item in player inventory
Return client error if consumable item not found + localised
2023-07-14 12:53:31 +01:00
Dev
0b68fb53e0
Add return type to comment
2023-07-13 17:32:50 +01:00
Dev
5ecf16f78c
Return correct type instead of any[]
2023-07-13 14:20:31 +01:00
Dev
7a16c7e998
Improvements to skill points given after performing actions:
...
Item crafting:
HideoutManagement skillpoints give
Intellect skillpoints given
Examining item:
Intellect given
Repairing weapon/armor
Intellect given
Cleanup of hideouthelper + reordering of functions
Flagged rewardSkillPoints() as dupe of PlayerService.incrementSkillLevel()
Flagged incrementSkillLevel() as dupe of QuestHelper.rewardsSkillPoints()
Need to decide which one wins
Added nullguards to incrementSkillLevel() + added optional multiplication by global skillprogression rate
Made it update last access timestamp
2023-07-13 10:26:47 +01:00
Dev
fd56bf040e
Convert hideout craft exp magic string into config value
2023-07-12 20:12:16 +01:00
Dev
218eb35ecb
Implement hallowen trader icon system
...
Rework DatabaseImporter.loadImages() to take additional parameter
2023-07-12 19:50:33 +01:00
Dev
ea270a95a5
Move hard coded gameversion/account type values into bot config
2023-07-11 11:58:26 +01:00
Dev
7bb93cdcaf
Add clarifying comment
2023-07-10 22:25:59 +01:00
Dev
503551c27e
Refactor getClientQuests
2023-07-10 15:48:49 +01:00
Dev
4b83046793
Update package versions where possible
...
Fix multi-type issue on ragfair tax calss
2023-07-09 19:40:05 +01:00
Dev
d0dcfc523b
Move event quest code into own function
2023-07-09 16:31:42 +01:00
Dev
dba6b5f629
Allow modifcaiton of the container airdrop will use (capacity etc)
2023-07-09 14:47:02 +01:00
Dev
ad6b94d8a9
Filter out event quests from data prior to sending them to player
...
Rework season service to use enum instead of magic strings for event names
Add config property to control showing/hiding non-seasonal event quests from player
2023-07-09 14:45:06 +01:00
Dev
cad5dcd679
Add missing quest assort unlocks to questassort.json
...
Add function to write to console what quest assort unlocks are missing
2023-07-09 11:33:43 +01:00
Dev
0c0f48b93a
Improve comments
2023-07-09 10:00:00 +01:00
chomp
6754d84484
24605 ( !103 )
...
Co-authored-by: Dev <dev@noreply.dev.sp-tarkov.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/103
2023-07-07 20:24:42 +00:00
Dev
bf4e42b211
Add per bottype loot N values
...
Made bosses share same value as PMCs
2023-07-05 18:44:35 +01:00
Dev
d6fed1aa0f
Cleanup of generateContainerLoot()
to improve readability
2023-07-02 15:05:32 +01:00
Dev
d28d1a485d
Add additional check to prevent trader item preset exploiting
2023-06-30 19:30:49 +01:00
Dev
343be66806
Add property to ragfair blacklist to toggle removal of damaged
ammo packs
2023-06-30 14:00:08 +01:00
Dev
61a04c344d
Resolved numerous issues with quest rewards showing a broken icon due to mismatching IDs
...
Added additional weight when picking a quest assort unlock (money or barter)
2023-06-27 17:23:21 +01:00
Dev
567dc6e289
Add clarifying comment
2023-06-27 11:22:03 +01:00
Dev
8534a35518
Add primorsky ave appt key to handbook with placeholder price of 1 rub
2023-06-26 08:23:08 +01:00
Dev
da6cbee387
Replaced getFleaPriceForItem() check for value = 1 with undefined check + move code above undefined = 1assignment
2023-06-26 08:10:36 +01:00
Dev
28ca90b02c
Convert duplicate mods into comma separated string prior to being logged in checkForDuplicateMods()
2023-06-26 07:39:22 +01:00
Dev
7ad1fc3996
Add FiR config and wire up + cleanup of openRandomLootContainer()
2023-06-20 17:19:53 +01:00
Dev
26f29e1522
Add sealed crates to airdrops
2023-06-20 16:59:15 +01:00
Dev
0c31719013
Feature: Add code to handle sealed weapon containers when opened in menu
...
Add handbook price for sealed containers (default of 100rub)
2023-06-20 16:07:05 +01:00
Dev
488b9f5f1a
prevent null ConflictingItems from causing isItemIncompatibleWithCurrentItems() to error
2023-06-18 15:39:20 +01:00
Dev
de1b33b963
improve getFleaPriceForItem() warning message
2023-06-17 11:47:50 +01:00
Dev
3918bf785e
Make two properties optional
2023-06-16 10:18:54 +01:00
Dev
b478a1cdad
Add nan check to ragfair rating incrementor code
2023-06-13 19:33:42 +01:00
Dev
709817d4fe
make property optional
2023-06-06 16:35:10 +01:00
Dev
6e5f4fbce3
Refactor of rollForSale()
...
Adjusted function to allow for parts of an offer to succeed or fail instead of a binary sell/fail outcome
optimisation: Only calculate selltime if item will be sold
Added additional debug logging
2023-06-04 16:30:54 +01:00
Dev
e4fb8cb40d
Refactor getTraderSuits() to make better use of .filter() instead of loops
...
Moved magic strings into object
Misc comments
2023-06-02 16:21:35 +01:00
Dev
48ba66f470
Improve separation of concerns by moving hideout property gathering code out of updateAreasWithResources() and into own function getHideoutProperties()
...
Refactored how we get bitcoin count
2023-06-02 13:54:03 +01:00
Dev
cfbe2739f9
Fix issue with insurance message being incorrect
...
Moved `sendLostInsuranceMessage()` to `insuranceService` + make it read correct id from locale file
2023-06-01 21:24:23 +01:00
Dev
9bf533a1b1
Add additional comments and formatting fixes
2023-06-01 10:46:16 +01:00
Dev
bb9d3739c4
Move logging
2023-05-30 13:58:02 +01:00
Dev
22279a7353
Log sessionid on game start
2023-05-30 13:55:46 +01:00
Dev
774357c1f3
Move fence logging
2023-05-30 13:36:15 +01:00
Dev
00e1679dd9
Log fence standing changes post-raid
2023-05-30 13:35:34 +01:00
Dev
295f144884
Update JSONs
2023-05-29 22:54:03 +01:00
Dev
375cfa2495
Improve comments inside RagfairOfferHelper
2023-05-29 16:32:06 +01:00
Dev
0cd28865eb
Null guard when sold item locale key not found
2023-05-29 16:20:41 +01:00
Dev
88a854c5ca
Refactor processOffersOnProfile()
2023-05-29 16:12:27 +01:00
Dev
98e2af2ad4
Update sold/returned template guid, fixes #40
2023-05-29 16:05:19 +01:00
Dev
b84d8a66c2
Ensure we hydrate the systemData object before calling addDialogueMessage()
2023-05-27 23:04:39 +01:00
Dev
a4efdf9b43
Revert "Store the location insured gear was lost on + time it was lost against insured items in profile"
...
This reverts commit 77508ace73
.
2023-05-27 22:39:32 +01:00
Dev
72239e4434
Rename variables for clarity
2023-05-27 22:31:43 +01:00
Dev
77508ace73
Store the location insured gear was lost on + time it was lost against insured items in profile
2023-05-27 22:31:24 +01:00
Dev
1a3c107f0a
Remove duplicate method that does same as storeLostGear()
2023-05-27 22:26:58 +01:00
Dev
c489db81b1
Protect loop from undefined error inside fixBrokenOfflineMapWaves() when map has missing waves array
2023-05-27 19:03:52 +01:00
Dev
e2b1d4d0c6
null guard against a map without a base json inside fixBrokenOfflineMapWaves()
2023-05-27 19:02:30 +01:00
Dev
e7ccddad2d
23399 JSON changes
2023-05-27 10:34:47 +01:00
Dev
17d517e4a9
Improve logging
2023-05-24 19:19:05 +01:00
Dev
26eb1287cc
Refactor sellitem() to use .find()
instead of for loop
...
Add additional checks when sold item is not found
Replaced whitespace repalcement code with `replace()`
2023-05-24 15:51:05 +01:00
Dev
dcc12f1fcd
Fix issue with bot gen when bot config has empty equipment blacklist
2023-05-22 17:03:24 +01:00
Dev
eb445b2820
Refactor doesPlayerLevelFulfilCondition() to handle more than just >
2023-05-22 16:00:09 +01:00
Dev
87c1c80a78
Handle getting quest status when player profile lacks a Quests
array
2023-05-22 15:50:10 +01:00
Dev
2f919c795c
Fix issue with scav case rewards failing + made function reward level handling more robust
2023-05-22 12:25:19 +01:00
Dev
17afc9e460
Add endpoint stubs and improve request/response objects
2023-05-20 18:37:39 +01:00
Dev
08f2bdb27e
Refactor ScavCaseRewardGenerator.getScavCaseRewardCountsAndPrices()
2023-05-19 17:40:06 +01:00
Dev
dcd1da28a6
Refactor InsuranceController.processReturn()
2023-05-19 17:39:26 +01:00
Dev
52f9dbefa9
Add new properties to location data
2023-05-19 17:38:38 +01:00
Dev
f3b28d532c
Refactor convertBotDifficultyDropdownToBotDifficulty() ot use switch statement
2023-05-18 17:23:28 +01:00
Dev
4d27efd9d1
Additional fix when purchasing clothing
2023-05-15 19:18:42 +01:00
Dev
ce63d5418b
Fix error on purchasing clothing from ragman
2023-05-15 18:37:09 +01:00
Dev
9f3954cbb2
23043
2023-05-15 17:22:54 +01:00
Dev
f08ac4d2ac
Fixed bug that casued bot skills to lack an Id, this could be the cause of Cultists having footsteps
2023-05-08 11:14:32 +01:00
Dev
f340e55924
Skip adding items to mod pool if item has no _props property instead of just showing error
2023-05-01 15:27:33 +01:00
Dev
eb6905967f
Refactor of hideouthelper
2023-04-26 22:29:08 +01:00
Dev
685859d57f
Refactor addOrIncrementCategory()
2023-04-24 14:19:42 +01:00
Dev
8076ed9b29
Refactor storeLostGear()
2023-04-24 14:03:41 +01:00
Dev
463e33d1b7
Refactor getNumberOfItemsNeededToFillGap
2023-04-24 13:34:40 +01:00
Dev
b563dd3f78
Refactor addPaymentToOutput()
2023-04-24 13:23:50 +01:00
Dev
cbf06fcece
Refactor removeSecureContainer()
2023-04-24 12:47:29 +01:00
Dev
08be8654e4
Refactor isNicknameTaken()
2023-04-24 12:47:19 +01:00
Dev
2c3e61b413
Refactor endOfflineRaid()
2023-04-24 11:57:19 +01:00
Dev
1f5359bde4
Fix typo
2023-04-23 23:47:16 +01:00
Dev
60a11b28f2
Refactor updateWaterFilters()
2023-04-23 21:23:44 +01:00
Dev
833f17ecdb
Refactor updateProductionProgress()
2023-04-23 19:47:39 +01:00
Dev
b1605b20fe
Centralise time elapsed code in hideouthelper into one function
2023-04-23 19:40:42 +01:00
Dev
f52c42e8b7
Fixed bug when enabling generator for long-running generator-off crafts gaining a burst of progress as if generator was on the whole time
...
Refactor updateProductionProgress() to get seconds between `sptUpdateLastRunTimestamp` and now instead of crafts `StartTimestamp` and now
Store hideout craft progress as decimal for better accuracy when crafting without generator
Added code to EventOutputHolder to ensure we continue to return progress as an int
2023-04-23 19:24:00 +01:00
Dev
d411f5ce1d
Refactor updateWaterFilters()
2023-04-23 14:02:46 +01:00
Dev
9fff59f464
FIx typo, no more pies
2023-04-23 13:44:15 +01:00
Dev
9f8bfae75d
Refactor of buyClothing()
2023-04-23 12:17:18 +01:00
Dev
d284ca47d4
Refactor wearClothing()
2023-04-23 11:38:57 +01:00
Dev
31eb470a08
Make LocalisationService get keys directly from database server
2023-04-23 11:26:11 +01:00
Dev
c20a9d6e36
FIx getFleaPriceForItem() not logging when price was not found
2023-04-23 11:25:42 +01:00
Dev
9ddfeb629e
Fix incorrect reference to Set data structure
2023-04-23 11:13:53 +01:00
Aria Adair
eb9af28c1b
Make it possible to dynamically add bundles. ( !87 )
...
I'm experimenting around with this to allow for loading bundles from ZIP files to help with texture pack distribution, wanted to get it out in front of folks for review.
Co-authored-by: Ari <a@silversupre.me>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/87
Co-authored-by: Aria Adair <gaylatea@noreply.dev.sp-tarkov.com>
Co-committed-by: Aria Adair <gaylatea@noreply.dev.sp-tarkov.com>
2023-04-23 09:50:52 +00:00
chomp
7974e4531b
Refactor functions ( !90 )
...
(cherry picked from commit f6fc6e41c0
)
Co-authored-by: Dev <dev@noreply.dev.sp-tarkov.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/90
2023-04-22 22:41:04 +00:00
Dev
2bc582d65c
Refactor handbookhelper to use a set instead of record for handbook price values
2023-04-22 19:33:47 +01:00
Dev
95fbd07473
Refactor addSpawnedInSessionPropertyToitems()
2023-04-22 18:36:34 +01:00
Dev
8c3924baab
Refactor calculateFenceStandingChangeFromKills()
2023-04-22 16:41:00 +01:00
Dev
c45c9185a6
Refactor inRaidHelper.removeSpawnedInSessionProeprtyFromitems()
2023-04-22 16:30:57 +01:00
Dev
fae6c57bfa
Rename Itrader interface for clarity
2023-04-22 16:28:07 +01:00
Dev
d6bb12a3a2
Refactor InRaidHelper.deleteInventory()
2023-04-22 16:27:46 +01:00
Dev
a1e7f21a59
Update JSONs
2023-04-16 16:02:46 +01:00
Dev
4a44b004a6
Improved image import functionality to allow for image path overrides e.g. adjusting trader images
...
Pass routes into getImages() function
2023-04-15 14:07:56 +01:00
Dev
70da4a632e
Make getItemSize() more resilient to bad data - return 1x1 size if item not found + show error to player
...
Fix incorrect return type for getItemSize()
2023-04-12 15:51:52 +01:00
Dev
43d9f6490c
Fix: Improve orphaned item checking
2023-04-12 15:41:48 +01:00
Dev
96da3d1c6b
nullguard generatePool() function inside BotEquipmentModPoolService
2023-04-11 16:52:07 +01:00
Dev
102584e24b
Workaround for bad shotgun dispersion values
2023-04-08 22:17:04 +01:00
Dev
d39c7f30f8
Update nvgIsActiveChancePercent
into 2 properties, one for day, one for night
...
Removed:
nvgIsActiveChancePercent
Added:
nvgIsActiveChanceDayPercent
nvgIsActiveChanceNightPercent
2023-04-08 13:30:39 +01:00
Dev
c60c67fce5
Split config of lasers/lights active status by raid day/night status, default to day if no raid found
...
Removed:
lightLaserIsActiveChancePercent
Added:
lightIsActiveDayChancePercent?: number;
lightIsActiveNightChancePercent?: number;
laserIsActiveChancePercent?: number;
2023-04-08 13:18:01 +01:00
Kaeno
ca931165b2
Fix: Fixed some ragfair issues ( !86 )
...
Fixed bug with removing offers from flee and item returning too quickly.
Fixed bug with error message that would show on removal of offers.
Expose property expireSeconds in ragfair.json.
Co-authored-by: Kaeno <>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/86
Co-authored-by: Kaeno <kaeno@noreply.dev.sp-tarkov.com>
Co-committed-by: Kaeno <kaeno@noreply.dev.sp-tarkov.com>
2023-04-06 16:23:52 +00:00
Dev
2cd7555bbe
Fix: Only return prices for items that exist in items.json
...
(cherry picked from commit c0aece0a2c9a84f71d8b5dd940c3e37a9017b6ed)
2023-04-06 15:38:26 +01:00
chomp
5e9e0736cc
update core and WildSpawnTypeNumber.ts to match version 22561 ( !85 )
...
Co-authored-by: Kaeno <>
Co-authored-by: Dev <dev@noreply.dev.sp-tarkov.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/85
2023-04-05 21:08:35 +00:00
Kaeno
33195f8efb
Fix: Workaround fixing marksmans not spawning on maps in function. fixBrokenOfflineMapWaves ( !84 )
...
Fix: Workaround fixing marksmans not spawning on maps in function fixBrokenOfflineMapWaves
Co-authored-by: Kaeno <>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/84
2023-03-29 19:50:02 +00:00
Dev
9a419e80ef
Fix: Skip item when slots property is empty during generation of items pool
2023-03-26 16:53:51 +01:00
Dev
27a0df2d92
Fix: Improve InventoryController.toggleItem()
to handle items without a upd property
...
Rewrote loop to use .find()
Added comments + logging
2023-03-26 16:52:40 +01:00
Dev
43ad523dce
Fix: null guard bonus check during upgradeComplete
2023-03-25 16:35:38 +00:00
Dev
32afbffcda
Refactor: Move server locates into database folder so they can be accessed/edited by modders
2023-03-25 15:37:50 +00:00
Dev
82ff9dde12
Fix: use values from http.json instead of values in database/server.json
...
Cleanup and reordering of HttpServer.ts
2023-03-25 15:03:20 +00:00
Dev
e626c4d3de
FIx: Trim whitespace around generated bot name
2023-03-24 14:57:51 +00:00
Dev
70e82cbe4e
Fix: don't error when leaving raid early
2023-03-23 20:18:53 +00:00
Dev
a5272dc596
Feature: expose profile save wait delay in config
2023-03-23 15:03:54 +00:00
Dev
a207e5778e
Feature: Save profile changes on game exit
2023-03-23 14:48:10 +00:00
Dev
990c33b9c6
Feature: expose 3 variables to PMC messages: playerLevel/playerName/playerSide
2023-03-22 17:12:19 +00:00
Dev
e2074ffc7a
Fix: convert BotLootCache to interface
2023-03-22 14:49:24 +00:00
CZPZ
8c37bc7837
Lint: ts files ( !82 )
...
Co-authored-by: alimoncul <alimoncul@gmail.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/82
Co-authored-by: CZPZ <czpz@noreply.dev.sp-tarkov.com>
Co-committed-by: CZPZ <czpz@noreply.dev.sp-tarkov.com>
2023-03-22 14:31:05 +00:00
chomp
d595e26ee6
Feature: Allow PMCs that kill the player to message them a positive/negative message ( !81 )
...
Store bots spawned in raid inside cache (`MatchBotDetailsCacheService`)
Clear cache after raid
Co-authored-by: Dev <dev@noreply.dev.sp-tarkov.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/81
2023-03-22 10:25:34 +00:00
Dev
3232314dbd
Fix: hotfix for difference in types between botjson skills (dict) and output (array)
2023-03-21 15:58:08 +00:00
Dev
0d5a07533d
Fix: use correct values for colleagues p3
2023-03-21 15:42:08 +00:00
Dev
5e739c2a90
Fix: check for empty object when looking at key length
2023-03-21 15:31:42 +00:00
Dev
16e1293d55
Fix: error on profile creation
2023-03-21 15:22:36 +00:00
Dev
1659211080
Refactor: rewrite itemFitsInto1By2Slot to improve readability
2023-03-21 15:17:14 +00:00
Dev
a6838e9312
Refactor: improve generateSkills() function
2023-03-21 15:06:27 +00:00
Dev
415b73d674
Feature: Update incrementSkillLevel() call to replace hard coded value with value from globals
2023-03-21 14:35:29 +00:00
Dev
249730ee65
Fix: return the found quest
2023-03-21 14:22:45 +00:00
Dev
1fc35881d8
Refactor: Update various functions with changes from code review
2023-03-21 14:19:49 +00:00
Dev
927273d71d
Feature: Add ability to define different types of airdrop loot containers
...
+ Fixed a typo in `createRandomloot()` function name
+ Added more generically named`getWeightedValue()` function as future replacement for `getWeightedInventoryItem()`
+ Changed `LootRequest` into interface
Added:
Weapon/armor
Barter
Medical/Food
Mixed
2023-03-18 17:29:26 +00:00
Dev
e8f53e1fcd
Fix: update wildspawnpoint enum
2023-03-18 16:18:59 +00:00
Dev
8115b62e73
Fix: add nullguards to getResponse()
2023-03-18 09:19:20 +00:00
chomp
ed4dfc201d
Feature: Add ability to whitelist items inside each bots generation
object + filter per bot level inside bot.json
equipment.randomisation
section ( !73 )
...
(cherry picked from commit 253b4d0120db8245e6c2e863ab7d2fbdc5196128)
Co-authored-by: Dev <dev@noreply.dev.sp-tarkov.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/73
2023-03-17 18:20:16 +00:00
chomp
611b63a4cd
Feature: UseapplyRandomizeDurabilityLoss
config property in repairItemByKit()
( !72 )
...
Co-authored-by: Dev <dev@noreply.dev.sp-tarkov.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/72
2023-03-17 09:12:47 +00:00
chomp
4434b95621
Feature: reworked calculation of flea price to use the price an item can be sold to a trader for instead of the price a trader sells an item at ( !71 )
...
Disable automatic adjustment of items that are below handbook price
Co-authored-by: Dev <dev@noreply.dev.sp-tarkov.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/71
2023-03-15 19:06:03 +00:00
chomp
b44f62bb99
Feature: send launcher descriptions of profiles when calling connect()
( !70 )
...
Localise description text
Add `IConnectResponse` object for LauncherController.connect()
Move server name into core.json config
Co-authored-by: Dev <dev@noreply.dev.sp-tarkov.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/70
2023-03-15 14:18:55 +00:00
chomp
12c269fb57
Feature: add adjustPriceWhenBelowHandbookPrice
to ragfair.json + Add comments to ragfair config ( !69 )
...
Co-authored-by: Dev <dev@noreply.dev.sp-tarkov.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/69
2023-03-15 13:28:51 +00:00
chomp
f74031b4d5
Feature: Ensure chosen extract for repeatable quest always has a chance above 0 ( !68 )
...
Co-authored-by: Dev <dev@noreply.dev.sp-tarkov.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/68
2023-03-14 12:39:36 +00:00
chomp
8b23039e7a
Feature: Chance chance to send message to per victim instead of per-raid ( !65 )
...
Co-authored-by: Dev <dev@noreply.dev.sp-tarkov.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/65
2023-03-13 15:23:34 +00:00
chomp
08b760cf4c
Feature: expand PMC response system to include different message suffixes ( !64 )
...
Co-authored-by: Dev <dev@noreply.dev.sp-tarkov.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/64
2023-03-13 14:02:39 +00:00
chomp
c81633ac38
Fix: resolve issue with handing in item to quest that allows multiple types of items to be handed in (e.g. punisher p5 - 2 types of makarov can be handed in) ( !63 )
...
Moved some error logging in handoverQuest() to separate functions
Renamed `itemHandoverMode` to `isItemHandoverQuest`
Included some additional pmc responses
Co-authored-by: Dev <dev@noreply.dev.sp-tarkov.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/63
2023-03-13 09:34:04 +00:00
chomp
00e367ffa5
Feature: Allow modders to define custom currencies ( !62 )
...
https://dev.sp-tarkov.com/SPT-AKI/Issues/issues/11
Co-authored-by: Dev <dev@noreply.dev.sp-tarkov.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/62
2023-03-11 17:38:20 +00:00
chomp
a79c04ad28
Feature: warn players who have botReload skill active ( !58 )
...
Co-authored-by: Dev <dev@noreply.dev.sp-tarkov.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/58
2023-03-10 11:26:59 +00:00
chomp
d192044b68
Fix: remove redundant reward code as quests are set to ready to start, not started ( !56 )
...
Co-authored-by: Dev <dev@noreply.dev.sp-tarkov.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/56
2023-03-09 11:53:19 +00:00
chomp
1cfd6d76bb
Fix: Give dev-usec profiles starting rewards ( !53 )
...
Co-authored-by: Dev <dev@noreply.dev.sp-tarkov.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/53
2023-03-08 22:41:57 +00:00
chomp
1137912d51
Feature: Add system that allows PMCs to send text messages to player post-raic. Can be positive or negative ( !40 )
...
Co-authored-by: Dev <dev@noreply.dev.sp-tarkov.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/40
2023-03-08 13:26:32 +00:00
chomp
e4bc6c8d68
Feature: Improve numerous endpoints + add function for sending messages to player ( !39 )
...
Co-authored-by: Dev <dev@noreply.dev.sp-tarkov.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/39
2023-03-07 22:25:23 +00:00