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.InvItem;
|
|
|
|
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
|
|
|
|
|
|
|
/**
|
|
|
|
*
|
|
|
|
* @author xEnt
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
public class Apothecary implements NpcHandler {
|
|
|
|
|
2011-06-25 01:44:53 -04:00
|
|
|
public static final World world = Instance.getWorld();
|
2011-04-27 01:44:26 -04:00
|
|
|
|
2011-06-25 01:44:53 -04:00
|
|
|
String[] names = { "Do you have a potion to make my hair fall out?",
|
|
|
|
"I am in need of a strength potion", "No thanks" };
|
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 {
|
|
|
|
player.setBusy(false);
|
|
|
|
player.informOfNpcMessage(new ChatMessage(npc,
|
|
|
|
"Hello, can i help you?", player));
|
|
|
|
Instance.getDelayedEventHandler().add(new ShortEvent(player) {
|
|
|
|
public void action() {
|
2011-04-27 01:44:26 -04:00
|
|
|
|
2011-06-25 01:44:53 -04:00
|
|
|
owner.setMenuHandler(new MenuHandler(names) {
|
|
|
|
public void handleReply(final int option, final String reply) {
|
|
|
|
if (option < 0 && option > names.length)
|
|
|
|
return;
|
2011-04-27 01:44:26 -04:00
|
|
|
|
2011-06-25 01:44:53 -04:00
|
|
|
if (option == 0) {
|
|
|
|
owner.informOfChatMessage(new ChatMessage(owner,
|
|
|
|
reply, npc));
|
|
|
|
Instance.getDelayedEventHandler().add(
|
|
|
|
new ShortEvent(owner) {
|
|
|
|
public void action() {
|
|
|
|
owner.informOfNpcMessage(new ChatMessage(
|
|
|
|
npc,
|
|
|
|
"Here you are, enjoy this",
|
|
|
|
owner));
|
|
|
|
Instance.getDelayedEventHandler()
|
|
|
|
.add(new ShortEvent(owner) {
|
|
|
|
public void action() {
|
|
|
|
owner.getActionSender()
|
|
|
|
.sendMessage(
|
|
|
|
"Apothecary hands you a mysterious potion");
|
|
|
|
owner.getInventory()
|
|
|
|
.add(new InvItem(
|
|
|
|
58));
|
|
|
|
owner.getActionSender()
|
|
|
|
.sendInventory();
|
|
|
|
owner.setBusy(false);
|
|
|
|
npc.setBusy(false);
|
|
|
|
npc.unblock();
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
} else if (option == 1) {
|
2011-04-27 01:44:26 -04:00
|
|
|
|
2011-06-25 01:44:53 -04:00
|
|
|
owner.informOfChatMessage(new ChatMessage(owner,
|
|
|
|
reply, npc));
|
|
|
|
Instance.getDelayedEventHandler().add(
|
|
|
|
new ShortEvent(owner) {
|
|
|
|
public void action() {
|
|
|
|
owner.informOfNpcMessage(new ChatMessage(
|
|
|
|
npc,
|
|
|
|
"Bring me a limpwurt root and a spider egg and i will make you one",
|
|
|
|
owner));
|
|
|
|
Instance.getDelayedEventHandler()
|
|
|
|
.add(new ShortEvent(owner) {
|
|
|
|
public void action() {
|
|
|
|
String[] s = {
|
|
|
|
"I have the ingredients",
|
|
|
|
"Ok ill find them." };
|
|
|
|
owner.setMenuHandler(new MenuHandler(
|
|
|
|
s) {
|
|
|
|
public void handleReply(
|
|
|
|
final int option,
|
|
|
|
final String reply) {
|
|
|
|
if (option == 0) {
|
|
|
|
owner.informOfChatMessage(new ChatMessage(
|
|
|
|
owner,
|
|
|
|
reply,
|
|
|
|
npc));
|
|
|
|
world.getDelayedEventHandler()
|
|
|
|
.add(new ShortEvent(
|
|
|
|
owner) {
|
|
|
|
public void action() {
|
|
|
|
if (owner
|
|
|
|
.getInventory()
|
|
|
|
.countId(
|
|
|
|
220) < 1
|
|
|
|
|| owner.getInventory()
|
|
|
|
.countId(
|
|
|
|
219) < 1) {
|
|
|
|
owner.informOfNpcMessage(new ChatMessage(
|
|
|
|
npc,
|
|
|
|
"It seems you don't have everything i asked for, come back later.",
|
|
|
|
owner));
|
|
|
|
owner.setBusy(false);
|
|
|
|
npc.setBusy(false);
|
|
|
|
npc.unblock();
|
|
|
|
return;
|
|
|
|
} else {
|
|
|
|
if (owner
|
|
|
|
.getInventory()
|
|
|
|
.remove(220,
|
|
|
|
1) > -1
|
|
|
|
&& owner.getInventory()
|
|
|
|
.remove(219,
|
|
|
|
1) > -1) {
|
|
|
|
owner.getInventory()
|
|
|
|
.add(new InvItem(
|
|
|
|
221));
|
|
|
|
owner.getActionSender()
|
|
|
|
.sendMessage(
|
|
|
|
"Apothecary hands you a Strength Potion (4 dose)");
|
|
|
|
owner.getActionSender()
|
|
|
|
.sendInventory();
|
|
|
|
owner.setBusy(false);
|
|
|
|
npc.setBusy(false);
|
|
|
|
npc.unblock();
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
} else {
|
|
|
|
owner.setBusy(false);
|
|
|
|
npc.setBusy(false);
|
|
|
|
npc.unblock();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
owner.getActionSender()
|
|
|
|
.sendMenu(s);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|
|
|
|
});
|
2011-04-27 01:44:26 -04:00
|
|
|
|
2011-06-25 01:44:53 -04:00
|
|
|
} else {
|
2011-04-27 01:44:26 -04:00
|
|
|
owner.setBusy(false);
|
|
|
|
npc.setBusy(false);
|
|
|
|
npc.unblock();
|
|
|
|
}
|
|
|
|
|
2011-06-25 01:44:53 -04:00
|
|
|
}
|
|
|
|
});
|
|
|
|
owner.getActionSender().sendMenu(names);
|
2011-04-27 01:44:26 -04:00
|
|
|
}
|
|
|
|
});
|
2011-06-25 01:44:53 -04:00
|
|
|
}
|
2011-04-27 01:44:26 -04:00
|
|
|
|
|
|
|
}
|