2011-05-13 04:24:42 -04:00
|
|
|
package org.moparscape.msc.gs.npchandler;
|
2011-04-27 01:44:26 -04:00
|
|
|
|
2011-05-13 04:24:42 -04:00
|
|
|
import org.moparscape.msc.gs.Instance;
|
|
|
|
import org.moparscape.msc.gs.event.ShortEvent;
|
|
|
|
import org.moparscape.msc.gs.model.ChatMessage;
|
|
|
|
import org.moparscape.msc.gs.model.MenuHandler;
|
|
|
|
import org.moparscape.msc.gs.model.Npc;
|
|
|
|
import org.moparscape.msc.gs.model.Player;
|
|
|
|
import org.moparscape.msc.gs.model.World;
|
2011-04-27 01:44:26 -04:00
|
|
|
|
|
|
|
public class EntranaMonks implements NpcHandler {
|
2011-06-25 01:44:53 -04:00
|
|
|
/**
|
|
|
|
* World instance
|
|
|
|
*/
|
|
|
|
public static final World world = Instance.getWorld();
|
2011-04-27 01:44:26 -04:00
|
|
|
|
2011-06-25 01:44:53 -04:00
|
|
|
public void handleNpc(final Npc npc, Player player) throws Exception {
|
|
|
|
final boolean toEntrana = !player.getLocation().inBounds(390, 530, 440,
|
|
|
|
580);
|
|
|
|
player.informOfNpcMessage(new ChatMessage(
|
|
|
|
npc,
|
|
|
|
toEntrana ? "Are you looking to take passage to our holy island?"
|
|
|
|
: "Are you ready to go back to the mainland?", player));
|
2011-04-27 01:44:26 -04:00
|
|
|
player.setBusy(true);
|
|
|
|
Instance.getDelayedEventHandler().add(new ShortEvent(player) {
|
2011-06-25 01:44:53 -04:00
|
|
|
public void action() {
|
|
|
|
owner.setBusy(false);
|
|
|
|
String[] options = { "Yes okay I'm ready to go", "No thanks" };
|
|
|
|
owner.setMenuHandler(new MenuHandler(options) {
|
|
|
|
public void handleReply(final int option, final String reply) {
|
|
|
|
if (owner.isBusy()) {
|
|
|
|
npc.unblock();
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
owner.informOfChatMessage(new ChatMessage(owner, reply,
|
|
|
|
npc));
|
|
|
|
owner.setBusy(true);
|
|
|
|
Instance.getDelayedEventHandler().add(
|
|
|
|
new ShortEvent(owner) {
|
|
|
|
public void action() {
|
|
|
|
if (option == 0) {
|
|
|
|
owner.getActionSender()
|
|
|
|
.sendMessage(
|
|
|
|
"You board the ship");
|
|
|
|
Instance.getDelayedEventHandler()
|
|
|
|
.add(new ShortEvent(owner) {
|
|
|
|
public void action() {
|
|
|
|
if (toEntrana) {
|
|
|
|
owner.teleport(
|
|
|
|
418,
|
|
|
|
570,
|
|
|
|
false);
|
|
|
|
} else {
|
|
|
|
owner.teleport(
|
|
|
|
263,
|
|
|
|
659,
|
|
|
|
false);
|
|
|
|
}
|
|
|
|
owner.getActionSender()
|
|
|
|
.sendMessage(
|
|
|
|
"The ship arrives at "
|
|
|
|
+ (toEntrana ? "Entrana"
|
|
|
|
: "Port Sarim"));
|
|
|
|
owner.setBusy(false);
|
|
|
|
npc.unblock();
|
|
|
|
}
|
|
|
|
});
|
|
|
|
} else {
|
|
|
|
owner.setBusy(false);
|
|
|
|
npc.unblock();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|
|
|
|
});
|
|
|
|
owner.getActionSender().sendMenu(options);
|
|
|
|
}
|
|
|
|
});
|
2011-04-27 01:44:26 -04:00
|
|
|
npc.blockedBy(player);
|
|
|
|
return;
|
|
|
|
|
2011-06-25 01:44:53 -04:00
|
|
|
}
|
2011-04-27 01:44:26 -04:00
|
|
|
|
|
|
|
}
|