Improved authenticity of dialogue on tutorial island

This commit is contained in:
szumaster
2023-04-20 12:41:06 +00:00
committed by Ryan
parent f6096e3020
commit f92fde2800
9 changed files with 238 additions and 178 deletions
@@ -38,7 +38,7 @@ public final class BankerTutorDialogue extends DialoguePlugin {
@Override @Override
public boolean open(Object... args) { public boolean open(Object... args) {
npc = args[0] instanceof NPC ? (NPC) args[0] : null; npc = args[0] instanceof NPC ? (NPC) args[0] : null;
npc("Good day, how may I help you?"); npc("Good day, would you like to access your bank account?");
stage = 0; stage = 0;
return true; return true;
} }
@@ -34,8 +34,8 @@ class SurvivalExpertDialogue(player: Player? = null) : core.game.dialogue.Dialog
npc, npc,
core.game.dialogue.FacialExpression.FRIENDLY, core.game.dialogue.FacialExpression.FRIENDLY,
"Hello there, newcomer. My name is Brynna. My job is", "Hello there, newcomer. My name is Brynna. My job is",
"to teach you a few suvival tips and tricks. First off", "to teach you a few survival tips and tricks. First off",
"we're going to start with the most basic skill of", "we're going to start with the most basic survival skill of",
"all: making a fire." "all: making a fire."
) )
) )
@@ -46,8 +46,8 @@ class SurvivalExpertDialogue(player: Player? = null) : core.game.dialogue.Dialog
npc, npc,
core.game.dialogue.FacialExpression.FRIENDLY, core.game.dialogue.FacialExpression.FRIENDLY,
"Well done! Next we need to get some food in our", "Well done! Next we need to get some food in our",
"bellies. We'd need something to cook. There are shrimp", "bellies. We'll need something to cook. There are shrimp",
"in the pond there. So let's catch and cook some." "in the pond there, so let's catch and cook some."
) )
) )
@@ -79,7 +79,7 @@ class SurvivalExpertDialogue(player: Player? = null) : core.game.dialogue.Dialog
interpreter.sendDoubleItemMessage( interpreter.sendDoubleItemMessage(
Items.TINDERBOX_590, Items.TINDERBOX_590,
Items.BRONZE_AXE_1351, Items.BRONZE_AXE_1351,
"The Surivival Guide gives you a <col=08088A>tinderbox</col> and a <col=08088A>bronze axe</col>!" "The Survival Guide gives you a <col=08088A>tinderbox</col> and a <col=08088A>bronze axe</col>!"
) )
) )
addItem(player, Items.TINDERBOX_590) addItem(player, Items.TINDERBOX_590)
@@ -30,7 +30,7 @@ class TutorialMasterChefDialogue(player: Player? = null) : core.game.dialogue.Di
interpreter.sendDialogues( interpreter.sendDialogues(
npc, npc,
core.game.dialogue.FacialExpression.FRIENDLY, core.game.dialogue.FacialExpression.FRIENDLY,
"Ahh! Welcome, newcomer. I am the Master Chef, Lev. It", "Ah! Welcome, newcomer. I am the Master Chef, Lev. It",
"is here I will teach you how to cook food truly fit for a", "is here I will teach you how to cook food truly fit for a",
"king." "king."
) )
@@ -26,7 +26,7 @@ class TutorialMiningInstructorDialogue(player: Player? = null) : core.game.dialo
override fun open(vararg args: Any?): Boolean { override fun open(vararg args: Any?): Boolean {
npc = args[0] as NPC npc = args[0] as NPC
when(getAttribute(player, "tutorial:stage", 0)) { when(getAttribute(player, "tutorial:stage", 0)) {
30 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Hi there. You must be new around here. So what do I call you? 'Newcomer' seems so impersonal, and if we're going to be working together, I'd rather call you by name.") 30 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Hi there. You must be new around here. So what do I call you? 'Newcomer' seems so impersonal, and if we're going to be working together, I'd rather tell you by name.")
34 -> playerl(core.game.dialogue.FacialExpression.FRIENDLY, "I prospected both types of rock! One set contains tin and the other has copper ore inside.") 34 -> playerl(core.game.dialogue.FacialExpression.FRIENDLY, "I prospected both types of rock! One set contains tin and the other has copper ore inside.")
35 -> { 35 -> {
if(!inInventory(player, Items.BRONZE_PICKAXE_1265)) { if(!inInventory(player, Items.BRONZE_PICKAXE_1265)) {
@@ -60,7 +60,7 @@ class TutorialMiningInstructorDialogue(player: Player? = null) : core.game.dialo
when(getAttribute(player, "tutorial:stage", 0)) { when(getAttribute(player, "tutorial:stage", 0)) {
30 -> when(stage) { 30 -> when(stage) {
0 -> playerl(core.game.dialogue.FacialExpression.FRIENDLY, "You can call me ${player.username}.").also { stage++ } 0 -> playerl(core.game.dialogue.FacialExpression.FRIENDLY, "You can call me ${player.username}.").also { stage++ }
1 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Ok then, ${player.username}. My name is Dezzick and I'm a miner by Trade. Let's prospect some of these rocks.").also { stage++ } 1 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Ok then, ${player.username}. My name is Dezzick and I'm a miner by trade. Let's prospect some of these rocks.").also { stage++ }
2 -> { 2 -> {
end() end()
setAttribute(player, "tutorial:stage", 31) setAttribute(player, "tutorial:stage", 31)
@@ -24,7 +24,7 @@ class TutorialPrayerDialogue(player: Player? = null) : core.game.dialogue.Dialog
npc = args[0] as NPC npc = args[0] as NPC
when(getAttribute(player, "tutorial:stage", 0)) when(getAttribute(player, "tutorial:stage", 0))
{ {
60 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Greetings! I'd just like to briefly go over two topics with you: prayer, and friends.") 60 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Greetings! I'd just like to briefly go over two topics with you: Prayer, and Friend's.")
62 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Prayers have all sorts of wonderful benefits! From boosting defence and damage, to protecting you from outside damage, to saving items on death!") 62 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Prayers have all sorts of wonderful benefits! From boosting defence and damage, to protecting you from outside damage, to saving items on death!")
65 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "For your friend and ignore lists, it's quite simple really! Use your friend list to keep track of players who you like, and ignore those you don't!") 65 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "For your friend and ignore lists, it's quite simple really! Use your friend list to keep track of players who you like, and ignore those you don't!")
} }
@@ -36,7 +36,7 @@ class TutorialPrayerDialogue(player: Player? = null) : core.game.dialogue.Dialog
{ {
60 -> when(stage++){ 60 -> when(stage++){
0 -> playerl(core.game.dialogue.FacialExpression.FRIENDLY, "Alright, sounds fun!") 0 -> playerl(core.game.dialogue.FacialExpression.FRIENDLY, "Alright, sounds fun!")
1 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Right, so first thing: prayer. Prayer is trained by offering bones to the gods, and can grant you many boons!") 1 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Right, so first thing: Prayer. Prayer is trained by offering bones to the gods, and can grant you many boons!")
2 -> { 2 -> {
end() end()
setAttribute(player, "tutorial:stage", 61) setAttribute(player, "tutorial:stage", 61)
@@ -32,8 +32,8 @@ class TutorialQuestGuideDialogue(player: Player? = null) : core.game.dialogue.Di
interpreter.sendDialogues( interpreter.sendDialogues(
npc, npc,
core.game.dialogue.FacialExpression.FRIENDLY, core.game.dialogue.FacialExpression.FRIENDLY,
"Ah. Welcome adventurer. I'm here to tell you all about", "Ah. Welcome, adventurer. I'm here to tell you all about",
"quests. Lets start by opening the Quest list." "quests. Lets start by opening the Quest List."
) )
) )
@@ -43,7 +43,7 @@ class TutorialQuestGuideDialogue(player: Player? = null) : core.game.dialogue.Di
npc, npc,
core.game.dialogue.FacialExpression.FRIENDLY, core.game.dialogue.FacialExpression.FRIENDLY,
"Now you have the journal open. I'll tell you a bit about", "Now you have the journal open. I'll tell you a bit about",
"it At the moment all the quests are shown in red. Which", "it At the moment all the quests are shown in red, which",
"means you have not started them yet." "means you have not started them yet."
) )
) )
@@ -100,7 +100,7 @@ class TutorialQuestGuideDialogue(player: Player? = null) : core.game.dialogue.Di
core.game.dialogue.FacialExpression.FRIENDLY, core.game.dialogue.FacialExpression.FRIENDLY,
"There's not a lot more I can tell you about questing.", "There's not a lot more I can tell you about questing.",
"You have to experience the thrill of it yourself to fully", "You have to experience the thrill of it yourself to fully",
"understand. You may find some adevnture in the caves", "understand. You may find some adventure in the caves",
"under my house." "under my house."
) )
).also { stage++ } ).also { stage++ }
@@ -24,6 +24,10 @@ class TutorialRSGuideDialogue(player: Player? = null) : core.game.dialogue.Dialo
npc = args[0] as NPC npc = args[0] as NPC
val tutStage = player?.getAttribute("tutorial:stage", 0) ?: 0 val tutStage = player?.getAttribute("tutorial:stage", 0) ?: 0
if(tutStage < 2) { if(tutStage < 2) {
end()
player.dialogueInterpreter.sendDialogues(npc,FacialExpression.HALF_GUILTY,"Greetings! Please follow the onscreen, instructions!")
return false
} else {
Component.setUnclosable( Component.setUnclosable(
player, player,
interpreter.sendDialogues( interpreter.sendDialogues(
@@ -33,11 +37,11 @@ class TutorialRSGuideDialogue(player: Player? = null) : core.game.dialogue.Dialo
"instructions!" "instructions!"
) )
) )
return false
} }
if(tutStage == 2) if(tutStage == 2)
{ {
player.lock()
Component.setUnclosable( Component.setUnclosable(
player, player,
interpreter.sendDialogues( interpreter.sendDialogues(
@@ -122,6 +126,7 @@ class TutorialRSGuideDialogue(player: Player? = null) : core.game.dialogue.Dialo
5 -> { 5 -> {
end() end()
player.unlock()
setAttribute(player, "tutorial:stage", 3) setAttribute(player, "tutorial:stage", 3)
TutorialStage.load(player, 3) TutorialStage.load(player, 3)
} }
@@ -14,6 +14,7 @@ import core.api.Event
import core.game.world.GameWorld.Pulser import core.game.world.GameWorld.Pulser
import core.game.world.GameWorld.settings import core.game.world.GameWorld.settings
import core.game.world.repository.Repository import core.game.world.repository.Repository
import org.rs09.consts.Items
/** /**
* Loads stage-relevant tutorial data * Loads stage-relevant tutorial data
@@ -47,7 +48,31 @@ object TutorialStage {
teleport(player, Location.create(3094, 3107, 0)) teleport(player, Location.create(3094, 3107, 0))
hideTabs(player, login) hideTabs(player, login)
CharacterDesign.open(player) CharacterDesign.open(player)
Component.setUnclosable(
player,
player.dialogueInterpreter.sendPlaneMessageWithBlueTitle(
"",
"",
"Getting started",
"Please take a moment to design your character.",
""
)
).also {
runTask(player, 10) {
Component.setUnclosable(
player,
player.dialogueInterpreter.sendPlaneMessageWithBlueTitle(
"Getting started",
"To start the tutorial use your left mouse button to click on the",
"" + settings!!.name + " Guide in this room. He is indicated by a flashing",
"yellow arrow above his head. If you can't see him, use your",
"keyboard's arrow keys to rotate the view."
)
)
} }
}
}
1 -> { 1 -> {
hideTabs(player, login) hideTabs(player, login)
@@ -58,10 +83,10 @@ object TutorialStage {
player, player,
player.dialogueInterpreter.sendPlaneMessageWithBlueTitle( player.dialogueInterpreter.sendPlaneMessageWithBlueTitle(
"", "",
"Player controls", "",
"Game options",
"Please click on the flashing spanner icon found at the bottom", "Please click on the flashing spanner icon found at the bottom",
"right of your screen. This will display your player controls.", "right of your screen. This will display your game options."
""
) )
) )
} }
@@ -73,13 +98,12 @@ object TutorialStage {
Component.setUnclosable( Component.setUnclosable(
player, player,
player.dialogueInterpreter.sendScrollMessageWithBlueTitle( player.dialogueInterpreter.sendScrollMessageWithBlueTitle(
"Player controls", "Game Options",
"On the side panel you can now see a variety of options from", "In the interface, you can now see a variety of options such as",
"adjusting graphics settings, to adjusting the volume of ", "screen brightness, sound and music volume and whether you",
"music, to selecting whether your player should accept help", "want to accept aid from other player's or not. Don't worry",
"from other players. Don't worry about these too much for now,", "about these too much for now; they will become easier as you",
"they will become clearer as you explore the game. Talk to the", "explore the game. Talk to the " + settings!!.name + " Guide to continue."
settings!!.name + " Guide to continue."
) )
) )
} }
@@ -87,7 +111,7 @@ object TutorialStage {
3 -> { 3 -> {
hideTabs(player, login) hideTabs(player, login)
removeHintIcon(player) removeHintIcon(player)
registerHintIcon(player, Location.create(3098,3107,0), 125) registerHintIcon(player, Location.create(3098, 3107, 0), 125)
Component.setUnclosable( Component.setUnclosable(
player, player,
player.dialogueInterpreter.sendScrollMessageWithBlueTitle( player.dialogueInterpreter.sendScrollMessageWithBlueTitle(
@@ -110,9 +134,9 @@ object TutorialStage {
player.dialogueInterpreter.sendPlaneMessageWithBlueTitle( player.dialogueInterpreter.sendPlaneMessageWithBlueTitle(
"Moving around", "Moving around",
"Follow the path to find the next instructor. Clicking on the", "Follow the path to find the next instructor. Clicking on the",
"ground will walk you to that point. Talk to the Survival Expert by", "ground will walk you to that point. You can also navigate by",
"the pond to continue the tutorial. Remember you can rotate", "clicking on the minimap in the top-right corner of your screen.",
"the view by pressing the arrow keys." "Talk to Survival Expert by the pond to continue the tutorial."
) )
) )
} }
@@ -126,7 +150,7 @@ object TutorialStage {
player, player,
player.dialogueInterpreter.sendPlaneMessageWithBlueTitle( player.dialogueInterpreter.sendPlaneMessageWithBlueTitle(
"Viewing the items that you were given.", "Viewing the items that you were given.",
"Click on the flashing backpack icon to the right hand side of", "Click on the flashing backpack icon to the right-hand side of",
"the main window to view your inventory. Your inventory is a list", "the main window to view your inventory. Your inventory is a list",
"of everything you have in your backpack.", "of everything you have in your backpack.",
"" ""
@@ -185,7 +209,7 @@ object TutorialStage {
player.dialogueInterpreter.sendPlaneMessageWithBlueTitle( player.dialogueInterpreter.sendPlaneMessageWithBlueTitle(
"Please wait.", "Please wait.",
"", "",
"Your character is now attempting to light a fire.", "Your character is now attempting to light the fire.",
"This should only take a few seconds.", "This should only take a few seconds.",
"" ""
) )
@@ -201,9 +225,9 @@ object TutorialStage {
player.dialogueInterpreter.sendPlaneMessageWithBlueTitle( player.dialogueInterpreter.sendPlaneMessageWithBlueTitle(
"You gained some experience.", "You gained some experience.",
"", "",
"", "Click on the flashing bar graph icon near the inventory button",
"Click on the flashing bar graph icon near the inventory button to see", "to see your skill state.",
"your skill state." ""
) )
) )
} }
@@ -215,27 +239,27 @@ object TutorialStage {
Component.setUnclosable( Component.setUnclosable(
player, player,
player.dialogueInterpreter.sendPlaneMessageWithBlueTitle( player.dialogueInterpreter.sendPlaneMessageWithBlueTitle(
"Your skill stats.", "Your skill stats",
"Here you will see how good your skills are. As you move your mouse", "Here you will see how good your skills are. As you move your",
"over any of the icons in this tab, the small yellow popup box will show", "mouse over any of the icons in this tab, the small yellow popup",
"you the exact amount of experience you have and how much is", "box will show you the exact amount of experience you have",
"needed to get to the next level. Speak to the survival guide." "and how much is needed to get to the next level. Speak to the survival guide."
) )
) )
} }
12 -> { 12 -> {
hideTabs(player, login) hideTabs(player, login)
setVarbit(player,406, 0, 2) setVarbit(player, 406, 0, 2)
removeHintIcon(player) removeHintIcon(player)
registerHintIcon(player, Repository.findNPC(952)!!) registerHintIcon(player, Repository.findNPC(952)!!)
Component.setUnclosable( Component.setUnclosable(
player, player,
player.dialogueInterpreter.sendPlaneMessageWithBlueTitle( player.dialogueInterpreter.sendPlaneMessageWithBlueTitle(
"Catch some shrimp", "Catch some shrimp",
"Click on the bubbling fishing spot indicated by the flashing arrow.", "Click on the bubbling fishing spot, indicated by the flashing",
"Remember, you can check your inventory by clicking the backpack", "arrow. Remember, you can check your inventory by clicking the",
"icon.", "backpack icon.",
"" ""
) )
) )
@@ -250,8 +274,8 @@ object TutorialStage {
"Please wait.", "Please wait.",
"", "",
"This should only take a few seconds.", "This should only take a few seconds.",
"As you gain Fishing experience you'll find that there are many types", "As you gain Fishing experience you'll find that there are many",
"of fish and many ways to catch them." "types of fish and many ways to catch them."
) )
) )
} }
@@ -262,13 +286,26 @@ object TutorialStage {
player, player,
player.dialogueInterpreter.sendPlaneMessageWithBlueTitle( player.dialogueInterpreter.sendPlaneMessageWithBlueTitle(
"Cooking your shrimp", "Cooking your shrimp",
"Now you have caught some shrimp, let's cook it. First light a fire: chop", "Now you have caught some shrimp, let's cook it. First light a",
"down a tree and then use the tinderbox on the logs. If you've lost", "fire: chop down a tree and then use the tinderbox on the logs.",
"your axe or tinderbox Brynna will give you another.", "If you've lost your axe or tinderbox Brynna will give you",
"Once you have a fire, \"use\" your shrimp on the fire." "another."
).also {
if (!inInventory(player, Items.RAW_SHRIMPS_317, 1)) {
Component.setUnclosable(
player,
player.dialogueInterpreter.sendPlaneMessageWithBlueTitle(
"Cooking your shrimp",
"Now right click on the shrimp and select the use option. Next,",
"left click on the fire you just lit. If while doing this you look in",
"the top left of the screen, you will see the instruction that",
"you're giving your character."
) )
) )
} }
}
)
}
15 -> { 15 -> {
hideTabs(player, login) hideTabs(player, login)
@@ -276,10 +313,10 @@ object TutorialStage {
player, player,
player.dialogueInterpreter.sendPlaneMessageWithBlueTitle( player.dialogueInterpreter.sendPlaneMessageWithBlueTitle(
"Burning your shrimp", "Burning your shrimp",
"You have just burnt your first shrimp. This is normal. As you get", "You have just burnt your first shrimp. This is normal. As you",
"more experience in Cooking you will burn stuff less often. Let's try", "get more experience in Cooking you will burn stuff less often.",
"cooking without burning it this time.", "Let's try cooking without burning it this time. First catch some",
"" "more shrimp, then use them on a fire."
) )
) )
} }
@@ -291,8 +328,8 @@ object TutorialStage {
player, player,
player.dialogueInterpreter.sendPlaneMessageWithBlueTitle( player.dialogueInterpreter.sendPlaneMessageWithBlueTitle(
"Well done, you've just cooked your first " + settings!!.name + " meal.", "Well done, you've just cooked your first " + settings!!.name + " meal.",
"", "If you'd like a recap on anything you've learnt so far, speak to",
"You can now move on to the next", "the Survival Expert. You can now move on to the next",
"instructor. Click on the gate shown and follow the path.", "instructor. Click on the gate shown and follow the path.",
"Remember, you can move the camera with the arrow keys." "Remember, you can move the camera with the arrow keys."
) )
@@ -306,11 +343,11 @@ object TutorialStage {
Component.setUnclosable( Component.setUnclosable(
player, player,
player.dialogueInterpreter.sendPlaneMessageWithBlueTitle( player.dialogueInterpreter.sendPlaneMessageWithBlueTitle(
"Find your next instructor.", "Find your next instructor",
"Follow the path until you get to the door with the yellow arrow", "Follow the path until you get to the door with the yellow arrow",
"above it. Click on the door to open it. Notice the mini-map in", "above it. Click on the door to open it. Notice the mini map in the",
"the top right, this shows a top down view of the area around", "top right; this shows a top down view of the area around you.",
"you. This can also be used for navigation." "This can also be used for navigation."
) )
) )
} }
@@ -325,7 +362,7 @@ object TutorialStage {
"Find your next instructor", "Find your next instructor",
"Talk to the chef indicated. He will teach you the more advanced", "Talk to the chef indicated. He will teach you the more advanced",
"aspects of Cooking such as combining ingredients. He will also", "aspects of Cooking such as combining ingredients. He will also",
"teach you about your music player menu as well.", "teach you about your Music Player.",
"" ""
) )
) )
@@ -338,9 +375,9 @@ object TutorialStage {
player, player,
player.dialogueInterpreter.sendPlaneMessageWithBlueTitle( player.dialogueInterpreter.sendPlaneMessageWithBlueTitle(
"Making dough", "Making dough",
"This is the base for many of the meals. To make dough we must mix", "This is the base for many of the meals. To make dough we must",
"flour and water. First right click the bucket of water and select use.", "mix flour and water. First, right click the bucket of water and",
"then left click on the pot of flour.", "select use, then left click on the pot of flour.",
"" ""
) )
) )
@@ -353,9 +390,9 @@ object TutorialStage {
player, player,
player.dialogueInterpreter.sendPlaneMessageWithBlueTitle( player.dialogueInterpreter.sendPlaneMessageWithBlueTitle(
"Cooking dough", "Cooking dough",
"Now you have made dough you can cook it. To cook the dough use", "Now you have made dough, you can cook it. To cook the dough,",
"it with the range shown by the arrow. If you lose your dough talk to", "use it with the range shown by the arrow. If you lose your",
"Lev he will give you more ingredients.", "dough, talk to Lev - he will give you more ingredients.",
"" ""
) )
) )
@@ -368,11 +405,12 @@ object TutorialStage {
setVarbit(player, 1021, 0, 14) setVarbit(player, 1021, 0, 14)
Component.setUnclosable( Component.setUnclosable(
player, player,
player.dialogueInterpreter.sendPlaneMessageWithBlueTitle( player.dialogueInterpreter.sendScrollMessageWithBlueTitle(
"Cooking dough", "Cooking dough",
"Well done! Your first loaf of bread. As you gain experience in", "Well done! Your first loaf of bread. As you gain experience in",
"Cooking, you will be able to make other things like pies, cakes and even ", "Cooking, you will be able to make other things like pies, cakes",
"kebabs. Now you've got the hang of cooking, lets move on. Click on", "and even kebabs. Now you've got the hang of cooking, let's",
"move on. Click on the flashing icon in the bottom right to see",
"the flashing icon in the bottom right to see the Music Player." "the flashing icon in the bottom right to see the Music Player."
) )
) )
@@ -384,12 +422,13 @@ object TutorialStage {
registerHintIcon(player, Location.create(3072, 3090, 0), 125) registerHintIcon(player, Location.create(3072, 3090, 0), 125)
Component.setUnclosable( Component.setUnclosable(
player, player,
player.dialogueInterpreter.sendPlaneMessageWithBlueTitle( player.dialogueInterpreter.sendScrollMessageWithBlueTitle(
"The Music Player", "The Music Player",
"From this interface you can control the music that is played. As you", "From this interface you can control the music that is played.",
"explore the world and complete quests, more of the tunes will become", "As you explore the world and complete quests, more of the",
"unlocked. Once you've examined this menu use the next door to", "tunes will become unlocked. Once you've examined this menu,",
"continue." "use the next door to continue. If you need a recap on anything",
"you've learnt so far, speak to the Master Chef."
) )
) )
} }
@@ -406,9 +445,9 @@ object TutorialStage {
player.dialogueInterpreter.sendPlaneMessageWithBlueTitle( player.dialogueInterpreter.sendPlaneMessageWithBlueTitle(
"Emotes", "Emotes",
"", "",
"Now how about showing some feelings? You will see a flashing icon in", "Now how about showing some feelings? You will see a flashing",
"the shape of a person. Click on that to access your emotes.", "icon in the shape of a person. Click on that to access your",
"" "emotes."
) )
) )
} }
@@ -421,7 +460,7 @@ object TutorialStage {
player, player,
player.dialogueInterpreter.sendPlaneMessageWithBlueTitle( player.dialogueInterpreter.sendPlaneMessageWithBlueTitle(
"Emotes", "Emotes",
"For those situtations where words don't quite describe how you feel try", "For those situations where words don't quite describe how you feel try",
"an emote. Go ahead try one out! You might notice that some of the", "an emote. Go ahead try one out! You might notice that some of the",
"emotes are grey and cannot be used now. Don't worry! As you", "emotes are grey and cannot be used now. Don't worry! As you",
"progress further into the game you'll gain access to all sorts of things." "progress further into the game you'll gain access to all sorts of things."
@@ -437,8 +476,8 @@ object TutorialStage {
"Running", "Running",
"", "",
"It's only a short distance to the next guide.", "It's only a short distance to the next guide.",
"Why not try running there? To do this click on the run icon in", "Why not try running there? To do this, click on the run icon",
"your settings tab." "next to the minimap."
) )
) )
} }
@@ -482,10 +521,10 @@ object TutorialStage {
Component.setUnclosable( Component.setUnclosable(
player, player,
player.dialogueInterpreter.sendPlaneMessageWithBlueTitle( player.dialogueInterpreter.sendPlaneMessageWithBlueTitle(
"Your quest Journal", "Your Quest Journal",
"", "",
"This is your quest Journal, a list of all the quests in the game. Talk", "This is your Quest Journal, a list of all the quests in the game.",
"to the Quest Guide again for an explanation.", "Talk to the Quest Guide again for an explanation.",
"" ""
) )
) )
@@ -499,10 +538,10 @@ object TutorialStage {
Component.setUnclosable( Component.setUnclosable(
player, player,
player.dialogueInterpreter.sendPlaneMessageWithBlueTitle( player.dialogueInterpreter.sendPlaneMessageWithBlueTitle(
"Moving on.",
"", "",
"It's time to enter some caves. Click on the ladder to go down to the", "Moving on",
"next area.", "It's time to enter some caves. Click on the ladder to go down to",
"the next area.",
"" ""
) )
) )
@@ -518,9 +557,9 @@ object TutorialStage {
player.dialogueInterpreter.sendPlaneMessageWithBlueTitle( player.dialogueInterpreter.sendPlaneMessageWithBlueTitle(
"Mining and Smithing", "Mining and Smithing",
"", "",
"Next let's get you a weapon, or more to the point, you can make", "Next let's get you a weapon, or more to the point, you can",
"your first weapon yourself. Don't panic, the Mining Instructor will", "make your first weapon yourself. Don't panic, the Mining",
"help you. Talk to him and he'll tell you all about it." "Instructor will help you. Talk to him and he'll tell you all about it."
) )
) )
} }
@@ -533,9 +572,9 @@ object TutorialStage {
player, player,
player.dialogueInterpreter.sendPlaneMessageWithBlueTitle( player.dialogueInterpreter.sendPlaneMessageWithBlueTitle(
"Prospecting", "Prospecting",
"To prospect a mineable rock, just right click it and select the prospect", "To prospect a mineable rock, just right click it and select the",
"rock option. This will tell you the type of ore you can mine from it.", "'prospect rock' option. This will tell you the type of ore you can",
"Try it now on one of the rocks indicated.", " mine from it. Try it now on one of the rocks indicated.",
"" ""
) )
) )
@@ -549,8 +588,8 @@ object TutorialStage {
player.dialogueInterpreter.sendPlaneMessageWithBlueTitle( player.dialogueInterpreter.sendPlaneMessageWithBlueTitle(
"Please wait.", "Please wait.",
"", "",
"Your character is now attempting to prospect the rock. This should", "Your character is now attempting to prospect the rock. This",
"Only take a few seconds.", "should only take a few seconds.",
"" ""
) )
) )
@@ -585,12 +624,12 @@ object TutorialStage {
registerHintIcon(player, Repository.findNPC(948)!!) registerHintIcon(player, Repository.findNPC(948)!!)
Component.setUnclosable( Component.setUnclosable(
player, player,
player.dialogueInterpreter.sendScrollMessageWithBlueTitle( player.dialogueInterpreter.sendPlaneMessageWithBlueTitle(
"It's copper.", "It's copper.",
"",
"Talk to the Mining Instructor to find out about these types of", "Talk to the Mining Instructor to find out about these types of",
"ore and how you can mine them.", "ore and how you can mine them.",
"He'll even give you the required tools.", "He'll even give you the required tools.",
""
) )
) )
} }
@@ -603,10 +642,10 @@ object TutorialStage {
player, player,
player.dialogueInterpreter.sendPlaneMessageWithBlueTitle( player.dialogueInterpreter.sendPlaneMessageWithBlueTitle(
"Mining", "Mining",
"It's quite simple really. All you need to do is right click on the rock", "",
"and select 'mine'. You can only mine when you have a pickaxe. So", "It's quite simple really. All you need to do is right click on the",
"give it a try: first mine one tin ore.", "rock and select 'mine' You can only mine when you have a",
"" "pickaxe. So give it a try: first mine one tin ore.",
) )
) )
} }
@@ -633,10 +672,10 @@ object TutorialStage {
player, player,
player.dialogueInterpreter.sendPlaneMessageWithBlueTitle( player.dialogueInterpreter.sendPlaneMessageWithBlueTitle(
"Mining", "Mining",
"Now you have some tin ore you just need some copper ore, then", "",
"you'll have all you need to create a bronze bar. As you did before", "Now you have some tin ore you just need some copper ore,",
"right click on the copper rock and select 'mine'.", "then you'll have all you need to create a bronze bar. As you",
"" "did before right click on the copper rock and select 'mine'."
) )
) )
} }
@@ -649,15 +688,15 @@ object TutorialStage {
player, player,
player.dialogueInterpreter.sendPlaneMessageWithBlueTitle( player.dialogueInterpreter.sendPlaneMessageWithBlueTitle(
"Smelting", "Smelting",
"You should now have both some copper and tin ore. So let's smelt", "You should now have both some copper and tin ore. So let's",
"them to make a bronze bar. To do this right click on either tin or", "smelt them to make a bronze bar. To do this, right click on",
"copper ore and select use then left click on the furnance. Try it now.", "either tin or copper ore and select use then left click on the",
"" "furnace. Try it now."
) )
) )
} }
//Yes I know I skipped one. Blegh. //39 -> {}
40 -> { 40 -> {
hideTabs(player, login) hideTabs(player, login)
@@ -699,8 +738,8 @@ object TutorialStage {
player.dialogueInterpreter.sendPlaneMessageWithBlueTitle( player.dialogueInterpreter.sendPlaneMessageWithBlueTitle(
"Smithing a dagger.", "Smithing a dagger.",
"Now you have the Smithing menu open, you will see a list of all", "Now you have the Smithing menu open, you will see a list of all",
"the things you can make. Only the dagger can be made at this time; ", "the things you can make. Only the dagger can be made at your",
"this is shown by the white text under it. You'll need", "skill level; this is shown by the white text under it. You'll need",
"to select the dagger to continue." "to select the dagger to continue."
) )
) )
@@ -708,15 +747,15 @@ object TutorialStage {
43 -> { 43 -> {
hideTabs(player, login) hideTabs(player, login)
registerHintIcon(player, Location.create(3094, 9502), 75) registerHintIcon(player, Location.create(3095, 9502), 75)
Component.setUnclosable( Component.setUnclosable(
player, player,
player.dialogueInterpreter.sendPlaneMessageWithBlueTitle( player.dialogueInterpreter.sendPlaneMessageWithBlueTitle(
"You've finished in this area.", "You've finished in this area.",
"",
"So let's move on. Go through the gates shown by the arrow.", "So let's move on. Go through the gates shown by the arrow.",
"Remember, you may need to move the camera to see your", "Remember, you may need to move the camera to see your",
"surroundings.", "surroundings. Speak to the guide for a recap at any time.",
""
) )
) )
} }
@@ -728,10 +767,10 @@ object TutorialStage {
Component.setUnclosable( Component.setUnclosable(
player, player,
player.dialogueInterpreter.sendPlaneMessageWithBlueTitle( player.dialogueInterpreter.sendPlaneMessageWithBlueTitle(
"Combat.", "Combat",
"In this area you will find out about combat, both melee and",
"ranged. Speak to the guide and he'll tell you about it.",
"", "",
"In this area you will find out about combat with swords and",
"bows. Speak to the guide and he will tell you all about it.",
"" ""
) )
) )
@@ -740,18 +779,33 @@ object TutorialStage {
45 -> { 45 -> {
hideTabs(player, login) hideTabs(player, login)
removeHintIcon(player) removeHintIcon(player)
player.interfaceManager.openTab(Component(Components.WORNITEMS_387)) runTask(player, 10) {
setVarbit(player, 1021, 0, 5)
Component.setUnclosable( Component.setUnclosable(
player, player,
player.dialogueInterpreter.sendPlaneMessageWithBlueTitle( player.dialogueInterpreter.sendPlaneMessageWithBlueTitle(
"Wielding weapons.", "Wielding weapons",
"", "",
"You now have access to a new interface. Click on the flashing", "You now have access to a new interface. Click on the flashing",
"icon of a man, the one to the right of your backpack icon.", "icon of a man, the one to the right of your backpack icon.",
"" ""
) )
) )
}.also {
hideTabs(player, login)
removeHintIcon(player)
player.interfaceManager.openTab(Component(Components.WORNITEMS_387))
setVarbit(player, 1021, 0, 5)
Component.setUnclosable(
player,
player.dialogueInterpreter.sendPlaneMessageWithBlueTitle(
"Worn interface",
"You can see what items you are wearing in the worn equipment",
"to the left of the screen, with their combined statistics on the",
"right. Let's add something. Left click your dagger to 'wield' it.",
""
)
)
}
} }
46 -> { 46 -> {
@@ -760,10 +814,10 @@ object TutorialStage {
Component.setUnclosable( Component.setUnclosable(
player, player,
player.dialogueInterpreter.sendPlaneMessageWithBlueTitle( player.dialogueInterpreter.sendPlaneMessageWithBlueTitle(
"This is your worn inventory.", "This is your worn equipment.",
"From here you can see what items you have equipped. Let's", "From here you can see what items you have equipped. You will",
"get one of those slots filled, go back to your inventory and", "notice the button 'Show Equipment Stats'. Click on this now to",
"right click your dagger, select wield from the menu.", "display the details of what you have equipped.",
"" ""
) )
) )
@@ -776,10 +830,11 @@ object TutorialStage {
player, player,
player.dialogueInterpreter.sendScrollMessageWithBlueTitle( player.dialogueInterpreter.sendScrollMessageWithBlueTitle(
"You're now holding your dagger.", "You're now holding your dagger.",
"Clothes, armor, weapons and many other items are equipped", "Clothes, armour, weapons and many other items are equipped",
"like this. You can unequip items by clicking on the item in the", "like this. You can unequip items by clicking on the item in the",
"worn inventory.", "worn equipment. You can close this window by clicking on the",
"Speak to the Combat Instructor to continue." "small 'x' in the top-right hand corner. Speak to the Combat",
"Instructor."
) )
) )
} }
@@ -860,7 +915,7 @@ object TutorialStage {
Component.setUnclosable( Component.setUnclosable(
player, player,
player.dialogueInterpreter.sendPlaneMessageWithBlueTitle( player.dialogueInterpreter.sendPlaneMessageWithBlueTitle(
"Sit back and watch", "Sit back and watch.",
"While you are fighting you will see a bar over your head. The", "While you are fighting you will see a bar over your head. The",
"bar shows how much health you have left. Your opponent will", "bar shows how much health you have left. Your opponent will",
"have one too. You will continue to attack the rat until it's dead", "have one too. You will continue to attack the rat until it's dead",
@@ -876,9 +931,9 @@ object TutorialStage {
player, player,
player.dialogueInterpreter.sendPlaneMessageWithBlueTitle( player.dialogueInterpreter.sendPlaneMessageWithBlueTitle(
"Well done, you've made your first kill!", "Well done, you've made your first kill!",
"",
"Pass through the gate and talk to the Combat Instructor; he", "Pass through the gate and talk to the Combat Instructor; he",
"will give you your next task.", "will give you your next task.",
"",
"" ""
) )
) )
@@ -889,10 +944,10 @@ object TutorialStage {
Component.setUnclosable( Component.setUnclosable(
player, player,
player.dialogueInterpreter.sendPlaneMessageWithBlueTitle( player.dialogueInterpreter.sendPlaneMessageWithBlueTitle(
"Rat ranging.", "Rat ranging",
"Now you have a bow and some arrows. Before you can use", "Now you have a bow and some arrows. Before you can use",
"them you'll need to equip them. Once equipped with the", "them you'll need to equip them. Once equipped with the",
"ranging gear try killing another rat. Remember, to attack: right", "ranging gear try killing another rat. Remember: to attack, right",
"click on the monster and select attack." "click on the monster and select attack."
) )
) )
@@ -906,10 +961,10 @@ object TutorialStage {
player, player,
player.dialogueInterpreter.sendPlaneMessageWithBlueTitle( player.dialogueInterpreter.sendPlaneMessageWithBlueTitle(
"Moving on.", "Moving on.",
"You have completed the tasks here, to move on click on the", "You have completed the tasks here. To move on, click on the",
"ladder shown.", "ladder shown. If you need to go over any of what you learnt",
"", "here, just talk to the Combat Instructor and he'll tell you what",
"" "he can."
) )
) )
} }
@@ -925,7 +980,7 @@ object TutorialStage {
"Follow the path and you will come to the front of a building.", "Follow the path and you will come to the front of a building.",
"This is the 'Bank of " + settings!!.name + "' where you can store all your", "This is the 'Bank of " + settings!!.name + "' where you can store all your",
"most valued items. To open your bank box just right click on an", "most valued items. To open your bank box just right click on an",
"open booth indicated and select use." "open booth indicated and select 'use'."
) )
) )
} }
@@ -940,7 +995,7 @@ object TutorialStage {
"This is your bank box.", "This is your bank box.",
"You can store stuff here for safekeeping. If you die, anything", "You can store stuff here for safekeeping. If you die, anything",
"in your bank will be saved. To deposit something, right click it", "in your bank will be saved. To deposit something, right click it",
"and select 'store'. One you've had a good look, close the", "and select 'Deposit-1'. Once you've had a good look, close the",
"window and move on through the door indicated." "window and move on through the door indicated."
) )
) )
@@ -953,10 +1008,10 @@ object TutorialStage {
Component.setUnclosable( Component.setUnclosable(
player, player,
player.dialogueInterpreter.sendPlaneMessageWithBlueTitle( player.dialogueInterpreter.sendPlaneMessageWithBlueTitle(
"Financial advice.", "Financial advice",
"The guide here will tell you about making cash. Just click on",
"him to hear what he's got to say.",
"", "",
"The guide here will tell you all about making cash. Just click on",
"him to hear what he's got to say.",
"" ""
) )
) )
@@ -970,8 +1025,8 @@ object TutorialStage {
player, player,
player.dialogueInterpreter.sendPlaneMessageWithBlueTitle( player.dialogueInterpreter.sendPlaneMessageWithBlueTitle(
"", "",
"Continue through the next door.",
"", "",
"Continue through the next door.",
"", "",
"" ""
) )
@@ -987,7 +1042,7 @@ object TutorialStage {
player.dialogueInterpreter.sendPlaneMessageWithBlueTitle( player.dialogueInterpreter.sendPlaneMessageWithBlueTitle(
"Prayer", "Prayer",
"Follow the path to the chapel and enter it.", "Follow the path to the chapel and enter it.",
"Once inside talk to the monk. He'll tell you all about the prayer", "Once inside talk to the monk. He'll tell you all about the Prayer",
"skill.", "skill.",
"" ""
) )
@@ -1002,9 +1057,9 @@ object TutorialStage {
Component.setUnclosable( Component.setUnclosable(
player, player,
player.dialogueInterpreter.sendPlaneMessageWithBlueTitle( player.dialogueInterpreter.sendPlaneMessageWithBlueTitle(
"Your Prayer menu", "Your Prayer List",
"Click on the flashing icon to open the Prayer menu.",
"", "",
"Click on the flashing icon to open the Prayer List.",
"", "",
"" ""
) )
@@ -1018,9 +1073,9 @@ object TutorialStage {
player, player,
player.dialogueInterpreter.sendPlaneMessageWithBlueTitle( player.dialogueInterpreter.sendPlaneMessageWithBlueTitle(
"", "",
"Your Prayer menu.", "Your Prayer List",
"Talk with Brother Brace and he'll tell you all about prayer.",
"", "",
"Talk with Brother Brace and he'll tell you all about prayers.",
"" ""
) )
) )
@@ -1035,9 +1090,9 @@ object TutorialStage {
player, player,
player.dialogueInterpreter.sendPlaneMessageWithBlueTitle( player.dialogueInterpreter.sendPlaneMessageWithBlueTitle(
"", "",
"Friends list.", "Friends list",
"You should now see another new icon. Click on the flashing", "You should now see another new icon. Click on the flashing",
"smiling face to open your friend list.", "smiling face to open your Friend List.",
"" ""
) )
) )
@@ -1051,10 +1106,10 @@ object TutorialStage {
Component.setUnclosable( Component.setUnclosable(
player, player,
player.dialogueInterpreter.sendPlaneMessageWithBlueTitle( player.dialogueInterpreter.sendPlaneMessageWithBlueTitle(
"This is your friends list.", "This is your Friends List.",
"This will be explained by Brother Brace shortly, but first click",
"the other flashing icon next to the friends list one.",
"", "",
"This will be explained by Brother Brace shortly, but first click",
"on the other flashing face in the interface.",
"" ""
) )
) )
@@ -1067,8 +1122,8 @@ object TutorialStage {
Component.setUnclosable( Component.setUnclosable(
player, player,
player.dialogueInterpreter.sendPlaneMessageWithBlueTitle( player.dialogueInterpreter.sendPlaneMessageWithBlueTitle(
"This is your ignore list.", "This is your Ignore List.",
"The two lists, friends and ignore, can be very helpful for", "The two lists, Friends and Ignore - can be very helpful for",
"keeping track of when your friends are online or for blocking", "keeping track of when your friends are online or for blocking",
"messages from people you simply don't like. Speak with", "messages from people you simply don't like. Speak with",
"Brother Brace and he will tell you more." "Brother Brace and he will tell you more."
@@ -1083,10 +1138,10 @@ object TutorialStage {
Component.setUnclosable( Component.setUnclosable(
player, player,
player.dialogueInterpreter.sendPlaneMessageWithBlueTitle( player.dialogueInterpreter.sendPlaneMessageWithBlueTitle(
"",
"Your final instructor!", "Your final instructor!",
"You're almost finished on tutorial island. Pass through the", "You're almost finished on tutorial island. Pass through the",
"door to find the path leading to your last instructor.", "door to find the path leading to your final instructor.",
"",
"" ""
) )
) )
@@ -1100,7 +1155,7 @@ object TutorialStage {
player, player,
player.dialogueInterpreter.sendPlaneMessageWithBlueTitle( player.dialogueInterpreter.sendPlaneMessageWithBlueTitle(
"Your final instructor!", "Your final instructor!",
"Just follow the path to the wizards house, where you will be", "Just follow the path to the Wizard's house, where you will be",
"shown how to cast spells. Just talk with the mage indicated to", "shown how to cast spells. Just talk with the mage indicated to",
"find out more.", "find out more.",
"" ""
@@ -1116,10 +1171,10 @@ object TutorialStage {
Component.setUnclosable( Component.setUnclosable(
player, player,
player.dialogueInterpreter.sendPlaneMessageWithBlueTitle( player.dialogueInterpreter.sendPlaneMessageWithBlueTitle(
"Open up your final menu.", "Open up your final tab.",
"Open up the Magic Spellbook tab by clicking on the flashing spellbook",
"icon next to the Prayer List tab you just learned about.",
"", "",
"Open up the Magic Spellbook tab by clicking on the flashing",
"icon next to the Prayer List tab you just learned about.",
"" ""
) )
) )
@@ -1146,11 +1201,11 @@ object TutorialStage {
player, player,
player.dialogueInterpreter.sendScrollMessageWithBlueTitle( player.dialogueInterpreter.sendScrollMessageWithBlueTitle(
"Cast Wind Strike at a chicken.", "Cast Wind Strike at a chicken.",
"Now you have the runes you should see the Wind Strike icon", "Now you have the runes you should see the Wind Strike icon at the",
"at the top-left of your spellbook, second from the left. Walk over to", "top-left of your spellbook, second in from the left. Walk over",
"the caged chickens, click the Wind Strike icon and then ", "to the caged chickens, click the Wind Strike icon and then",
"select one of the chickens to cast it on. It may take", "select one of the chickens to cast it on. It may take several",
"several tries." "tries."
) )
) )
} }
@@ -1163,9 +1218,9 @@ object TutorialStage {
player, player,
player.dialogueInterpreter.sendPlaneMessageWithBlueTitle( player.dialogueInterpreter.sendPlaneMessageWithBlueTitle(
"You have almost completed the tutorial!", "You have almost completed the tutorial!",
"All you need to do now is teleport to the mainland. Just speak with", "",
"Terrova and he'll tell you how to do that.", "All you need to do now is teleport to the mainland. Just speak",
"You have almost completed the tutorial!", "with Terrova and he'll tell you how to do that.",
"" ""
) )
) )