This PR adds quest variations to DDON. In the original, different enemies and quest rewards would be possible for the same quest in certain locations. These quests are all under the same name and use the same quest ids (thanks Capcom).
This works by bundling quests that have the same id together if they also have a variant_id.
When loading in for the first time, the server will randomly select one of these variant quests for each quest id. If the player activates this quest but doesn't complete it, it will persist and not reroll until it is cancelled or finished. If the player has the quest in progress, logs out and logs back in, this quest stays persistent between sessions.
Players joining other parties is also supported. The new quests will roll if all of the party members are in a safe zone. If the quest has been picked up and none of the members have the quest, this will be added for all of them to persist if they leave early without completing. Players who already have a version do not hold two of the same quest at once.
Quest rewards are also supported for each quest allowing for different rewards to be given as intended in the original version.
Migration notes
This sets DB version to 15. It will add 2 new columns in 2 existing tables for the variant quest id. It will also delete quest 2005501 from the quest and reward tables in the database as this quest has been changed to the correct id and the server will throw errors if this quest id is referenced.
438
World Quest Variations
This PR adds quest variations to DDON. In the original, different enemies and quest rewards would be possible for the same quest in certain locations. These quests are all under the same name and use the same quest ids (thanks Capcom).
Please see this as proof: Quest-info Sphinx quest Ape quest
Both WQ show up with the same titles
Details
This works by bundling quests that have the same id together if they also have a variant_id.
When loading in for the first time, the server will randomly select one of these variant quests for each quest id. If the player activates this quest but doesn't complete it, it will persist and not reroll until it is cancelled or finished. If the player has the quest in progress, logs out and logs back in, this quest stays persistent between sessions.
Players joining other parties is also supported. The new quests will roll if all of the party members are in a safe zone. If the quest has been picked up and none of the members have the quest, this will be added for all of them to persist if they leave early without completing. Players who already have a version do not hold two of the same quest at once.
Quest rewards are also supported for each quest allowing for different rewards to be given as intended in the original version.
Migration notes
This sets DB version to 15. It will add 2 new columns in 2 existing tables for the variant quest id. It will also delete quest 2005501 from the quest and reward tables in the database as this quest has been changed to the correct id and the server will throw errors if this quest id is referenced.
Checklist:
develop
branch