Quest names refactor

What has been done in this MR?

  • Moved all quest names into an enum
  • Refactored all code interfacing with quests to refer to quests via this enum
  • Fixed incorrect requirements checking for The Fremennik Trials completion due to some pieces of the code checking "The Fremennik Trials" and others checking "Fremennik Trials" - now they all check Quests.THE_FREMENNIK_TRIALS. Fixes the ability to use the shooting star ring to teleport to a Miscellania star. Fixes #2155 (closed)
  • Corrected internal name of The Lost Tribe, The Tourist Trap, Waterfall Quest (same type of problem as above).
  • Fixed internal misspelling of "Garden of Tranquility"
  • Corrected internal requirements checking for Rag and Bone Man II referring to a nonexistent quest called "Rag and Bone Man II" - there's only one actual quest, the second part is more like a miniquest
  • A couple of quests were defining their own name constant in a companion object; this was replaced with the new enum value and inlined to make the code compile
  • Removed a bunch of unused imports; IDEA did this when I was refactoring all the quests and it doesn't seem like a negative so I've kept it
  • Removed the quest requirements field in door_configs.json and made all of the two doors that were using this check their requirements by adding them to the existing plugin for Sophanem.

What should testers check?

Frem Trials is quest 64. Specifically for this quest:

  • The star ring restriction code previously used the correct name and was hence not working; now it should be. So ::submit until you drop a star at misc and confirm that you can tele there if you have the quest complete.
  • Other things that required this quest previously used the incorrect name and have now been fixed with a big find-replace; test this too. For my local testing, I tested that Yrsa 1301 gives her dialogue of "Welcome to my clothes shop. I can change your shoes, or I've got a fine selection of clothes for sale." when I have the quest complete, and doesn't when I don't.
  • Check that you can still start and finish the quest (no need to bother with everything in between).

In general, i.e. for any random quest you like (testing just one random quest should suffice, since every quest uses the same set of names now):

  • Test that quest journals (both for implemented quests and for unimplemented quests that have prereqs that your character does not meet yet), pre-reqs checks, quest-completion checks, quest-stage checks, starting quests, completing quests, and advancing quest stages still work.

In addition:

  • Test that grave purchasing still works, both for quest-gated graves (e.g. Zaros symbol requires DT, Armadyl symbol requires Ikov) and regular ones
  • Check that the gem trader dialogue (npc 540) correctly shows the extra option with Family Crest (quest 59) set to stage 12 (and doesn't otherwise) and correctly advances the stage to 13 at the end of that dialogue
  • Confirm that the doors to Sophanem are correctly locked behind Ichtlarin's Little Helper
  • Confirm that mysterious ruins for runecrafting are quest-locked correctly
  • I have tested these changes thoroughly.
  • I used the relevant Zaros tool for any JSON edits where possible, and have attached screenshots of any changes.
Edited by Player Name

Merge request reports

Loading