From 89cbbe276564aceb0d75072f54879b88e72e86b1 Mon Sep 17 00:00:00 2001 From: Zerken Date: Sun, 25 Jun 2023 13:45:11 +0000 Subject: [PATCH] Peer the Seer fixes Players can no longer enter with any items in inventory or equipped The full vase is now removed from the player's inventory when placing it on the frozen table --- .../thefremenniktrials/SeersHouseListeners.kt | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/SeersHouseListeners.kt b/Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/SeersHouseListeners.kt index cbf3ed8ff..4ed643b4b 100644 --- a/Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/SeersHouseListeners.kt +++ b/Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/SeersHouseListeners.kt @@ -11,8 +11,10 @@ import core.game.world.map.zone.ZoneBorders import core.game.world.update.flag.context.Animation import org.rs09.consts.Items import core.game.dialogue.DialogueFile +import core.game.global.action.DoorActionHandler import core.game.interaction.InteractionListener import core.game.interaction.IntType +import org.rs09.consts.NPCs class SeersHouseListeners : InteractionListener { @@ -107,14 +109,16 @@ class SeersHouseListeners : InteractionListener { else if(player.getAttribute("PeerRiddle",5) < 5){ player.dialogueInterpreter.open(DoorRiddleDialogue(player), Scenery(WESTDOOR,node.location)) } - else if(player.getAttribute("riddlesolved",false)){ - if(player.location.x == 2631){ + else if(player.getAttribute("riddlesolved",false)) { + val insideHouse = (player.location == Location.create(2631, 3666, 0)) + if(insideHouse) { + DoorActionHandler.handleAutowalkDoor(player, node.asScenery()) player.inventory.clear() - core.game.global.action.DoorActionHandler.handleAutowalkDoor(player,node.asScenery()) - }else{ - core.game.global.action.DoorActionHandler.handleAutowalkDoor(player,node.asScenery()) + } else if(player.inventory.isEmpty && player.equipment.isEmpty) { + DoorActionHandler.handleAutowalkDoor(player, node.asScenery()) + } else { + openDialogue(player, NPCs.PEER_THE_SEER_1288, findNPC(NPCs.PEER_THE_SEER_1288)!!) } - core.game.global.action.DoorActionHandler.handleAutowalkDoor(player,node.asScenery()) } return@on true } @@ -873,7 +877,7 @@ class SeersHouseListeners : InteractionListener { onUseWith(IntType.SCENERY, FULLVASE, FROZENTABLE) { player, used, with -> player.animate(Animation(883,Animator.Priority.HIGH)) - removeItem(player,VASE) + removeItem(player,FULLVASE) addItem(player,FROZENVASE) sendMessage(player,"The icy table immediately freezes the water in your vase.") return@onUseWith true @@ -928,7 +932,7 @@ class SeersHouseListeners : InteractionListener { if(player.inventory.contains(SEERSKEY,1)){ player.setAttribute("/save:housepuzzlesolved",true) player.inventory.clear() - core.game.global.action.DoorActionHandler.handleAutowalkDoor(player,node.asScenery()) + DoorActionHandler.handleAutowalkDoor(player,node.asScenery()) player.setAttribute("/save:fremtrials:peer-vote",true) player.setAttribute("/save:fremtrials:votes",player.getAttribute("fremtrials:votes",0) + 1) sendNPCDialogue(player,1288,"Incredible! To have solved my puzzle so quickly! I have no choice but to vote in your favour!")