Feat: Quest Schedule ID Rework + Board Quest Rotation#822
Merged
RyanYappert merged 4 commits intoJun 7, 2025
Conversation
pacampbell
reviewed
May 15, 2025
alborrajo
reviewed
May 15, 2025
Collaborator
|
I wish you had all the deleted files in 1 commit and the changes in another. It is hard to review the thing because my browser is acting poorly with the volume of files changed :( |
alborrajo
requested changes
May 19, 2025
|
|
||
| private static readonly TimeSpan BOARD_QUEST_DURATION = TimeSpan.FromDays(1); | ||
| // TODO: This should be configurable, but needs to be synced with the reset task or the boards act funny. | ||
| private static readonly TimeSpan BOARD_QUEST_DURATION = TimeSpan.FromMinutes(2); //TimeSpan.FromDays(1); |
Collaborator
There was a problem hiding this comment.
2 minutes? development value? 🤔
9051cf7 to
74e6752
Compare
pacampbell
approved these changes
May 26, 2025
| var questEnemy = new InstancedEnemy() | ||
| { | ||
| EnemyId = Convert.ToUInt32(jEnemy.GetProperty("enemy_id").GetString(), 16), | ||
| EnemyId = (EnemyId)Convert.ToUInt32(jEnemy.GetProperty("enemy_id").GetString(), 16), |
Collaborator
There was a problem hiding this comment.
Wonder if we should make something similar for this like I did for AssetCommonDeserializer.ParseItemId.
Collaborator
|
I think you might need to update some of the comments in your PR. |
74e6752 to
0442f60
Compare
0442f60 to
cc0dc17
Compare
alborrajo
approved these changes
May 27, 2025
| private const string DefaultSchemaFile = "Script/schema_sqlite.sql"; | ||
|
|
||
| public const uint Version = 43; | ||
| public const uint Version = 44; |
Collaborator
There was a problem hiding this comment.
Same as #856 we have to be careful with the merges
cc0dc17 to
ab404a4
Compare
alborrajo
approved these changes
Jun 5, 2025
| private uint CURRENT_VARIANT_ID = 0; | ||
|
|
||
| // TODO: This should be configurable, but needs to be synced with the reset task or the boards act funny. | ||
| private static readonly TimeSpan BOARD_QUEST_DURATION = TimeSpan.FromDays(1); |
Collaborator
There was a problem hiding this comment.
Could this property be read from the task entry in DB? 🤔
Decayed quest cancellation notice on area reset. Clean up EnemyId/EnemyUIId/ClientItemInfos implementation; use ItemId, EnemyId, and EnemyUIId when possible instead of uints Light quest DB stuff, adjustments to handle variant ids, removing decayed quests when returning to town, rotation task and RPC for child servers. Fix some tasks announcing to the non-head servers on the wrong route. Migration 43 -> 44; add support for new quest_id + variant_index scheme for decoupling quest and schedule id. Cleanup inconsistent packet id naming; add some new quest cancellation packets. Light quest generation, mixin for light quest rewards, and asset. Add DeliveryItemsLight and KillTargetEnemies block support to QuestBlockExtension. Add explicit support for DistributionStart/End in the quest asset and quest system. Remove existing board quests.
…hing non-board quests. Adjust migration versioning. Default generators now use all available questIds daily.
… from being considered for generation. Improve rewards for boss hunt quests while reducing their count.
ab404a4 to
d2b9f7f
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Contains two major features, of which the second necessitates the former.
(uint)QuestId.Foo, you should instead useServer.AssetRepository.QuestScheduleIdAsset[QuestId.Foo]to get the same result.QuestManager.AssetRepository...Yes, this is cursed.questScheduleIds as part of a quest definition (either json or scripted), you should instead provide auintvariant_index/VariantIndex. For most quests, this is capped at 127 because of janky compression of the existing 32 bit QuestId space into 25 bits.q20055001 A Strange Bird Dances in the Forestandq20055004 The Abductors' True Naturehave been migrated as an example.QuestScheduleId.csvasset. These are capped at(15,127,127,127)for the same compression issues. The final column can be used to note the computed scheduleId for later reference, if you think you might want to dig it out of a DB.LightQuests.json.light_delivery_quest_reward.csxandlight_hunt_quest_reward.csxfor examples.bias_rerolls > 0, that many additional quests are rolled for each slot, and the lowest/highest level quest of that set is taken (direction controlled bybias_lower). Usually Area Orders are biased one step easier to prevent them from being "kill 10 Golems" or something obnoxious.Warning
As part of this, the DB is migrated to Version 42. Because I am lazy about migration, non-MSQ progress is dropped, as are the quest priority, EXM rank record, and quest reward log tables. Please warn your players that they should collect any outstanding rewards before they get deleted.
TODO:
Checklist:
developbranch