Commit Graph

826 Commits

Author SHA1 Message Date
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
7bf5f822ee Add 15% chance bear/usec spawn on reserve raid start 2023-11-30 15:22:10 +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
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
a7e003dca3 Adjust scav time weights and reduce chances 2023-11-29 15:10:08 +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
673cefcc00 Add PP-91-01 "Kedr-B" 9x18PM submachine gunto PMC weapon pool 2023-11-29 13:01:36 +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
231a52f8be Update quest assort data (includes peacekeeper ammo unlocks for new event quest) 2023-11-28 19:50:40 +00:00
Dev
d0bd178230 Add event quest: The Punisher - Harvest 2023-11-28 19:03:17 +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
367d453d09 lint 2023-11-27 15:07:45 +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
a5200e08d9 Add Zvezda assort for completing Our Own Land (prapor l4) 2023-11-22 14:20:17 +00:00
Dev
5559b938c3 Add thicc case barter for completing special equipment (peacekeeper l4) 2023-11-22 14:15:36 +00:00
Dev
112bbbea09 Adjust modloader-missing_package_json locale text 2023-11-21 19:35:48 +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