From 5f4450c7d2a6794203f9e47166c2f5c0297cc5dc Mon Sep 17 00:00:00 2001 From: Trident101 Date: Fri, 20 Oct 2023 06:57:18 +0000 Subject: [PATCH] Several additions and changes to Zanaris Added fairy queen dialogue Added movement to the cows Added a spawnpoint for Blaec Added examine texts --- Server/data/configs/npc_configs.json | 15 ++++ Server/data/configs/npc_spawns.json | 6 +- .../zanaris/dialogue/FairyQueenDialogue.kt | 69 +++++++++++++++++++ 3 files changed, 89 insertions(+), 1 deletion(-) create mode 100644 Server/src/main/content/region/misc/zanaris/dialogue/FairyQueenDialogue.kt diff --git a/Server/data/configs/npc_configs.json b/Server/data/configs/npc_configs.json index 129f8fd4a..8dc3860f0 100644 --- a/Server/data/configs/npc_configs.json +++ b/Server/data/configs/npc_configs.json @@ -72338,5 +72338,20 @@ "bonuses": "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", "range_level": "1", "attack_level": "10" + }, + { + "examine": "Blaec seems to be covered in sand.", + "name": "Blaec", + "id": "3115" + }, + { + "examine": "Looks otherworldy...", + "name": "Fairy Queen", + "id": "4437" + }, + { + "examine": "A delicate creature from this strange realm.", + "name": "Fairy", + "id": "4443" } ] \ No newline at end of file diff --git a/Server/data/configs/npc_spawns.json b/Server/data/configs/npc_spawns.json index 6504693af..fb25a6110 100644 --- a/Server/data/configs/npc_spawns.json +++ b/Server/data/configs/npc_spawns.json @@ -249,7 +249,7 @@ }, { "npc_id": "81", - "loc_data": "{2436,4443,0,0,3}-{2441,4449,0,0,6}-{3255,3255,0,1,3}-{3255,3256,0,1,4}-{3038,3310,0,1,5}-{3028,3312,0,1,6}-{3028,3299,0,1,6}-{3042,3300,0,1,6}-{2923,3277,0,1,1}-{2921,3289,0,1,1}-{2923,3280,0,1,6}-{2589,3120,0,1,4}-{2605,3116,0,1,5}-{3259,3261,0,1,1}-{3263,3283,0,1,6}-{3257,3268,0,1,4}" + "loc_data": "{2436,4443,0,1,3}-{2441,4449,0,1,6}-{3255,3255,0,1,3}-{3255,3256,0,1,4}-{3038,3310,0,1,5}-{3028,3312,0,1,6}-{3028,3299,0,1,6}-{3042,3300,0,1,6}-{2923,3277,0,1,1}-{2921,3289,0,1,1}-{2923,3280,0,1,6}-{2589,3120,0,1,4}-{2605,3116,0,1,5}-{3259,3261,0,1,1}-{3263,3283,0,1,6}-{3257,3268,0,1,4}" }, { "npc_id": "82", @@ -5755,6 +5755,10 @@ "npc_id": "3114", "loc_data": "{2815,3344,0,1,3}" }, + { + "npc_id": "3115", + "loc_data": "{2439,4444,0,1,3}" + }, { "npc_id": "3123", "loc_data": "{3344,2827,0,1,5}" diff --git a/Server/src/main/content/region/misc/zanaris/dialogue/FairyQueenDialogue.kt b/Server/src/main/content/region/misc/zanaris/dialogue/FairyQueenDialogue.kt new file mode 100644 index 000000000..0f79e6733 --- /dev/null +++ b/Server/src/main/content/region/misc/zanaris/dialogue/FairyQueenDialogue.kt @@ -0,0 +1,69 @@ +package content.region.misc.zanaris.dialogue + +import core.api.isQuestComplete +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.plugin.Initializable +import core.tools.END_DIALOGUE +import core.tools.START_DIALOGUE +import org.rs09.consts.NPCs + +@Initializable +class FairyQueenDialogue(player: Player? = null) : DialoguePlugin(player) { + + override fun newInstance(player: Player?): DialoguePlugin { + return FairyQueenDialogue(player) + } + + override fun open(vararg args: Any?): Boolean { + npc = args[0] as NPC + + if (!isQuestComplete(player, "Fairytale II - Cure a Queen")) { + options( + "How do crops and such survive down here?", "What's so good about this place?" + ).also { stage = START_DIALOGUE } + } else { + playerl( + FacialExpression.ASKING, "Have you managed to work out a plan yet?" + ).also { stage = 3 } + } + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when (stage) { + 0 -> when (buttonId) { + 1 -> playerl( + FacialExpression.ASKING, "How do crops and such survive down here?" + ).also { stage = 1 } + + 2 -> playerl( + FacialExpression.ASKING, "What's so good about this place?" + ).also { stage = 2 } + } + + 1 -> npcl( + FacialExpression.OLD_DEFAULT, + "Clearly you come from a plane dependent on sunlight. Down here, the plants grow in the aura of faerie." + ).also { stage = END_DIALOGUE } + + 2 -> npcl( + FacialExpression.OLD_DEFAULT, + " Zanaris is a meeting point of cultures. Those from many worlds converge here to exchange knowledge and goods." + ).also { stage = END_DIALOGUE } + + 3 -> npcl( + FacialExpression.OLD_DEFAULT, + "Not yet," + player.username + ", but it looks like we'll need to ask you for your help again, I'm afraid. I'll be able to tell you more once we have finished making our battle plans." + ).also { stage = END_DIALOGUE } + } + return true + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.FAIRY_QUEEN_4437) + } + +} \ No newline at end of file