Implemented The Grand Tree quest

This commit is contained in:
downthecrop
2023-04-14 01:27:54 +00:00
committed by Ryan
parent 034cc75a61
commit fed72384ba
18 changed files with 2000 additions and 12 deletions
@@ -0,0 +1,164 @@
package content.region.kandarin.seers.quest.elementalworkshop
import core.api.setQuestStage
import core.game.dialogue.DialoguePlugin
import core.game.dialogue.book.Book
import core.game.dialogue.book.BookLine
import core.game.dialogue.book.Page
import core.game.dialogue.book.PageSet
import core.game.node.entity.player.Player
import core.plugin.Initializable
import org.rs09.consts.Items
/**
* Gloughs Journal book handler for The Grand Tree quest
*
* @author crop & szu
*/
@Initializable
class GloughsJournal : Book {
constructor(player: Player?) : super(player, "Glough's Journal", Items.GLOUGHS_JOURNAL_785, *arrayOf(
PageSet(
Page(
BookLine("<col=FF2D00>The migration failed!", 55),
BookLine("After spending half", 56),
BookLine("a century hiding", 57),
BookLine("underground you", 58),
BookLine("you would think", 59),
BookLine("that the great", 60),
BookLine("migration would have", 61),
BookLine("improved life on", 62),
BookLine("Gielinor for tree gnomes.", 63),
BookLine("However, rather", 64),
BookLine("than the great liberation", 65),
),
Page(
BookLine("promised to us by", 65),
BookLine("King Healthorg at the", 66),
BookLine("end of the last age,", 67),
BookLine("we have been forced", 68),
BookLine("to live in hiding,", 69),
BookLine("up trees or in the", 70),
BookLine("gnome maze, laughed", 71),
BookLine("at and mocked by man.", 72),
BookLine("Living in constant", 73),
BookLine("fear of human aggression", 74),
BookLine("we are in a no better", 75),
)
),
PageSet(
Page(
BookLine("we are in a no better", 55),
BookLine("situation now than", 56),
BookLine("when we lived", 57),
BookLine("in the caves!", 58),
BookLine("Change must come soon!", 59),
BookLine("<col=FF2D00>They must be stopped!", 60),
BookLine("Today I heard of three", 61),
BookLine("more gnomes slain", 62),
BookLine("by Khazard's human", 63),
BookLine("troops for fun,", 64),
BookLine("I can't control", 65),
),
Page(
BookLine("my anger!", 66),
BookLine("Humanity seems to", 67),
BookLine("have acquired a", 68),
BookLine("level of arrogance", 69),
BookLine("comparable to that", 70),
BookLine("of Zamorak, killing", 71),
BookLine("and pillaging at will!", 72),
BookLine("We are small and at", 73),
BookLine("heart not warriors", 74),
BookLine("but something must", 75),
)
),
PageSet(
Page(
BookLine("be done! We will", 55),
BookLine("pick up arms and", 56),
BookLine("go forth into the", 57),
BookLine("human world! We will", 58),
BookLine("defend ourselves and", 59),
BookLine("we will pursue justice", 60),
BookLine("for all gnomes who", 61),
BookLine("fell at the hands", 62),
BookLine("of humans!", 63),
BookLine("<col=FF2D00>Gaining support.", 64),
BookLine("", 65),
),
Page(
BookLine("Some of the local", 66),
BookLine("gnomes seem strangely", 67),
BookLine("deluded about humans,", 68),
BookLine("many actually believe", 69),
BookLine("that humans are not", 70),
BookLine("all naturally evil", 71),
BookLine("but instead vary", 72),
BookLine("from person to person.", 73),
BookLine("This sort of talk", 74),
BookLine("could be the end", 75),
)
),
PageSet(
Page(
BookLine("for the tree gnomes", 55),
BookLine("and I must continue", 56),
BookLine("to convince my fellow", 57),
BookLine("gnome folk the cold", 58),
BookLine("truth about these", 59),
BookLine("human creatures!", 60),
BookLine("How they will not", 61),
BookLine("stop until all gnome", 62),
BookLine("life is destroyed!", 63),
BookLine("Unless we can ", 64),
BookLine("destroy them first!", 65),
)
)
)
) {}
constructor() {
/**
* empty.
*/
}
override fun finish() {
}
override fun display(set: Array<Page>) {
player.lock()
player.interfaceManager.open(getInterface())
for (i in 55..76) {
player.packetDispatch.sendString("", getInterface().id, i)
}
player.packetDispatch.sendString("", getInterface().id, 77)
player.packetDispatch.sendString("", getInterface().id, 78)
player.packetDispatch.sendString(getName(), getInterface().id, 6)
for (page in set) {
for (line in page.lines) {
player.packetDispatch.sendString(line.message, getInterface().id, line.child)
}
}
player.packetDispatch.sendInterfaceConfig(getInterface().id, 51, index < 1)
val lastPage = index == sets.size - 1
player.packetDispatch.sendInterfaceConfig(getInterface().id, 53, lastPage)
if (lastPage) {
finish()
}
player.unlock()
}
override fun newInstance(player: Player): DialoguePlugin {
return GloughsJournal(player)
}
override fun getIds(): IntArray {
// This is all handled in `BookreadOption.java` you need to manually
// register a new dialogue key for your file there.
return intArrayOf(49610762)
}
}