diff --git a/Server/src/main/content/region/kandarin/dialogue/AstronomyBook.kt b/Server/src/main/content/region/kandarin/dialogue/AstronomyBook.kt new file mode 100644 index 000000000..4c1a353e0 --- /dev/null +++ b/Server/src/main/content/region/kandarin/dialogue/AstronomyBook.kt @@ -0,0 +1,131 @@ +package content.region.kandarin.dialogue + +import content.global.handlers.iface.BookInterface +import content.global.handlers.iface.BookLine +import content.global.handlers.iface.Page +import content.global.handlers.iface.PageSet +import core.api.setAttribute +import core.game.interaction.IntType +import core.game.interaction.InteractionListener +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.Items + +@Initializable +class AstronomyBook : InteractionListener { + companion object { + private val TITLE = "The tales of Scorpius" + private val CONTENTS = arrayOf( + PageSet( + Page( + BookLine("A History of Astronomy", 55), + BookLine("in 2009Scape.", 56), + BookLine("", 57), + BookLine("At the start of the 4th age,", 58), + BookLine("a learned man by the", 59), + BookLine("name of Scorpius, known well", 60), + BookLine("for his powers of vision and", 61), + BookLine("magic, sought communion with", 62), + BookLine("the gods of the world.", 63), + BookLine("So many unanswered questions", 64), + BookLine("had he that devoted his entire", 65), + ), + Page( + BookLine("life to this cause.", 66), + BookLine("After many years of study,", 67), + BookLine("seeking knowledge from the", 68), + BookLine("wise of that time, he developed", 69), + BookLine("a machine infused with", 70), + BookLine("magical power, infused with", 71), + BookLine("the ability to pierce", 72), + BookLine("into the heavens - a huge eye", 73), + BookLine("that gave the user", 74), + BookLine("incredible site, like never", 75), + BookLine("seen before.", 76), + ) + ), + PageSet( + Page( + BookLine("As time passed, Scorpius", 55), + BookLine("grew adept at using his", 56), + BookLine("specialized skills, and followed", 57), + BookLine("the movements of stars", 58), + BookLine("in 2009Scape, which are", 59), + BookLine("mapped and named, and still", 60), + BookLine("used to this day.", 61), + BookLine("", 62), + BookLine("Before long, Scorpius", 63), + BookLine("used his knowledge", 64), + BookLine("for predicting the future,", 65), + ), + Page( + BookLine("and, in turn, he called upon", 66), + BookLine("the dark knowledge of", 67), + BookLine("Zamorakian worshipers", 68), + BookLine("to further his cause. Living", 69), + BookLine("underground, the followers", 70), + BookLine("of the dark god remained", 71), + BookLine("until the civilization of", 72), + BookLine("Ardougne grew in strength", 73), + BookLine("and control.", 74), + ) + ), + PageSet( + Page( + BookLine("The kings of that time", 55), + BookLine("worked to banish the", 56), + BookLine("Zamorakian followers in", 57), + BookLine("the area, hiding all", 58), + BookLine("reference to Scorpius's", 59), + BookLine("invention, due to", 60), + BookLine("its 'evil nature'.", 61), + BookLine("", 62), + BookLine("Years later, when the", 63), + BookLine("minds of the kings lent", 64), + BookLine("more towards the research", 65), + ), + Page( + BookLine("of the unknown, the plans", 66), + BookLine("of Scorpius were uncovered", 67), + BookLine("and the heavenly eye", 68), + BookLine("constructed again. Since then,", 69), + BookLine("many have studied the ways of", 70), + BookLine("the astronomer, Scorpius", 71), + BookLine("and in his memory a grave", 72), + BookLine("was constructed near the", 73), + BookLine("Observatory. Some claim his", 74), + BookLine("ghost still wanders nearby,", 75), + BookLine("in torment as he seeks", 76), + ) + ), + PageSet( + Page( + BookLine("the secrets of the heavens", 55), + BookLine("that can never be solved.", 56), + BookLine("Tales tell that he will", 57), + BookLine("grant those adept in the", 58), + BookLine("arts of the astronomer a", 59), + BookLine("blessing of unusual power.", 60), + BookLine("", 61), + BookLine("Here ends the tale of", 62), + BookLine("how astronomy entered", 63), + BookLine("the known world.", 64), + ) + ), + ) + } + + private fun display(player: Player, pageNum: Int, buttonID: Int): Boolean { + BookInterface.pageSetup(player, BookInterface.FANCY_BOOK_3_49, TITLE, CONTENTS) + return true + } + + override fun defineListeners() { + on(Items.ASTRONOMY_BOOK_600, IntType.ITEM, "read") { player, _ -> + setAttribute(player, "bookInterfaceCallback", ::display) + setAttribute(player, "bookInterfaceCurrentPage", 0) + display(player, 0, 0) + return@on true + } + } +} \ No newline at end of file diff --git a/Server/src/main/content/region/kandarin/dialogue/BindingBook.kt b/Server/src/main/content/region/kandarin/dialogue/BindingBook.kt new file mode 100644 index 000000000..a7af347ca --- /dev/null +++ b/Server/src/main/content/region/kandarin/dialogue/BindingBook.kt @@ -0,0 +1,151 @@ +package content.region.kandarin.dialogue + +import content.global.handlers.iface.BookInterface +import content.global.handlers.iface.BookLine +import content.global.handlers.iface.Page +import content.global.handlers.iface.PageSet +import core.api.setAttribute +import core.game.interaction.IntType +import core.game.interaction.InteractionListener +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.Items + +@Initializable +class BindingBook : InteractionListener { + companion object { + private val TITLE = "Book of Binding" + private val CONTENTS = arrayOf( + PageSet( + Page( + BookLine(" Book of Binding:", 60), + BookLine(" A treatise on Demons", 61), + ), + Page( + BookLine("", 67), + BookLine(" -- Indexo --", 68), + BookLine(" Arcana: I", 71), + BookLine(" Instructo: II", 72), + BookLine(" Defeati: III", 73), + BookLine(" Enchanto: IIII", 74), + ) + ), + PageSet( + Page( + BookLine("Arcana I: Use holy water to", 55), + BookLine("determine possession. Slight", 56), + BookLine("appearance changes may be", 57), + BookLine("perceived when doused.", 58), + BookLine("", 59), + BookLine("Legendary Silverlight will help", 60), + BookLine("to defeat any demon by", 61), + BookLine("weakening it.", 62), + ), + Page( + BookLine("Arcana II: Be wary of any", 66), + BookLine("demon, it may have special", 67), + BookLine("forms of attack.", 68), + BookLine("", 69), + BookLine("Use an Octagram of fire", 70), + BookLine("to confine unearthly", 71), + BookLine("creatures of the underworld", 72), + BookLine("- the perfect geometry", 73), + BookLine("confuses them.", 74), + BookLine("", 75), + BookLine("Eximus", 76), + ) + ), + PageSet( + Page( + BookLine("Instructo: Creation of holy", 55), + BookLine("water must be undertaken", 56), + BookLine("with determination and urgency.", 57), + BookLine("", 58), + BookLine("Take to yourself empty vials", 59), + BookLine("free of all liquids.", 60), + BookLine("", 61), + BookLine("Read warily the enchantment", 62), + BookLine("contained here within in order", 63), + BookLine("to magick the vial", 64), + ), + Page( + BookLine("for the holding of holy or", 66), + BookLine("sacred water.", 67), + BookLine("", 68), + BookLine("Take utmost care as you", 69), + BookLine("enchant them. With great care", 70), + BookLine("and precision place the sacred", 71), + BookLine("water into the magicked vial", 73), + BookLine("and stopper it.", 74), + BookLine("", 75), + BookLine("Eximus", 76), + ) + ), + PageSet( + Page( + BookLine("Defeati... Ye dreaded", 55), + BookLine("demon will be of unholy", 56), + BookLine("power and abilities.", 57), + BookLine("", 58), + BookLine("Present thyself before", 59), + BookLine("the possessed with good", 60), + BookLine("intent and ready manner.", 61), + BookLine("", 62), + BookLine("With least obstruction", 63), + BookLine("and utmost solemnity hold", 64), + BookLine("open the pages of this", 65), + ), + Page( + BookLine("great tome in order that", 66), + BookLine("the goodlight falls upon", 67), + BookLine("the victim completely.", 68), + BookLine("Be thee prepared in every", 69), + BookLine("capacity, for the demon's", 70), + BookLine("tricks and wiles will outwit", 71), + BookLine("the unready man. Attack with", 72), + BookLine("vigour and zest if thee hopes", 73), + BookLine("to see another day.", 74), + BookLine("", 75), + BookLine("Eximus", 76), + ) + ), + PageSet( + Page( + BookLine("Enchanto...", 55), + BookLine("", 56), + BookLine("Possessus valius emptious,", 57), + BookLine("projectus spellicus avoir valius", 58), + BookLine("magicus.", 59), + BookLine("", 60), + BookLine("Castus enchant avoir createur", 61), + BookLine("valius magicus holious avour", 62), + BookLine("defeati Demonicus Absolutus.", 63), + BookLine("", 64), + BookLine("Demonicus Absolutus.", 65), + ), + Page( + BookLine("Extralias projectus Magicus", 66), + BookLine("Holarius Attackanie demonicus", 67), + BookLine("Absolutus distancie airus", 68), + BookLine("throwus armiues.", 69), + BookLine("", 70), + BookLine("Eximus", 71), + ) + ), + ) + } + + private fun display(player: Player, pageNum: Int, buttonID: Int): Boolean { + BookInterface.pageSetup(player, BookInterface.FANCY_BOOK_3_49, TITLE, CONTENTS) + return true + } + + override fun defineListeners() { + on(Items.BINDING_BOOK_730, IntType.ITEM, "read") { player, _ -> + setAttribute(player, "bookInterfaceCallback", ::display) + setAttribute(player, "bookInterfaceCurrentPage", 0) + display(player, 0, 0) + return@on true + } + } +} \ No newline at end of file diff --git a/Server/src/main/content/region/kandarin/dialogue/GiannesCookBook.kt b/Server/src/main/content/region/kandarin/dialogue/GiannesCookBook.kt new file mode 100644 index 000000000..32e6ce64d --- /dev/null +++ b/Server/src/main/content/region/kandarin/dialogue/GiannesCookBook.kt @@ -0,0 +1,340 @@ +package content.region.kandarin.dialogue + +import content.global.handlers.iface.BookInterface +import content.global.handlers.iface.BookLine +import content.global.handlers.iface.Page +import content.global.handlers.iface.PageSet +import core.api.setAttribute +import core.game.interaction.IntType +import core.game.interaction.InteractionListener +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.Items + +@Initializable +class GiannesCookBook : InteractionListener { + companion object { + private val TITLE = "Gianne's cook book" + private val CONTENTS = arrayOf( + PageSet( + Page( + BookLine("Chocolate Bomb", 55), + BookLine("", 56), + BookLine("Knead a ball of Gianne", 57), + BookLine("dough into a gnomebowl mould.", 58), + BookLine("Bake this briefly. Decadently", 59), + BookLine("add four bars of chocolate", 60), + BookLine("to the bowl and top with", 61), + BookLine("one sprig of equa leaves.", 62), + BookLine("Bake the bowl in the oven", 63), + BookLine("to melt the chocolate.", 64), + BookLine("Then mix in two big dollops", 65), + ), + Page( + BookLine("of cream and finally sprinkle", 66), + BookLine("chocolate dust all over.", 67), + BookLine("Chocolate is a relatively", 68), + BookLine("recent cooking ingredient", 69), + BookLine("for gnomes, having been", 70), + BookLine("imported from human lands.", 71), + ) + ), + PageSet( + Page( + BookLine("Tangled Toad's Legs", 55), + BookLine("", 56), + BookLine("Shape a portion of fresh Gianne", 57), + BookLine("dough into a gnomebowl mould.", 58), + BookLine("Bake this until it is", 59), + BookLine("slightly springy.", 60), + BookLine("Add to the bowl...", 61), + BookLine("", 62), + BookLine("4 pairs of toad's legs", 63), + BookLine("2 portions of cheese", 64), + BookLine("2 sprigs of equa leaves", 65), + ), + Page( + BookLine("2 dashes of gnome spice", 66), + BookLine("1 bunch of dwellberries.", 67), + BookLine("", 68), + BookLine("Bake the dish in the oven", 69), + BookLine("once more prior to serving.", 70), + BookLine("Tangled Toads Legs was", 71), + BookLine("a special dish created", 72), + BookLine("by gnome chef Deelie to", 73), + BookLine("celebrate the first ", 74), + BookLine("Healthorg the Great Day.", 75), + ) + ), + PageSet( + Page( + BookLine("Worm Hole", 55), + BookLine("", 56), + BookLine("Starting with a gnomebowl", 57), + BookLine("mould, shape a portion of", 58), + BookLine("fresh Gianne dough into a", 59), + BookLine("rough bowl. Bake this", 60), + BookLine("until it is firm to the", 61), + BookLine("touch. Add to the bowl", 62), + BookLine("four king worms, two onions", 63), + BookLine("and a dash of gnome spices.", 64), + BookLine("Bake the bowl in the", 65), + ), + Page( + BookLine("oven once more.", 66), + BookLine("To finish the dish simply", 67), + BookLine("add a topping of equa leaves.", 68), + BookLine("Worms are specially flavoured", 69), + BookLine("by gnomes as they", 70), + BookLine("purportedly add virility.", 71), + ) + ), + PageSet( + Page( + BookLine("Veg Ball", 55), + BookLine("", 56), + BookLine("As with all gnomebowl dishes,", 57), + BookLine("throw a ball of fresh Gianne", 58), + BookLine("dough into a mould. Bake this", 59), + BookLine("as usual. Bake this briefly.", 60), + BookLine("Add to the bowl two onions,", 61), + BookLine("two potatoes and a dash", 62), + BookLine("of gnome spices. Bake the bowl", 63), + BookLine("in the oven once more.", 64), + BookLine("To finish simply top with equa", 65), + ), + Page( + BookLine("leaves. Vegetable dishes are", 66), + BookLine("seen as luxurious food, since", 67), + BookLine("for most of gnome history", 68), + BookLine("growing vegetables was harder", 69), + BookLine("than finding toads and worms.", 70), + ) + ), + PageSet( + Page( + BookLine("Worm Crunchies", 55), + BookLine("", 56), + BookLine("Using a crunchy tray,", 57), + BookLine("form a portion of Gianne", 58), + BookLine("dough into small evenly", 59), + BookLine("sized balls. Heat these briefly", 60), + BookLine("in an oven. Mix into the", 61), + BookLine("dough balls two king worms,", 62), + BookLine("one sprig of equa leaves", 63), + BookLine("and a shake of gnome spices.", 64), + BookLine("Bake the crunchies for a", 65), + ), + Page( + BookLine("short time in the oven.", 66), + BookLine("Sprinkle generously with", 67), + BookLine("gnome spices to finish.", 68), + BookLine("Crunchies were invented", 69), + BookLine("accidentally by Pukkamay,", 70), + BookLine("who was Dellie's assistant", 71), + BookLine("before his sacking. He started", 72), + BookLine("a successful crunch making", 73), + BookLine("business before dying in a", 74), + BookLine("bizarre Terrorbird accident.", 75), + ) + ), + PageSet( + Page( + BookLine("Choc Chip Crunchies", 55), + BookLine("", 56), + BookLine("Fill up a crunchy tray with", 57), + BookLine("balls of Gianne dough. Heat", 58), + BookLine("these briefly in a warm oven.", 59), + BookLine("Break up two bars of chocolate", 60), + BookLine("and mix these with the balls", 61), + BookLine("of dough. Next add a little", 62), + BookLine("gnome spice to each ball.", 63), + BookLine("Bake the crunchies for a", 64), + BookLine("short time in the oven.", 65), + ), + Page( + BookLine("Top the crunchies with a", 66), + BookLine("sprinkling of chocolate", 67), + BookLine("dust to finish.", 68), + BookLine("(A large chocolate stain", 69), + BookLine("covers the rest of the page.)", 70), + ) + ), + PageSet( + Page( + BookLine("Spicy Crunchies", 55), + BookLine("", 56), + BookLine("Using a crunchy tray,", 57), + BookLine("form a portion of Gianne", 58), + BookLine("dough into small evenly", 59), + BookLine("sized balls. Heat these briefly", 60), + BookLine("in a warm oven.", 61), + BookLine("Add a generous shake", 62), + BookLine("of spice and two sprigs of", 63), + BookLine("equa leaves to the dough balls.", 64), + BookLine("Bake the crunchies for a", 65), + ), + Page( + BookLine("short time in the oven.", 66), + BookLine("Sprinkle a load more gnome", 67), + BookLine("spice over the cookies to finish.", 68), + BookLine("", 69), + BookLine("The special mix of herbs", 70), + BookLine("and spices in gnome spice", 71), + BookLine("is a closely guarded secret.", 72), + BookLine("It is rumoured to contain", 73), + BookLine("(the rest is scribbled out)", 74), + ) + ), + PageSet( + Page( + BookLine("Toad Crunchies", 55), + BookLine("", 56), + BookLine("Fill a crunchy tray with", 57), + BookLine("Gianne dough as normal.", 58), + BookLine("Heat these briefly in a", 59), + BookLine("warm oven. Mix into", 60), + BookLine("the dough balls two pairs", 61), + BookLine("of toad's legs and a", 62), + BookLine("shake of gnome spices.", 63), + BookLine("Bake the crunchies for a short", 64), + BookLine("time in the oven.", 65), + ), + Page( + BookLine("Finish the crunchies with", 66), + BookLine("a sprinkling of equa leaves.", 67), + BookLine("", 68), + BookLine("When Pukkamay first made", 69), + BookLine("toad crunchies, everyone", 70), + BookLine("thought he was mad.", 71), + BookLine("'Chewy toads, in crunchies?", 72), + BookLine("It'll never work' they said", 73), + BookLine("- how wrong they were...", 74), + ) + ), + PageSet( + Page( + BookLine("Worm Batta", 55), + BookLine("", 56), + BookLine("First take some fresh", 57), + BookLine("Gianne dough and place it", 58), + BookLine("in a batta tin. Bake the", 59), + BookLine("dough until it is lightly", 60), + BookLine("browned. Take one king worm,", 61), + BookLine("some gnome spice and", 62), + BookLine("a little cheese. Add these", 63), + BookLine("to the batta before briefly", 64), + BookLine("baking it in the oven once more.", 65), + ), + Page( + BookLine("Finish the batta with a", 66), + BookLine("topping of equa leaves.", 67), + BookLine("Battas are usually cooked by", 68), + BookLine("gnome mother during the", 69), + BookLine("cold winter months.", 70), + ) + ), + PageSet( + Page( + BookLine("Toad's Legs Batta", 55), + BookLine("", 56), + BookLine("Mould some Gianne dough", 57), + BookLine("into a batta tin.", 58), + BookLine("Bake the tin until it", 59), + BookLine("is almost cooked. Next add", 60), + BookLine("some prime toad's legs,", 61), + BookLine("a sprig of equa leaves", 62), + BookLine("and some spice along with", 63), + BookLine("some cheese to the batta.", 64), + BookLine("Bake the batta in the oven", 65), + ), + Page( + BookLine("once more and serve hot.", 66), + BookLine("Toads legs battas are", 67), + BookLine("sometimes called Toad in", 68), + BookLine("the Hole. Apparently there", 69), + BookLine("is a similar human dish", 70), + BookLine("that uses sausages. How odd.", 71), + ) + ), + PageSet( + Page( + BookLine("Cheese & Tomato Batta", 55), + BookLine("", 56), + BookLine("Place some Gianne dough in a", 57), + BookLine("batta tin. Bake it as normal.", 58), + BookLine("Top the plain batta with equal", 59), + BookLine("quantities of cheese and tomato.", 60), + BookLine("Place the batta in the oven", 61), + BookLine("once more until all the cheese", 62), + BookLine("has melted. Finish the dish with", 63), + BookLine("a sprinkling of equa leaves.", 64), + BookLine("The combination of cheese", 65), + ), + Page( + BookLine("and tomato was discovered", 66), + BookLine("by the explorer Wingstone", 67), + BookLine("while was visiting the human", 68), + BookLine("lands. Apparently it's used", 69), + BookLine("a lot in a strange flat", 70), + BookLine("human dish called a pizza.", 71), + ) + ), + PageSet( + Page( + BookLine("Fruit Batta", 55), + BookLine("", 56), + BookLine("Prepare Gianne dough in", 57), + BookLine("a batta tin as normal. Bake", 58), + BookLine("the dough for a short while.", 59), + BookLine("Top the batta with chunks of", 60), + BookLine("pineapple, orange and lime.", 61), + BookLine("Lay four sprigs of", 62), + BookLine("equa leaves on top of the", 63), + BookLine("batta before baking it in", 64), + BookLine("the oven once more. Finish", 65), + ), + Page( + BookLine("the batta with a sprinkling", 66), + BookLine("of gnome spices. Battas are", 67), + BookLine("normally savoury dish,", 68), + BookLine("and the fruit batta is definitely", 69), + BookLine("an acquired taste.", 70), + ) + ), + PageSet( + Page( + BookLine("Vegetable Batta", 55), + BookLine("", 56), + BookLine("Place some Gianne dough in a", 57), + BookLine("batta tin and bake as normal.", 58), + BookLine("Add to the plain batta two", 59), + BookLine("tomatoes, one onion, one", 60), + BookLine("cabbage and some dwellberries.", 61), + BookLine("Top the batta with cheese and", 62), + BookLine("briefly place it in the oven", 63), + BookLine("once more. Finish the dish with", 64), + BookLine("with a sprinkling of equa leaves.", 65), + ), + Page( + BookLine("There's no better batta", 66), + BookLine("than a vegetable batta.", 67), + ) + ), + ) + } + + private fun display(player: Player, pageNum: Int, buttonID: Int): Boolean { + BookInterface.pageSetup(player, BookInterface.FANCY_BOOK_3_49, TITLE, CONTENTS) + return true + } + + override fun defineListeners() { + on(Items.GIANNES_COOK_BOOK_2167, IntType.ITEM, "read") { player, _ -> + setAttribute(player, "bookInterfaceCallback", ::display) + setAttribute(player, "bookInterfaceCurrentPage", 0) + display(player, 0, 0) + return@on true + } + } +} \ No newline at end of file diff --git a/Server/src/main/content/region/kandarin/dialogue/ShamansTomeBook.kt b/Server/src/main/content/region/kandarin/dialogue/ShamansTomeBook.kt new file mode 100644 index 000000000..a42792953 --- /dev/null +++ b/Server/src/main/content/region/kandarin/dialogue/ShamansTomeBook.kt @@ -0,0 +1,57 @@ +package content.region.kandarin.dialogue + +import content.global.handlers.iface.BookInterface +import content.global.handlers.iface.BookLine +import content.global.handlers.iface.Page +import content.global.handlers.iface.PageSet +import core.api.setAttribute +import core.game.interaction.IntType +import core.game.interaction.InteractionListener +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.Items + +@Initializable +class ShamansTomeBook : InteractionListener { + companion object { + private val TITLE = "Shaman's Tome" + private val CONTENTS = arrayOf( + PageSet( + Page( + BookLine("You read the ancient", 55), + BookLine("shaman's tome.", 56), + BookLine("It is written in a strange sort", 57), + BookLine("of language but you manage", 58), + BookLine("a rough translation.", 59), + BookLine("", 60), + BookLine("...scattered are my hopes that", 61), + BookLine("I will ever be released from", 62), + BookLine("this flaming Octagram, it is", 63), + BookLine("the only thing which will", 64), + BookLine("contain this beast within.", 65), + ), + Page( + BookLine("Although its grip over me is", 66), + BookLine("weakened with magic, it is", 67), + BookLine("hopeless to know if a", 68), + BookLine("saviour would guess this.", 69), + BookLine("I am doomed...", 70), + ) + ), + ) + } + + private fun display(player: Player, pageNum: Int, buttonID: Int): Boolean { + BookInterface.pageSetup(player, BookInterface.FANCY_BOOK_3_49, TITLE, CONTENTS) + return true + } + + override fun defineListeners() { + on(Items.SHAMANS_TOME_729, IntType.ITEM, "read") { player, _ -> + setAttribute(player, "bookInterfaceCallback", ::display) + setAttribute(player, "bookInterfaceCurrentPage", 0) + display(player, 0, 0) + return@on true + } + } +} \ No newline at end of file diff --git a/Server/src/main/content/region/kandarin/quest/dwarfcannon/NulodionsNotes.kt b/Server/src/main/content/region/kandarin/quest/dwarfcannon/NulodionsNotes.kt new file mode 100644 index 000000000..6a4107846 --- /dev/null +++ b/Server/src/main/content/region/kandarin/quest/dwarfcannon/NulodionsNotes.kt @@ -0,0 +1,44 @@ +package content.region.kandarin.quest.dwarfcannon + +import content.global.handlers.iface.BookInterface +import content.global.handlers.iface.BookLine +import content.global.handlers.iface.Page +import content.global.handlers.iface.PageSet +import core.api.setAttribute +import core.game.interaction.IntType +import core.game.interaction.InteractionListener +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.Items + +@Initializable +class NulodionsNotes : InteractionListener { + companion object { + private val TITLE = "Nulodion's notes" + private val CONTENTS = arrayOf( + PageSet( + Page( + BookLine("Ammo for the Dwarf Multi", 55), + BookLine("Cannon must be made from", 56), + BookLine("steel bars. The bars must be", 57), + BookLine("heated in a furnace and used", 58), + BookLine("with the ammo mould.", 59), + ) + ), + ) + } + + private fun display(player: Player, pageNum: Int, buttonID: Int): Boolean { + BookInterface.pageSetup(player, BookInterface.FANCY_BOOK_3_49, TITLE, CONTENTS) + return true + } + + override fun defineListeners() { + on(Items.NULODIONS_NOTES_3, IntType.ITEM, "read") { player, _ -> + setAttribute(player, "bookInterfaceCallback", ::display) + setAttribute(player, "bookInterfaceCurrentPage", 0) + display(player, 0, 0) + return@on true + } + } +} \ No newline at end of file diff --git a/Server/src/main/content/region/kandarin/quest/dwarfcannon/dmc/DMCManual.kt b/Server/src/main/content/region/kandarin/quest/dwarfcannon/dmc/DMCManual.kt new file mode 100644 index 000000000..b14e62c89 --- /dev/null +++ b/Server/src/main/content/region/kandarin/quest/dwarfcannon/dmc/DMCManual.kt @@ -0,0 +1,97 @@ +package content.region.kandarin.quest.dwarfcannon.dmc + +import content.global.handlers.iface.BookInterface +import content.global.handlers.iface.BookLine +import content.global.handlers.iface.Page +import content.global.handlers.iface.PageSet +import core.api.setAttribute +import core.game.interaction.IntType +import core.game.interaction.InteractionListener +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.Items + +@Initializable +class DMCManual : InteractionListener { + companion object { + private val TITLE = "Dwarf multicannon manual" + private val CONTENTS = arrayOf( + PageSet( + Page( + BookLine("