mirror of
https://github.com/moparisthebest/MoparClassic
synced 2024-12-26 01:18:52 -05:00
347 lines
11 KiB
Java
347 lines
11 KiB
Java
import org.moparscape.msc.gs.Instance; import org.moparscape.msc.gs.event.SingleEvent;
|
|
import org.moparscape.msc.gs.Instance; import org.moparscape.msc.gs.model.MenuHandler;
|
|
import org.moparscape.msc.gs.Instance; import org.moparscape.msc.gs.model.Npc;
|
|
import org.moparscape.msc.gs.Instance; import org.moparscape.msc.gs.model.Player;
|
|
import org.moparscape.msc.gs.Instance; import org.moparscape.msc.gs.quest.Quest;
|
|
import org.moparscape.msc.gs.Instance; import org.moparscape.msc.gs.quest.QuestAction;
|
|
|
|
/**
|
|
* Quest: Vampire Slayer (v1.0) 6/1/2009 Status: INCOMPLETE Start: Morgan (id
|
|
* 97), 215,615 NPCs: Harlow (id 98), 82,444 Items: Reward: 3 quest points, 1000
|
|
* attack xp
|
|
*
|
|
* @author punKrockeR
|
|
*/
|
|
public class VampireSlayer extends Quest {
|
|
private static final int MORGAN_ID = 97;
|
|
private static final int HARLOW_ID = 98;
|
|
private static final int REWARD_XP = 1000;
|
|
private static final int DEFAULT_EVENT_DELAY = 3200;
|
|
private static final int QUEST_POINTS = 3;
|
|
private static final String[] FIRST_MENU = new String[] {
|
|
"No. Vampires are scary", "Ok I'm up for an adventure",
|
|
"I tried fighting him. He wouldn't die" };
|
|
private static final String[] SECOND_MENU = new String[] {
|
|
"No, you've had enough", "Ok mate", "Morgan needs your help" };
|
|
|
|
/**
|
|
* Don't load this quest yet it's incomplete
|
|
*/
|
|
public boolean loadQuest() {
|
|
return false;
|
|
}
|
|
|
|
/**
|
|
* @return the quest's name
|
|
*/
|
|
public String getName() {
|
|
return "Vampire Slayer";
|
|
}
|
|
|
|
/**
|
|
* @return this quest's unique id
|
|
*/
|
|
public int getUniqueID() {
|
|
return 4;
|
|
}
|
|
|
|
/**
|
|
* Initialises the quest
|
|
*/
|
|
public void init() {
|
|
associateNpc(MORGAN_ID);
|
|
associateNpc(HARLOW_ID);
|
|
}
|
|
|
|
/**
|
|
* Handles the given quest action
|
|
*/
|
|
public void handleAction(QuestAction action, Object[] args,
|
|
final Player player) {
|
|
int stage = player.getQuestStage(this);
|
|
|
|
if (action == action.TALKED_NPC) {
|
|
if (!(args[0] instanceof Npc))
|
|
return;
|
|
|
|
final Npc npc = (Npc) args[0];
|
|
|
|
player.setBusy(true);
|
|
npc.blockedBy(player);
|
|
|
|
if (npc.getID() == MORGAN_ID) {
|
|
if (stage == -1)
|
|
startQuest(player, npc);
|
|
else
|
|
handleMorganTalk(player, npc);
|
|
} else if (npc.getID() == HARLOW_ID) {
|
|
handleHarlowTalk(player, npc);
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Handles npc chat if the quest hasn't been started yet
|
|
*/
|
|
private void startQuest(final Player player, final Npc npc) {
|
|
sendChat("Please, please help us bold hero!", npc, player);
|
|
addSingleEvent(new SingleEvent(player, DEFAULT_EVENT_DELAY) {
|
|
public void action() {
|
|
sendChat("What's the problem?", player, npc);
|
|
addSingleEvent(new SingleEvent(player, DEFAULT_EVENT_DELAY) {
|
|
public void action() {
|
|
sendChat(
|
|
"Our little village has been dreadfully ravaged by an evil vampire!",
|
|
npc, player);
|
|
addSingleEvent(new SingleEvent(player,
|
|
DEFAULT_EVENT_DELAY) {
|
|
public void action() {
|
|
sendChat("There's hardly any of us left", npc,
|
|
player);
|
|
addSingleEvent(new SingleEvent(player,
|
|
DEFAULT_EVENT_DELAY) {
|
|
public void action() {
|
|
sendChat(
|
|
"We need someone to get rid of him once and for good",
|
|
npc, player);
|
|
addSingleEvent(new SingleEvent(player,
|
|
DEFAULT_EVENT_DELAY) {
|
|
public void action() {
|
|
player.setBusy(false);
|
|
player
|
|
.setMenuHandler(new MenuHandler(
|
|
FIRST_MENU) {
|
|
public void handleReply(
|
|
final int option,
|
|
final String reply) {
|
|
player
|
|
.setBusy(true);
|
|
npc
|
|
.blockedBy(player);
|
|
sendChat(reply,
|
|
player,
|
|
npc);
|
|
|
|
addSingleEvent(new SingleEvent(
|
|
player,
|
|
DEFAULT_EVENT_DELAY) {
|
|
public void action() {
|
|
if (option == 0) // No
|
|
{
|
|
sendChat(
|
|
"I don't blame you",
|
|
npc,
|
|
player);
|
|
player
|
|
.setBusy(false);
|
|
npc
|
|
.unblock();
|
|
} else // Yes
|
|
{
|
|
npc
|
|
.blockedBy(player);
|
|
sendChat(
|
|
"I think first you should seek help",
|
|
npc,
|
|
player);
|
|
addSingleEvent(new SingleEvent(
|
|
player,
|
|
DEFAULT_EVENT_DELAY) {
|
|
public void action() {
|
|
npc
|
|
.blockedBy(player);
|
|
sendChat(
|
|
"I have a friend who is a retired vampire hunter called Dr Harlow",
|
|
npc,
|
|
player);
|
|
addSingleEvent(new SingleEvent(
|
|
player,
|
|
DEFAULT_EVENT_DELAY) {
|
|
public void action() {
|
|
npc
|
|
.blockedBy(player);
|
|
sendChat(
|
|
"He may be able to give you some tips",
|
|
npc,
|
|
player);
|
|
addSingleEvent(new SingleEvent(
|
|
player,
|
|
DEFAULT_EVENT_DELAY) {
|
|
public void action() {
|
|
npc
|
|
.blockedBy(player);
|
|
sendChat(
|
|
"He's usually found in the Jolly Bar Inn these days",
|
|
npc,
|
|
player);
|
|
addSingleEvent(new SingleEvent(
|
|
player,
|
|
DEFAULT_EVENT_DELAY) {
|
|
public void action() {
|
|
npc
|
|
.blockedBy(player);
|
|
sendChat(
|
|
"He's a bit of an old soak",
|
|
npc,
|
|
player);
|
|
addSingleEvent(new SingleEvent(
|
|
player,
|
|
DEFAULT_EVENT_DELAY) {
|
|
public void action() {
|
|
npc
|
|
.blockedBy(player);
|
|
sendChat(
|
|
"Mention his old friend Morgan",
|
|
npc,
|
|
player);
|
|
addSingleEvent(new SingleEvent(
|
|
player,
|
|
DEFAULT_EVENT_DELAY) {
|
|
public void action() {
|
|
npc
|
|
.blockedBy(player);
|
|
sendChat(
|
|
"I'm sure he wouldn't want me to be killed by a vampire",
|
|
npc,
|
|
player);
|
|
addSingleEvent(new SingleEvent(
|
|
player,
|
|
DEFAULT_EVENT_DELAY) {
|
|
public void action() {
|
|
sendChat(
|
|
"I'll look him up then",
|
|
player,
|
|
npc);
|
|
addSingleEvent(new SingleEvent(
|
|
player,
|
|
DEFAULT_EVENT_DELAY) {
|
|
public void action() {
|
|
player
|
|
.setQuestStage(
|
|
getUniqueID(),
|
|
1); // Start
|
|
// quest
|
|
player
|
|
.setBusy(false);
|
|
npc
|
|
.unblock();
|
|
}
|
|
});
|
|
}
|
|
});
|
|
}
|
|
});
|
|
}
|
|
});
|
|
}
|
|
});
|
|
}
|
|
});
|
|
}
|
|
});
|
|
}
|
|
});
|
|
}
|
|
}
|
|
});
|
|
}
|
|
});
|
|
player.getActionSender()
|
|
.sendMenu(FIRST_MENU);
|
|
}
|
|
});
|
|
}
|
|
});
|
|
}
|
|
});
|
|
}
|
|
});
|
|
}
|
|
});
|
|
}
|
|
|
|
/**
|
|
* Handles Morgan's chat if the quest is started but not finished
|
|
*/
|
|
private void handleMorganTalk(final Player player, final Npc npc) {
|
|
player.setBusy(true);
|
|
npc.blockedBy(player);
|
|
sendChat("How are you doing with your quest?", npc, player);
|
|
addSingleEvent(new SingleEvent(player, DEFAULT_EVENT_DELAY) {
|
|
public void action() {
|
|
if (player.getQuestStage(getUniqueID()) == 1) {
|
|
npc.blockedBy(player);
|
|
sendChat("I'm working on it still", player, npc);
|
|
addSingleEvent(new SingleEvent(player, DEFAULT_EVENT_DELAY) {
|
|
public void action() {
|
|
npc.blockedBy(player);
|
|
sendChat("Please hurry", npc, player);
|
|
addSingleEvent(new SingleEvent(player,
|
|
DEFAULT_EVENT_DELAY) {
|
|
public void action() {
|
|
npc.blockedBy(player);
|
|
sendChat(
|
|
"Every day we live in fear of our lives",
|
|
npc, player);
|
|
addSingleEvent(new SingleEvent(player,
|
|
DEFAULT_EVENT_DELAY) {
|
|
public void action() {
|
|
sendChat(
|
|
"Afraid that we will be the vampire's next victim",
|
|
npc, player);
|
|
player.setBusy(false);
|
|
npc.unblock();
|
|
}
|
|
});
|
|
}
|
|
});
|
|
}
|
|
});
|
|
} else {
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
/**
|
|
* Handles Harlow's chat if the quest is started but not finished
|
|
*/
|
|
private void handleHarlowTalk(final Player player, final Npc npc) {
|
|
player.setBusy(true);
|
|
npc.blockedBy(player);
|
|
sendChat("Buy me a drrink pleassh", npc, player);
|
|
player.setBusy(false);
|
|
player.setMenuHandler(new MenuHandler(SECOND_MENU) {
|
|
public void handleReply(final int option, final String reply) {
|
|
player.setBusy(true);
|
|
npc.blockedBy(player);
|
|
sendChat(reply, player, npc);
|
|
addSingleEvent(new SingleEvent(player, DEFAULT_EVENT_DELAY) {
|
|
public void action() {
|
|
player.setBusy(false);
|
|
npc.unblock();
|
|
|
|
if (option == 0) {
|
|
sendChat("Fuck you", npc, player);
|
|
player.setBusy(false);
|
|
npc.unblock();
|
|
}
|
|
}
|
|
});
|
|
}
|
|
});
|
|
player.getActionSender().sendMenu(SECOND_MENU);
|
|
}
|
|
|
|
/**
|
|
* Finishes the quest
|
|
*/
|
|
private void finishQuest(final Player player, final Npc npc) {
|
|
}
|
|
|
|
/**
|
|
* Construct the quest (empty)
|
|
*/
|
|
public VampireSlayer() {
|
|
}
|
|
} |