Commit Graph

905 Commits

Author SHA1 Message Date
Dev
bdd9a4cd9b Improve handling of Lightkeeper quests
When LK gives a time-gated quest it was being saved into the profile with a status of `Locked`, meaning it would stay there forever.

Post raid:
Check post-raid for locked quests and update them to be `AvailableAfter` + assign the unlock time to `availableAfter`
Check for quests flagged as  `AvailableAfter` and have a  `availableAfter` timestamp before current time, change to `AvailableForStart`
2023-12-10 13:09:54 +00:00
Dev
18dc76ec2c Improve handling of adding items to a bot container when the items type is incompatible with container 2023-12-08 16:27:34 +00:00
Dev
8a78e074a4 From testing, inspecting an item sets value to false, not true 2023-12-07 20:37:56 +00:00
Dev
fd55727054 Bugfixes and small optimisations 2023-12-07 20:22:35 +00:00
Dev
c015882eac Improve handling of a mail profileChangeEvents property 2023-12-07 20:16:04 +00:00
Dev
7c2d93e87b Handle edge case when an item is missing a min/max stack size value 2023-12-07 20:07:46 +00:00
Dev
3f46cffcfe Rewrote getCategoriesFromOffers() to make use of filter.reduce instaed of a giant loop 2023-12-07 11:57:28 +00:00
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
b148977c79 Update locales - fixes The Punisher - Harvest quest issue 2023-12-05 13:44:16 +00:00
Dev
ea9ebf695d Update version string 2023-12-04 19:12:22 +00:00
Dev
c73a9ad9ba Test adjustment to PMC brains on customs 2023-12-04 18:57:33 +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
a657e66917 Update readme 2023-12-04 15:13:48 +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
2410ddfe59 Update flea prices 2023-12-03 11:41:58 +00:00
DanW
fc8b49b313 Increase minimum Scav time for Factory (!172)
Based on tester feedback, ensure at least 5 minutes is remaining for Factory Scav raids.

If we have evidence that people can regularly spawn into Factory on live EFT with 3-4 min remaining, then maybe we should just adjust the weights instead.

Co-authored-by: dwesterwick <dwesterwick@yahoo.com>
Co-authored-by: chomp <chomp@noreply.dev.sp-tarkov.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/172
Co-authored-by: DanW <danw@noreply.dev.sp-tarkov.com>
Co-committed-by: DanW <danw@noreply.dev.sp-tarkov.com>
2023-12-03 10:03:19 +00:00
Dev
044f4f9eb3 Update Skiers questassort data 2023-12-03 10:01:55 +00:00
Dev
b834cd0547 increase chance scav raid time is reduced 2023-12-02 23:01:18 +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
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