Fixed regression - the restless ghost is now able to be completed by adding the skull to the coffin

Fixed regression - house teleport and teletabs not working due to being teleblocked by the cast
Fixed regression - WildernessGateHandler now only prompts the player and applies the skull when interacting with the gates in the wilderness and not other gates
This commit is contained in:
Zerken
2023-08-07 02:43:58 +00:00
committed by Ryan
parent 1b996b9b82
commit c6cd12703f
3 changed files with 17 additions and 14 deletions
@@ -1,11 +1,14 @@
package content.region.misthalin.lumbridge.quest.therestlessghost;
import core.api.Container;
import core.game.interaction.NodeUsageEvent;
import core.game.interaction.UseWithHandler;
import core.game.node.item.Item;
import core.game.node.scenery.Scenery;
import core.plugin.Initializable;
import core.plugin.Plugin;
import org.rs09.consts.Items;
import static core.api.ContentAPIKt.removeItem;
/**
* Represents the plugin used to add the skull to the cofin.
@@ -37,7 +40,7 @@ public final class RestlessGhostSkull extends UseWithHandler {
event.getPlayer().getDialogueInterpreter().sendDialogue("Maybe I should open it first.");
return true;
}
if (event.getPlayer().getInventory().remove(new Item(964, 24))) {
if (removeItem(event.getPlayer(), Items.SKULL_964, Container.INVENTORY)) {
event.getPlayer().getPacketDispatch().sendMessage("You put the skull in the coffin.");
event.getPlayer().getQuestRepository().getQuest(RestlessGhost.NAME).finish(event.getPlayer());
}
@@ -17,18 +17,20 @@ class WildernessGateHandler : InteractionListener {
}
private fun handleGate (player: Player, node: Node) : Boolean {
val isEntering = !player.skullManager.isDeepWilderness()
if (isEntering)
openDialogue (player, GateDialogue(node.asScenery()))
else {
if (player.properties.combatPulse.isInCombat)
sendMessage (player, "You cannot leave while you are under attack.")
if (player.location.y > 3890) {
val isEntering = !player.skullManager.isDeepWilderness()
if (isEntering)
openDialogue(player, GateDialogue(node.asScenery()))
else {
DoorActionHandler.handleAutowalkDoor (player, node.asScenery())
player.skullManager.isDeepWilderness = false
if (player.properties.combatPulse.isInCombat)
sendMessage(player, "You cannot leave while you are under attack.")
else {
DoorActionHandler.handleAutowalkDoor(player, node.asScenery())
player.skullManager.isDeepWilderness = false
}
}
}
} else DoorActionHandler.handleAutowalkDoor (player, node.asScenery())
return true
}
@@ -64,7 +64,6 @@ public final class ActionLocks {
*/
public void lock(int ticks) {
lockMovement(ticks);
lockTeleport(ticks);
lockInteractions(ticks);
}
@@ -73,7 +72,6 @@ public final class ActionLocks {
*/
public void unlock() {
unlockMovement();
unlockTeleport();
unlockInteraction();
}