Robes working and scroll.

This commit is contained in:
Oven Bread 2025-02-02 01:33:13 -08:00
parent 1b972b494d
commit ce27d28572
4 changed files with 147 additions and 28 deletions

View file

@ -42,33 +42,37 @@ class AwusahDialogueFile : DialogueLabeller() {
npc("Well we've not fallen on the best of times here, but there are a few shops to look around and we have someone selling a marvelous new invention called a choc ice..")
npc("Oh, and there's the old temple if you're interested in a bit of history.")
label("menaphos")
player("I'm passing through on my way to Menaphos.")
npc("Oh you don't want to go there. I hear rumours of plagues and the like.")
player("Thanks for the warning, but I might go and investigate anyway.")
label("menaphos") {
player("I'm passing through on my way to Menaphos.")
npc("Oh you don't want to go there. I hear rumours of plagues and the like.")
player("Thanks for the warning, but I might go and investigate anyway.")
}
label("searchingquest")
npc("Hmm, well that could be quite fortuitous. We really", "could do with some help here. Our town seems to have", "come under a curse, and we are desperate to get it", "removed.")
player(ChatAnim.THINKING, "A curse? What sort of curse?")
npc(ChatAnim.SAD, "Well first of all our fountain, which has served us for", "many years, suddenly dried up. We then started", "transporting water from the river, but what we carried", "would always have completely dried up by the time we")
npc(ChatAnim.SAD, "got it back to the village.")
goto("moredetails")
label("searchingquest") {
npc("Hmm, well that could be quite fortuitous. We really", "could do with some help here. Our town seems to have", "come under a curse, and we are desperate to get it", "removed.")
player(ChatAnim.THINKING, "A curse? What sort of curse?")
npc(ChatAnim.SAD, "Well first of all our fountain, which has served us for", "many years, suddenly dried up. We then started", "transporting water from the river, but what we carried", "would always have completely dried up by the time we")
npc(ChatAnim.SAD, "got it back to the village.")
goto("moredetails")
}
label("moredetails")
options(
DialogueOption("whatwater", "So what do you do for water now?", expression = ChatAnim.THINKING),
DialogueOption("whycursed", "Any idea how you got this curse?", expression = ChatAnim.THINKING),
DialogueOption("lolnop", "I'm sorry to hear of your plight, but I must be going."),
)
label("moredetails") {
options(
DialogueOption("whatwater", "So what do you do for water now?", expression = ChatAnim.THINKING),
DialogueOption("whycursed", "Any idea how you got this curse?", expression = ChatAnim.THINKING),
DialogueOption("lolnop", "I'm sorry to hear of your plight, but I must be going."),
)
}
label("whatwater")
npc(ChatAnim.SAD, "Well it's tough. There is a guy who calls himself Ali the", "carter down in the market. He's from Pollnivneach, so", "the curse doesn't seem to have affected him. He's got a", "cart full of water which he's selling to the people here.")
npc(ChatAnim.SAD, "Unfortunately in typical Pollnivneach style he's taking", "the opportunity to sell the water at outrageous prices", "because he knows we are desperate. Oh and Rokuh has", "developed something quite remarkable, called a choc ice")
npc(ChatAnim.SAD, "which is helping people stay cool.")
options(
DialogueOption("whycursed", "Any idea how you got this curse?", expression = ChatAnim.THINKING),
DialogueOption("lolnop", "I'm sorry to hear of your plight, but I must be going."),
)
label("whatwater") {
npc(ChatAnim.SAD, "Well it's tough. There is a guy who calls himself Ali the", "carter down in the market. He's from Pollnivneach, so", "the curse doesn't seem to have affected him. He's got a", "cart full of water which he's selling to the people here.")
npc(ChatAnim.SAD, "Unfortunately in typical Pollnivneach style he's taking", "the opportunity to sell the water at outrageous prices", "because he knows we are desperate. Oh and Rokuh has", "developed something quite remarkable, called a choc ice")
npc(ChatAnim.SAD, "which is helping people stay cool.")
options(
DialogueOption("whycursed", "Any idea how you got this curse?", expression = ChatAnim.THINKING),
DialogueOption("lolnop", "I'm sorry to hear of your plight, but I must be going."),
)
}
label("whycursed")
npc("Well we think it was because we were negligent in our", "duty to protect a priest of Saradomin. He came to us a", "few weeks ago from the north and we welcomed him", "into our town. He taught us much of the wisdom of")

View file

@ -30,7 +30,7 @@ class GhaslorDialogueFile : DialogueLabeller() {
loadLabel(player, "spiritsoftheelidqueststage" + getQuestStage(player, SpiritsOfTheElid.questName))
}
label("spiritsoftheelidqueststage10")
label("spiritsoftheelidqueststage0")
player("Hello, I'm an adventurer in search of err.. adventure.")
npc("Well I'm Ghaslor, the oldest person in this here town and keeper of some of the lores and histories of our village. If you're new around here I'd go talk to the mayor.")
player("Thanks, I might go and look him up then.")
@ -42,11 +42,11 @@ class GhaslorDialogueFile : DialogueLabeller() {
DialogueOption("howarethings", "How are things?"),
)
label("How are things?")
label("howarethings")
npc("Lousy, young people have no respect for their elders, there's too many confusing newfangled magic carpets and snake charmers around these days and now we don't even have any water.")
player("Well I hope things pick up for you.")
label("causeofwater")
label("causeofcurse")
npc("Oh that's something which no one but the gods and the river spirits seem to know.")
options(
DialogueOption("whycursed", "River spirits, what are they?", expression = ChatAnim.THINKING),

View file

@ -67,6 +67,7 @@ class SpiritsOfTheElid : Quest("Spirits of the Elid", 116, 115, 2,616, 1444, 0,
line(player, "to what can be done about this.", line++, false)
line++
// Following sections appear as you do it. No line spaces.
// https://www.youtube.com/watch?v=P1l03jKSZGw
if (getAttribute(player, attributeObtainedBallad, false)) {
line(player, "Ghastor the village elder gave me !!The Ballad of Jaressh??", line++, false)
line(player, "which provides some useful information about a previous", line++, false)

View file

@ -1,14 +1,128 @@
package content.region.desert.quest.spiritsoftheelid
import core.api.*
import core.game.global.action.DoorActionHandler
import core.game.interaction.IntType
import core.game.interaction.InteractionListener
import org.rs09.consts.Items
import org.rs09.consts.Scenery
class SpiritsOfTheElidListeners : InteractionListener {
override fun defineListeners() {
on(Items.BALLAD_6793, ITEM, "read") { player, node ->
openInterface(player, 116)
player.packetDispatch.sendString("The Ballad of Jareesh",116, 2)
player.packetDispatch.sendString("Clad all in the robes for She<br>" +
"we travelled north expediently.<br>" +
"<br>" +
"Go beseech the guardians we were sent,<br>" +
"so to the river's source we went.<br>" +
"<br>" +
"Through the cave we had to travel.<br>" +
"There was mystery to unravel.<br>" +
"<br>" +
"We came upon a great stone door<br>" +
"but our priestess knew the score.<br>" +
"<br>" +
"She used the great ancestral key.<br>" +
"We passed through very easily.<br>" +
"<br>" +
"Three great men all hewn of rock,<br>" +
"three small chambers they did block.<br>" +
"<br>" +
"The first all made of rock quite black,<br>" +
"our fighting men went to attack.<br>" +
"<br>" +
"They went with arrow, blade and spell,<br>" +
"but the man they could not fell<br>" +
"<br>" +
"Many men did fall that day,<br>" +
"while others turned and ran away<br>" +
"<br>" +
"I had little hope at all,<br>" +
"as I watched my kinsmen fall.<br>" +
"<br>" +
"My warhammer I boldy heft<br>" +
"and struck a blow which while was deft,<br>" +
"<br>" +
"should give scant harm to one so strong<br>" +
"or so I thought, nay I was wrong.<br>" +
"<br>" +
"The rockman fell down with a crash,<br>" +
"which sent up clouds of dust and ash.<br>" +
"<br>" +
"Just myself left and alas,<br>" +
"two more rockmen left to pass.<br>" +
"<br>" +
"Still buoyed on by my first success<br>" +
"onwards bravely I did press.<br>" +
"<br>" +
"Next man was of rock hued grey<br>" +
"and this one next I planned to slay<br>" +
"<br>" +
"Crushing blows I rained on him,<br>" +
"but things were looking very grim<br>" +
"<br>" +
"Not a scratch could I make<br>" +
"Anon my limbs began to ache.<br>" +
"<br>" +
"The rockman gave a mighty roar<br>" +
"so fierce I made fast for the door.<br>" +
"<br>" +
"How to beat that second man<br>" +
"to this day I have no plan.<br>" +
"<br>" +
"My hammer never left a dent.<br>" +
"I never reached whence I was sent.",
116,
5)
return@on true
}
// This cupboard has both.
on(Scenery.CUPBOARD_10385, SCENERY, "search") { player, node ->
if (getQuestStage(player, SpiritsOfTheElid.questName) >= 1) {
sendItemDialogue(player, Items.TORN_ROBE_6788 ,"You find a torn robe top.")
addItemOrDrop(player, Items.TORN_ROBE_6788)
sendItemDialogue(player, Items.TORN_ROBE_6789 ,"You find some torn robe bottoms.")
addItemOrDrop(player, Items.TORN_ROBE_6789)
}
return@on true
}
on(Items.TORN_ROBE_6788, ITEM, "wear") { player, node ->
sendDialogue(player,"You need some Thread to repair the robe.")
return@on true
}
on(Items.TORN_ROBE_6789, ITEM, "wear") { player, node ->
sendDialogue(player, "You need some Thread to repair the robe.")
return@on true
}
onUseWith(IntType.ITEM, Items.TORN_ROBE_6788, Items.NEEDLE_1733) { player, used, with ->
if(removeItem(player, used.asItem())) {
sendItemDialogue(player, Items.ROBE_OF_ELIDINIS_6786 ,"You mend the robes.")
return@onUseWith addItem(player, Items.ROBE_OF_ELIDINIS_6786)
}
return@onUseWith false
}
onUseWith(IntType.ITEM, Items.TORN_ROBE_6789, Items.NEEDLE_1733) { player, used, with ->
if(removeItem(player, used.asItem())) {
sendItemDialogue(player, Items.ROBE_OF_ELIDINIS_6787 ,"You mend the robes.")
return@onUseWith addItem(player, Items.ROBE_OF_ELIDINIS_6787)
}
return@onUseWith false
}
on(Scenery.DOOR_10431, SCENERY, "open") { player, node ->
// Door to Genie
// http://youtu.be/SWjuatbJvxI
sendDialogueLines(player, "There seems to be a strange magical force preventing you from", "opening the door.")
if (getQuestStage(player, SpiritsOfTheElid.questName) >= 4) {
DoorActionHandler.handleAutowalkDoor(player, node as core.game.node.scenery.Scenery)
} else {
sendDialogueLines(player, "There seems to be a strange magical force preventing you from", "opening the door.")
}
return@on true
}
}