diff --git a/Server/src/main/content/region/misthalin/varrock/dialogue/KingRoaldDialogue.kt b/Server/src/main/content/region/misthalin/varrock/dialogue/KingRoaldDialogue.kt index 078d706..827b5f6 100644 --- a/Server/src/main/content/region/misthalin/varrock/dialogue/KingRoaldDialogue.kt +++ b/Server/src/main/content/region/misthalin/varrock/dialogue/KingRoaldDialogue.kt @@ -6,7 +6,6 @@ import core.game.dialogue.FacialExpression import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import content.region.misthalin.varrock.quest.shieldofarrav.KingRoaldArravDialogue -import content.region.misthalin.varrock.quest.shieldofarrav.KingRoaldBribe import content.region.misthalin.varrock.quest.allfiredup.KingRoaldAFUDialogue import content.region.misthalin.quest.priestinperil.KingRoaldPIPDialogue import core.tools.DIALOGUE_INITIAL_OPTIONS_HANDLE @@ -42,12 +41,8 @@ class KingRoaldDialogue(player: Player? = null) : DialoguePlugin(player) { addOption("Priest in Peril", KingRoaldPIPDialogue(player.questRepository.getStage(Quests.PRIEST_IN_PERIL))) } - if (player.questRepository.getQuest(Quests.SHIELD_OF_ARRAV).isStarted(player) && !player.questRepository.getQuest(Quests.SHIELD_OF_ARRAV).isCompleted(player)) { - addOption("Shield of Arrav", KingRoaldArravDialogue()) - } - if (!player.questRepository.getQuest(Quests.SHIELD_OF_ARRAV).isCompleted(player)) { - addOption("Bribe for Shield of Arrav", KingRoaldBribe()) + addOption("Shield of Arrav", KingRoaldArravDialogue()) } if(!sendChoices()){ diff --git a/Server/src/main/content/region/misthalin/varrock/quest/shieldofarrav/KingRoaldArravDialogue.kt b/Server/src/main/content/region/misthalin/varrock/quest/shieldofarrav/KingRoaldArravDialogue.kt index 26238d7..6924e63 100644 --- a/Server/src/main/content/region/misthalin/varrock/quest/shieldofarrav/KingRoaldArravDialogue.kt +++ b/Server/src/main/content/region/misthalin/varrock/quest/shieldofarrav/KingRoaldArravDialogue.kt @@ -6,12 +6,20 @@ import core.game.dialogue.DialogueFile import core.tools.END_DIALOGUE import core.tools.START_DIALOGUE import content.data.Quests +import core.game.dialogue.FacialExpression +import core.api.Container +import core.api.inInventory +import core.api.removeItem +import core.game.dialogue.DialoguePlugin private val CERTIFICATE = Item(769) class KingRoaldArravDialogue() : DialogueFile() { + companion object { + const val BRIBE_PRICE = 6000 + } override fun handle(componentID: Int, buttonID: Int) { if (player!!.inventory.containsItem(ShieldofArrav.PHOENIX_SHIELD) || player!!.inventory.containsItem(ShieldofArrav.BLACKARM_SHIELD)) { @@ -54,7 +62,29 @@ class KingRoaldArravDialogue() : DialogueFile() { } else { - abandonFile() + when (stage) { + START_DIALOGUE -> player("I would like to contribute to one of", "your Political Action Committees").also{ stage++ } + 1 -> npcl("Which one?").also { stage++ } + 2 -> playerl("The Citizens Who Can't Be", "Bothered To Do Shield of Arrav").also { stage++ } + 3 -> npcl(FacialExpression.HALF_THINKING, "I see... that will be 6,000 coins").also { stage++ } + 4 -> options("Here you go!", "Nevermind.").also { stage++ } + 5 -> when (buttonID) { + 1 -> { + if (inInventory(player!!, 995, BRIBE_PRICE)) + playerl(FacialExpression.FRIENDLY, "Here you go!").also { stage = 20 } + else + playerl(FacialExpression.HALF_GUILTY, "Actually, I don't have that much.").also { stage = END_DIALOGUE } + } + 2 -> playerl(FacialExpression.FRIENDLY, "On second thought, never mind.").also { stage = END_DIALOGUE } + } + 20 -> { + npcl("Thank you so much, dear donor. The government of Varrock", "now has higher priorities than the Shield of Arrav.") + if (removeItem(player!!, Item(995, BRIBE_PRICE), Container.INVENTORY)) { + player!!.questRepository.getQuest(Quests.SHIELD_OF_ARRAV).finish(player) + } + stage = END_DIALOGUE + } + } } } } \ No newline at end of file diff --git a/Server/src/main/content/region/misthalin/varrock/quest/shieldofarrav/KingRoaldBribe.kt b/Server/src/main/content/region/misthalin/varrock/quest/shieldofarrav/KingRoaldBribe.kt deleted file mode 100644 index c120890..0000000 --- a/Server/src/main/content/region/misthalin/varrock/quest/shieldofarrav/KingRoaldBribe.kt +++ /dev/null @@ -1,55 +0,0 @@ -package content.region.misthalin.varrock.quest.shieldofarrav - -import core.game.node.item.GroundItemManager -import core.game.node.item.Item -import core.game.dialogue.DialogueFile -import core.tools.START_DIALOGUE -import content.data.Quests -import core.api.Container -import core.api.inInventory -import core.api.removeItem -import core.game.dialogue.DialoguePlugin -import core.game.dialogue.FacialExpression -import core.game.node.entity.player.Player -import core.plugin.Initializable -import core.tools.END_DIALOGUE -import org.rs09.consts.Items -import org.rs09.consts.NPCs -import java.text.SimpleDateFormat -import java.time.temporal.ChronoUnit -import java.util.* - -class KingRoaldBribe() : DialogueFile() { - companion object { - const val BRIBE_PRICE = 6000 - } - - override fun handle(interfaceId: Int, buttonId: Int) { - when (stage) { - START_DIALOGUE -> { - player("I would like to contribute to one of", "your Political Action Committees") - stage = 0 - } - 0 -> npcl("Which one?").also { stage++ } - 1 -> playerl("The Citizens Who Can't Be Bothered To Do Shield of Arrav").also { stage++ } - 2 -> npcl(FacialExpression.HALF_THINKING, "I see... that will be 6,000 coins").also { stage++ } - 3 -> options("Here you go!", "Nevermind.").also { stage++ } - 12 -> when (buttonId) { - 1 -> { - if (inInventory(player!!, 995, BRIBE_PRICE)) - playerl(FacialExpression.FRIENDLY, "Here you go!").also { stage = 20 } - else - playerl(FacialExpression.HALF_GUILTY, "Actually, I don't have that much.").also { stage = END_DIALOGUE } - } - 2 -> playerl(FacialExpression.FRIENDLY, "On second thought, never mind.").also { stage = END_DIALOGUE } - } - 20 -> { - npcl("Thank you so much, dear donor. The government of Varrock now cares much less about the Shield of Arrav.") - if (removeItem(player!!, Item(995, BRIBE_PRICE), Container.INVENTORY)) { - player!!.questRepository.getQuest(Quests.SHIELD_OF_ARRAV).finish(player) - } - stage = END_DIALOGUE - } - } - } -}