mirror of
https://gitlab.com/2009scape/2009scape.git
synced 2025-12-11 17:10:21 -07:00
Fixed the listener for Shamus Tree (fixes lost city quest)
This commit is contained in:
parent
208d3adb7d
commit
180145336e
2 changed files with 72 additions and 1 deletions
|
|
@ -3,6 +3,7 @@ package core.game.content.quest.members.lostcity;
|
||||||
import core.game.content.dialogue.DialoguePlugin;
|
import core.game.content.dialogue.DialoguePlugin;
|
||||||
import core.game.node.entity.player.Player;
|
import core.game.node.entity.player.Player;
|
||||||
import core.game.node.entity.player.link.quest.Quest;
|
import core.game.node.entity.player.link.quest.Quest;
|
||||||
|
import rs09.game.content.quest.members.lostcity.ShamusTreeListener;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handles the shamus npc dialogue.
|
* Handles the shamus npc dialogue.
|
||||||
|
|
@ -150,7 +151,7 @@ public final class ShamusDialogue extends DialoguePlugin {
|
||||||
* Makes dhamus disappear.
|
* Makes dhamus disappear.
|
||||||
*/
|
*/
|
||||||
private void disappear() {
|
private void disappear() {
|
||||||
LostCityPlugin.SHAMUS.setInvisible(true);
|
ShamusTreeListener.Companion.disappearShamus();
|
||||||
interpreter.sendPlainMessage(false, "The leprechaun magically disappears.");
|
interpreter.sendPlainMessage(false, "The leprechaun magically disappears.");
|
||||||
stage++;
|
stage++;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,70 @@
|
||||||
|
package rs09.game.content.quest.members.lostcity
|
||||||
|
|
||||||
|
import core.game.content.dialogue.FacialExpression
|
||||||
|
import core.game.node.entity.npc.NPC
|
||||||
|
import core.game.node.entity.player.Player
|
||||||
|
import core.game.node.entity.skill.gather.SkillingTool
|
||||||
|
import core.game.system.task.Pulse
|
||||||
|
import core.game.world.map.Location
|
||||||
|
import core.plugin.Initializable
|
||||||
|
import org.rs09.consts.NPCs
|
||||||
|
import org.rs09.consts.Scenery
|
||||||
|
import rs09.game.interaction.InteractionListener
|
||||||
|
import rs09.game.world.GameWorld
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Shamus tree listener, to handle when a player chops Shamus's home tree,
|
||||||
|
* and to handle some details about the Shamus NPC
|
||||||
|
* @author lila
|
||||||
|
* @author Vexia
|
||||||
|
*/
|
||||||
|
@Initializable
|
||||||
|
class ShamusTreeListener : InteractionListener {
|
||||||
|
|
||||||
|
init {
|
||||||
|
SHAMUS.init()
|
||||||
|
SHAMUS.isWalks = true
|
||||||
|
SHAMUS.isInvisible = true
|
||||||
|
}
|
||||||
|
|
||||||
|
companion object {
|
||||||
|
val SHAMUS = NPC(NPCs.SHAMUS_654, Location(3138, 3211, 0))
|
||||||
|
fun disappearShamus() {
|
||||||
|
SHAMUS.isInvisible = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fun handleShamusTree(player: Player): Boolean {
|
||||||
|
if (SkillingTool.getHatchet(player) == null) {
|
||||||
|
player.packetDispatch.sendMessage("You do not have an axe which you have the level to use.")
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
showShamus(player)
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
fun showShamus(player: Player) {
|
||||||
|
if(SHAMUS.isInvisible) {
|
||||||
|
SHAMUS.isInvisible = false
|
||||||
|
SHAMUS.properties.teleportLocation = SHAMUS.properties.spawnLocation
|
||||||
|
}
|
||||||
|
player.dialogueInterpreter.sendDialogues(SHAMUS, FacialExpression.FURIOUS, "Hey! Yer big elephant! Don't go choppin' down me", "house, now!")
|
||||||
|
GameWorld.Pulser.submit(object : Pulse(100) {
|
||||||
|
override fun pulse(): Boolean {
|
||||||
|
if (SHAMUS.dialoguePlayer == null) {
|
||||||
|
SHAMUS.isInvisible = true
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun defineListeners() {
|
||||||
|
on(Scenery.TREE_2409,SCENERY,"chop") { player, _ ->
|
||||||
|
handleShamusTree(player)
|
||||||
|
return@on true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue