Refactored Tutorial Island dialogs and improved the configurability of various inauthenticities

What has been done in this MR?

  • IMPORTANT: Server config changes:

    • Made XP rates and ironman optional, locked behind new server config settings xp_rates and ironman
    • Removed the ironman_icons server config setting, locking it behind ironman instead
    • Removed the default_xp_rate server config setting and hardcoded the default xp rate to 1x - it doesn't make sense for this to be anything other than 1x, since you don't set your xp rate until after you've gained xp on tutorial island
    • Changed a bunch of server config defaults for inauthentic features to disabled
    • Added enable_global_chat to the worldprops default config. Note the change from enable_globalchat to enable_global_chat, this needs to be propagated to live config after merge.
    • Removed the allow_slayer_rerolls worldprops config option
  • Ryan: please add enable_global_chat = true, xp_rates = true, ironman = true to test's worldprops conf file (and live's too when this MR gets merged) and delete ironman_icons, default_xp_rate, and allow_slayer_rerolls.

  • Tutorial island changes:

    • Refactored the magic tutor dialogue:
      • Ported it to DialogueLabeller
      • Made RulesAndInfo locking more robust using a queuescript rather than the previous duct tape solution that hinged on a very nonobvious implementation detail of the old dialogue system
    • Refactored survival guide, mining tutor, and combat instructor dialogues
      • Ported them to DialogueLabeller
      • Fixed various softlock opportunities
    • Made the tutorial island dialogs persistent, so that you can now no longer gain access to your chatbox until you reach Lumbridge, save for inauthentic issues for which we need support for locking components via varbits
    • Rewrote the only partially used (Kotlin code existed for use-with, Java code existed for use but was never called) tutorial island furnace handler
    • Made the 2009scape guide tutorial dialogue unclosable
    • Made the mining tutor tutorial dialogue unclosable
    • Fixed a softlock on tutorial island where you couldn't smelt more bronze bars if you made an axe instead of a dagger
    • Fixed a softlock on tutorial island if you dropped your dagger and advanced through the gate to Vannakka
    • Fixed a softlock on tutorial island if you relog in stage 47
    • Corrected the cooking part of the tutorial to directly make bread
    • Removed unused "tutorialStage" from global player save data
    • Ported the prospecting code from event hooks to on listeners. Fixes the tutorial continuing past the prospecting stage before your character has actually had a chance to run up to the rocks.
    • Added support to DialogueLabeller to force nearly all dialogue types to be unclosable
    • Made all tutorial island dialogues unclosable where appropriate
    • Corrected Vannaka's senditem dialog where he gives you a bow and arrows to highlight the item names in blue
    • Made the player always burn their first shrimp (authentic)
    • Fixed incorrect hint arrows for entering and leaving the cook's building, for entering and leaving Vannaka's rat pen, and over the prayer guy for his very last piece of dialogue
  • General changes:

    • Made permadeath reset XP rate to 1x
    • Added an 'afterClose' function to DialogueLabeller, which registers code to be run after the dialogue is closed
    • Fixed a bug in DialogueLabeller where it would wrongly rewrap double-item dialogues, and moreover do so incorrectly
    • Removed slayer rerolls, as they are inauthentic, OP (they make Turael completely obsolete and guaranteed preserve task streak), and no longer needed for their original purpose (getting out of a task with unimplemented prereqs) with the latest slayer rewrite
    • Removed unused and dead slayer master dialogue for buying quest capes (yes, really) and for obtaining TzTok-Jad as a task (yes, really)

What should testers check?

  • Play through all of Tutorial Island, make sure everything works as expected and you can't softlock yourself. It's by no means fully authentic yet (e.g. #2382) but it should be at least as good as before and ideally better (more authentic).
    • Also try to be a weirdo and attempt to do things out of order, attempt to backtrack, etc. Do your best to softlock yourself - I've found and eliminated a couple but there may be more.
  • Try your best to lose dialogs during Tutorial Island, including by calling up other dialogs (e.g. talking to people or opening interfaces), walking away mid-dialogue, and relogging. You should never be able to gain access to the normal chatbox. You also should not be able to get stuck on the wrong stage (or the right one!) in any way, especially not by relogging.
  • XP rate and ironman dialogues are functional and work as expected. There should not be any regressions, but please check since the whole dialogue was rewritten from scratch.
  • The rules and info screen did not regress and can't be bypassed in any way other than, of course, ::confirmrules.
  • Slayer rerolls work as expected: nobody other than Turael offers rerolls, Turael will reroll automatically without asking, Turael will deny you a reroll if it's a task that he himself could have assigned.
  • Runecrafting multiple runes did not regress
  • 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