Fix: Shops, Examines, Objects, misc janitor work

This commit is contained in:
skelsoft
2021-07-02 04:32:22 +00:00
committed by Ceikry
parent d3ab24e053
commit f09e2a123b
7 changed files with 21106 additions and 20997 deletions
@@ -1,276 +1,276 @@
package core.game.content.dialogue;
import core.game.node.entity.npc.NPC;
import core.game.node.entity.player.Player;
import core.game.node.entity.player.link.diary.DiaryType;
import core.game.node.item.GroundItem;
import core.game.node.item.GroundItemManager;
import core.plugin.Initializable;
import core.game.node.item.Item;
/**
* Represents the dialogue plugin used for the apothecary npc.
* @author 'Vexia
* @version 1.0
*/
@Initializable
public final class ApothecaryDialogue extends DialoguePlugin {
/**
* Represents the potion requirements.
*/
private static final Item[] POTION_ITEMS = new Item[] { new Item(223), new Item(225), new Item(995, 5) };
/**
* Represents the potion item.
*/
private static final Item POTION = new Item(115);
/**
* Represents the unkown potion.
*/
private static final Item UNKNOWN_POTION = new Item(195, 1);
/**
* Represents the cadava berries item.
*/
private static final Item CADAVA_BERRIES = new Item(753);
/**
* Represents the cadava potion item.
*/
private static final Item CADAVA_POTION = new Item(756);
/**
* Constructs a new {@code ApothecaryDialogue} {@code Object}.
*/
public ApothecaryDialogue() {
/**
* empty.
*/
}
/**
* Constructs a new {@code ApothecaryDialogue} {@code Object}.
* @param player the player.
*/
public ApothecaryDialogue(Player player) {
super(player);
}
@Override
public DialoguePlugin newInstance(Player player) {
return new ApothecaryDialogue(player);
}
@Override
public boolean open(Object... args) {
npc = (NPC) args[0];
if (player.getQuestRepository().getQuest("Romeo & Juliet").getStage(player) == 40) {
interpreter.sendDialogues(player, null, "Apothecary. Father Lawrence sent me.");
stage = 500;
return true;
}
if (player.getQuestRepository().getQuest("Romeo & Juliet").getStage(player) == 50) {
if (!player.getInventory().contains(753, 1)) {
npc("Keep searching for those Cadavaberries. They're needed", "for the potion.");
stage = 507;
return true;
} else {
npc("Well done. You have the berries.");
stage = 637;
return true;
}
}
if (player.getQuestRepository().getQuest("Romeo & Juliet").getStage(player) == 60) {
if (!player.getInventory().contains(756, 1) && !player.getBank().contains(756, 1)) {
if (player.getInventory().contains(753, 1)) {
npc("Well done. You have the berries.");
stage = 637;
return true;
} else {
npc("Keep searching for those Cadavaberries. They're needed", "for the potion.");
stage = 507;
return true;
}
} else {
npc("I am the Apothecary. I brew potions.", "Do you need anything specific?");
}
}
npc("I am the Apothecary. I brew potions.", "Do you need anything specific?");
stage = 1;
return true;
}
@Override
public boolean handle(int interfaceId, int buttonId) {
switch (stage) {
case 1:
options("Can you make a strength potion?", "Do you know a potion to mame hair fall out?", "Have you got any good potions to give away?", "Can you make a potion that makes it seem like I'm dead?");
stage = 2;
break;
case 2:
switch (buttonId) {
case 1:
player("Can you make a strength potion?");
stage = 10;
break;
case 2:
player("Do you know a potion to make hair fall out?");
stage = 20;
break;
case 3:
player("Have you got any good potions to give away?");
stage = 140;
break;
case 4:
player("Can you make a potion that makes it seems like I'm dead?");
stage = 40;
break;
}
break;
case 10:
if (player.getInventory().containItems(223, 225)) {
npc("Certainly, just hand over the ingredients and 5 coins.");
stage = 50;
return true;
}
npc("Yes, but the ingredients are a little hard to find. If you", "ever get them I will make it for you, for a fee.");
stage = 11;
break;
case 50:
if (!player.getInventory().contains(995, 5)) {
end();
player.getPacketDispatch().sendMessage("You need 5 gold coins to do that.");
return true;
}
interpreter.sendDialogue("You hand over the ingredients and money.");
stage = 51;
break;
case 51:
if (player.getInventory().remove(POTION_ITEMS)) {
player.getInventory().add(POTION);
end();
player.getAchievementDiaryManager().finishTask(player, DiaryType.VARROCK, 1, 0);
}
break;
case 11:
player("So what are the ingredients?");
stage = 12;
break;
case 12:
npc("You'll need to find the eggs of the deadly red spider and a", "limpwurt root.");
stage = 13;
break;
case 13:
npc("Oh and you'll have to pay me 5 coins.");
stage = 14;
break;
case 14:
player("Ok, I'll look out for them.");
stage = 15;
break;
case 15:
end();
break;
case 20:
npc("I do indeed. I gave it to my mother. That's why I now live", "alone.");
stage = 21;
break;
case 21:
end();
break;
case 30:
npc("Ok then. Try this potion.");
player.getInventory().add(UNKNOWN_POTION);
stage = 31;
break;
case 31:
end();
break;
case 40:
npc("What a strange and morbid request! I can as it happens.", "The berry of the cadava bush, prepared properly, will", "induce a coma so deep that you will seem to be dead. It's", "very dangerous.");
stage = 41;
break;
case 41:
npc("I have the other ingredients, but I'll need you to bring me", "one bunch of cadava berries.");
stage = 42;
break;
case 42:
player("I'll bear that in mind.");
stage = 43;
break;
case 43:
end();
break;
case 140:
npc("Sorry, charity is not my strong point.");
stage = 141;
break;
case 141:
end();
break;
case 500:
interpreter.sendDialogues(player, null, "I need a Cadava potion to help Romeo and Juliet.");
stage = 501;
break;
case 501:
interpreter.sendDialogues(npc, null, "Cadava potion. It's pretty nasty. And hard to make.");
stage = 502;
break;
case 502:
interpreter.sendDialogues(npc, null, "Wing of rat, tail of frog.", "Ear of snake and horn of dog.");
stage = 503;
break;
case 503:
interpreter.sendDialogues(npc, null, "I have all that, but i need some Cadava berries.");
stage = 504;
break;
case 504:
interpreter.sendDialogues(npc, null, "You will have to find them while I get the rest ready.");
stage = 505;
break;
case 505:
interpreter.sendDialogues(npc, null, "Bring them here when you have them. But be careful.", "They are nasty.");
stage = 506;
break;
case 506:
player.getQuestRepository().getQuest("Romeo & Juliet").setStage(player, 50);
interpreter.sendDialogues(player, null, "Ok, thanks.");
stage = 507;
break;
case 507:
end();
break;
case 637:
interpreter.sendItemMessage(753, "You hand over the berries.");
stage = 638;
break;
case 638:
if (player.getInventory().remove(CADAVA_BERRIES)) {
npc("Phew! Here is what you need.");
}
stage = 639;
break;
case 639:
if (!player.getInventory().add(CADAVA_POTION)) {
GroundItemManager.create(new GroundItem(CADAVA_POTION, player.getLocation(), player));
}
interpreter.sendItemMessage(756, "The Apothecary gives you a Cavada potion.");
stage = 640;
break;
case 640:
player.getQuestRepository().getQuest("Romeo & Juliet").setStage(player, 60);
end();
break;
}
return true;
}
@Override
public int[] getIds() {
return new int[] { 638 };
}
}
package core.game.content.dialogue;
import core.game.node.entity.npc.NPC;
import core.game.node.entity.player.Player;
import core.game.node.entity.player.link.diary.DiaryType;
import core.game.node.item.GroundItem;
import core.game.node.item.GroundItemManager;
import core.plugin.Initializable;
import core.game.node.item.Item;
/**
* Represents the dialogue plugin used for the apothecary npc.
* @author 'Vexia
* @version 1.0
*/
@Initializable
public final class ApothecaryDialogue extends DialoguePlugin {
/**
* Represents the potion requirements.
*/
private static final Item[] POTION_ITEMS = new Item[] { new Item(223), new Item(225), new Item(995, 5) };
/**
* Represents the potion item.
*/
private static final Item POTION = new Item(115);
/**
* Represents the unkown potion.
*/
private static final Item UNKNOWN_POTION = new Item(195, 1);
/**
* Represents the cadava berries item.
*/
private static final Item CADAVA_BERRIES = new Item(753);
/**
* Represents the cadava potion item.
*/
private static final Item CADAVA_POTION = new Item(756);
/**
* Constructs a new {@code ApothecaryDialogue} {@code Object}.
*/
public ApothecaryDialogue() {
/**
* empty.
*/
}
/**
* Constructs a new {@code ApothecaryDialogue} {@code Object}.
* @param player the player.
*/
public ApothecaryDialogue(Player player) {
super(player);
}
@Override
public DialoguePlugin newInstance(Player player) {
return new ApothecaryDialogue(player);
}
@Override
public boolean open(Object... args) {
npc = (NPC) args[0];
if (player.getQuestRepository().getQuest("Romeo & Juliet").getStage(player) == 40) {
interpreter.sendDialogues(player, null, "Apothecary. Father Lawrence sent me.");
stage = 500;
return true;
}
if (player.getQuestRepository().getQuest("Romeo & Juliet").getStage(player) == 50) {
if (!player.getInventory().contains(753, 1)) {
npc("Keep searching for those Cadava berries. They're needed", "for the potion.");
stage = 507;
return true;
} else {
npc("Well done. You have the berries.");
stage = 637;
return true;
}
}
if (player.getQuestRepository().getQuest("Romeo & Juliet").getStage(player) == 60) {
if (!player.getInventory().contains(756, 1) && !player.getBank().contains(756, 1)) {
if (player.getInventory().contains(753, 1)) {
npc("Well done. You have the berries.");
stage = 637;
return true;
} else {
npc("Keep searching for those Cadava berries. They're needed", "for the potion.");
stage = 507;
return true;
}
} else {
npc("I am the Apothecary. I brew potions.", "Do you need anything specific?");
}
}
npc("I am the Apothecary. I brew potions.", "Do you need anything specific?");
stage = 1;
return true;
}
@Override
public boolean handle(int interfaceId, int buttonId) {
switch (stage) {
case 1:
options("Can you make a strength potion?", "Do you know a potion to make hair fall out?", "Have you got any good potions to give away?", "Can you make a potion that makes it seem like I'm dead?");
stage = 2;
break;
case 2:
switch (buttonId) {
case 1:
player("Can you make a strength potion?");
stage = 10;
break;
case 2:
player("Do you know a potion to make hair fall out?");
stage = 20;
break;
case 3:
player("Have you got any good potions to give away?");
stage = 140;
break;
case 4:
player("Can you make a potion that makes it seems like I'm dead?");
stage = 40;
break;
}
break;
case 10:
if (player.getInventory().containItems(223, 225)) {
npc("Certainly, just hand over the ingredients and 5 coins.");
stage = 50;
return true;
}
npc("Yes, but the ingredients are a little hard to find. If you", "ever get them I will make it for you, for a fee.");
stage = 11;
break;
case 50:
if (!player.getInventory().contains(995, 5)) {
end();
player.getPacketDispatch().sendMessage("You need 5 gold coins to do that.");
return true;
}
interpreter.sendDialogue("You hand over the ingredients and money.");
stage = 51;
break;
case 51:
if (player.getInventory().remove(POTION_ITEMS)) {
player.getInventory().add(POTION);
end();
player.getAchievementDiaryManager().finishTask(player, DiaryType.VARROCK, 1, 0);
}
break;
case 11:
player("So what are the ingredients?");
stage = 12;
break;
case 12:
npc("You'll need to find the eggs of the deadly red spider and a", "limpwurt root.");
stage = 13;
break;
case 13:
npc("Oh and you'll have to pay me 5 coins.");
stage = 14;
break;
case 14:
player("Ok, I'll look out for them.");
stage = 15;
break;
case 15:
end();
break;
case 20:
npc("I do indeed. I gave it to my mother. That's why I now live", "alone.");
stage = 21;
break;
case 21:
end();
break;
case 30:
npc("Ok then. Try this potion.");
player.getInventory().add(UNKNOWN_POTION);
stage = 31;
break;
case 31:
end();
break;
case 40:
npc("What a strange and morbid request! I can as it happens.", "The berry of the cadava bush, prepared properly, will", "induce a coma so deep that you will seem to be dead. It's", "very dangerous.");
stage = 41;
break;
case 41:
npc("I have the other ingredients, but I'll need you to bring me", "one bunch of cadava berries.");
stage = 42;
break;
case 42:
player("I'll bear that in mind.");
stage = 43;
break;
case 43:
end();
break;
case 140:
npc("Sorry, charity is not my strong point.");
stage = 141;
break;
case 141:
end();
break;
case 500:
interpreter.sendDialogues(player, null, "I need a Cadava potion to help Romeo and Juliet.");
stage = 501;
break;
case 501:
interpreter.sendDialogues(npc, null, "Cadava potion. It's pretty nasty. And hard to make.");
stage = 502;
break;
case 502:
interpreter.sendDialogues(npc, null, "Wing of rat, tail of frog.", "Ear of snake and horn of dog.");
stage = 503;
break;
case 503:
interpreter.sendDialogues(npc, null, "I have all that, but I need some Cadava berries.");
stage = 504;
break;
case 504:
interpreter.sendDialogues(npc, null, "You will have to find them while I get the rest ready.");
stage = 505;
break;
case 505:
interpreter.sendDialogues(npc, null, "Bring them here when you have them. But be careful.", "They are nasty.");
stage = 506;
break;
case 506:
player.getQuestRepository().getQuest("Romeo & Juliet").setStage(player, 50);
interpreter.sendDialogues(player, null, "Ok, thanks.");
stage = 507;
break;
case 507:
end();
break;
case 637:
interpreter.sendItemMessage(753, "You hand over the berries.");
stage = 638;
break;
case 638:
if (player.getInventory().remove(CADAVA_BERRIES)) {
npc("Phew! Here is what you need.");
}
stage = 639;
break;
case 639:
if (!player.getInventory().add(CADAVA_POTION)) {
GroundItemManager.create(new GroundItem(CADAVA_POTION, player.getLocation(), player));
}
interpreter.sendItemMessage(756, "The Apothecary gives you a Cadava potion.");
stage = 640;
break;
case 640:
player.getQuestRepository().getQuest("Romeo & Juliet").setStage(player, 60);
end();
break;
}
return true;
}
@Override
public int[] getIds() {
return new int[] { 638 };
}
}
@@ -1,181 +1,181 @@
package core.game.content.dialogue;
import core.game.node.entity.npc.NPC;
import core.game.node.entity.player.Player;
import core.plugin.Initializable;
import core.game.node.entity.player.link.quest.Quest;
/**
* Represents the father lawrence dialogue plugin.
* @author 'Vexia
* @version 1.0
*/
@Initializable
public final class FatherLawrenceDialogue extends DialoguePlugin {
/**
* Constructs a new {@code FatherLawrenceDialogue} {@code Object}.
*/
public FatherLawrenceDialogue() {
/**
* empty.
*/
}
/**
* Constructs a new {@code FatherLawrenceDialogu} {@code Object}.
* @param player the player.
*/
public FatherLawrenceDialogue(Player player) {
super(player);
}
@Override
public boolean open(Object... args) {
npc = (NPC) args[0];
final Quest quest = player.getQuestRepository().getQuest("Romeo & Juliet");
if (quest.getStage(player) < 30) {
interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "Oh to be a father in the times of whiskey.");
stage = 0;
}
switch (quest.getStage(player)) {
case 30:
interpreter.sendDialogues(npc, null, "\"...and let Saradomin light the way for you... \"", "Urgh!");
stage = 41;
break;
case 40:
interpreter.sendDialogues(npc, null, "Ah, have you found the Apothecary yet? Remember,", "Cadava potion, for Juliet.");
stage = 30;
break;
case 50:
interpreter.sendDialogues(npc, null, "Did you find the Apothecary?");
stage = 820;
break;
case 60:
case 70:
interpreter.sendDialogues(npc, null, "Did you find the Apothecary?");
stage = 820;
break;
case 100:
player("Hi again!");
stage = 0;
break;
}
return true;
}
@Override
public boolean handle(int interfaceId, int buttonId) {
final Quest quest = player.getQuestRepository().getQuest("Romeo & Juliet");
switch (stage) {
case 0:
interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "I sing and I drink and I wake up in gutters.");
stage = 1;
break;
case 1:
interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "Top of the morning to you.");
stage = 2;
break;
case 2:
end();
break;
case 41:
interpreter.sendDialogues(npc, null, "Can't you see that I'm in the middle of a Sermon?!");
stage = 42;
break;
case 42:
interpreter.sendDialogues(player, null, "But Romeo sent me!");
stage = 43;
break;
case 43:
interpreter.sendDialogues(npc, null, "But I'm busy delivering a sermon to my congregation!");
stage = 44;
break;
case 44:
interpreter.sendDialogues(player, null, "Yes well it certainly seems like you have a captive", "audience!");
stage = 45;
break;
case 45:
interpreter.sendDialogues(npc, null, "Ok, ok...what do you want so I can get rid of you and", "continue with my sermon?");
stage = 46;
break;
case 46:
interpreter.sendDialogues(player, null, "Romeo sent me. He says you may be able to help.");
stage = 47;
break;
case 47:
interpreter.sendDialogues(npc, null, "Ah Romeo, yes. A fine lad, but a little bit confused.");
stage = 48;
break;
case 48:
interpreter.sendDialogues(player, null, "Yes, very confused...Anyway, Romeo wishes to be", "married to Juliet! She must be rescued from her", "father's control!");
stage = 49;
break;
case 49:
interpreter.sendDialogues(npc, null, "I agree, and I think I have an idea! A potion to make", "her appear dead...");
stage = 50;
break;
case 50:
interpreter.sendDialogues(player, null, "Dead! Sounds a bit creepy to me...but please, continue.");
stage = 51;
break;
case 51:
interpreter.sendDialogues(npc, null, "The potion will only make Juliet 'appear' dead...then", "she'll be taken to the crypt...");
stage = 52;
break;
case 52:
interpreter.sendDialogues(player, null, "Crypt! Again...very creepy! You must have some", "strange hobbies.");
stage = 53;
break;
case 53:
interpreter.sendDialogues(npc, null, "Then Romeo can collect her from the crypt! Go to the", "Apothercary, tell him I sent you and that you'll need a", "'Cadava' potion.");
stage = 54;
break;
case 54:
interpreter.sendDialogues(player, null, "Apart from the strong overtones of death, this is", "turning out to be a real love story.");
stage = 55;
break;
case 55:
quest.setStage(player, 40);
end();
break;
case 30:
end();
break;
case 820:
interpreter.sendDialogues(player, null, "Yes I did. He's told me I must find some Cadava", "berries.");
stage = 821;
break;
case 821:
interpreter.sendDialogues(npc, null, "Well, good luck with that...they're quite tricky to find.");
stage = 822;
break;
case 822:
interpreter.sendDialogues(player, null, "Any clues where I can start to look?");
stage = 823;
break;
case 823:
interpreter.sendDialogues(npc, null, "I heard some kids saying they saw some the other day.", "They were visiting the mining place to the south east", "Varrock.");
stage = 824;
break;
case 824:
interpreter.sendDialogues(player, null, "Ok, that's as good a place to start looking as any.");
stage = 825;
break;
case 825:
end();
break;
}
return true;
}
@Override
public DialoguePlugin newInstance(Player player) {
return new FatherLawrenceDialogue(player);
}
@Override
public int[] getIds() {
return new int[] { 640 };
}
}
package core.game.content.dialogue;
import core.game.node.entity.npc.NPC;
import core.game.node.entity.player.Player;
import core.plugin.Initializable;
import core.game.node.entity.player.link.quest.Quest;
/**
* Represents the father lawrence dialogue plugin.
* @author 'Vexia
* @version 1.0
*/
@Initializable
public final class FatherLawrenceDialogue extends DialoguePlugin {
/**
* Constructs a new {@code FatherLawrenceDialogue} {@code Object}.
*/
public FatherLawrenceDialogue() {
/**
* empty.
*/
}
/**
* Constructs a new {@code FatherLawrenceDialogu} {@code Object}.
* @param player the player.
*/
public FatherLawrenceDialogue(Player player) {
super(player);
}
@Override
public boolean open(Object... args) {
npc = (NPC) args[0];
final Quest quest = player.getQuestRepository().getQuest("Romeo & Juliet");
if (quest.getStage(player) < 30) {
interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "Oh to be a father in the times of whiskey.");
stage = 0;
}
switch (quest.getStage(player)) {
case 30:
interpreter.sendDialogues(npc, null, "\"...and let Saradomin light the way for you... \"", "Urgh!");
stage = 41;
break;
case 40:
interpreter.sendDialogues(npc, null, "Ah, have you found the Apothecary yet? Remember,", "Cadava potion, for Juliet.");
stage = 30;
break;
case 50:
interpreter.sendDialogues(npc, null, "Did you find the Apothecary?");
stage = 820;
break;
case 60:
case 70:
interpreter.sendDialogues(npc, null, "Did you find the Apothecary?");
stage = 820;
break;
case 100:
player("Hi again!");
stage = 0;
break;
}
return true;
}
@Override
public boolean handle(int interfaceId, int buttonId) {
final Quest quest = player.getQuestRepository().getQuest("Romeo & Juliet");
switch (stage) {
case 0:
interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "I sing and I drink and I wake up in gutters.");
stage = 1;
break;
case 1:
interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "Top of the morning to you.");
stage = 2;
break;
case 2:
end();
break;
case 41:
interpreter.sendDialogues(npc, null, "Can't you see that I'm in the middle of a sermon?!");
stage = 42;
break;
case 42:
interpreter.sendDialogues(player, null, "But Romeo sent me!");
stage = 43;
break;
case 43:
interpreter.sendDialogues(npc, null, "But I'm busy delivering a sermon to my congregation!");
stage = 44;
break;
case 44:
interpreter.sendDialogues(player, null, "Yes well it certainly seems like you have a captive", "audience!");
stage = 45;
break;
case 45:
interpreter.sendDialogues(npc, null, "Ok, ok...what do you want so I can get rid of you and", "continue with my sermon?");
stage = 46;
break;
case 46:
interpreter.sendDialogues(player, null, "Romeo sent me. He says you may be able to help.");
stage = 47;
break;
case 47:
interpreter.sendDialogues(npc, null, "Ah Romeo, yes. A fine lad, but a little bit confused.");
stage = 48;
break;
case 48:
interpreter.sendDialogues(player, null, "Yes, very confused...Anyway, Romeo wishes to be", "married to Juliet! She must be rescued from her", "father's control!");
stage = 49;
break;
case 49:
interpreter.sendDialogues(npc, null, "I agree, and I think I have an idea! A potion to make", "her appear dead...");
stage = 50;
break;
case 50:
interpreter.sendDialogues(player, null, "Dead! Sounds a bit creepy to me...but please, continue.");
stage = 51;
break;
case 51:
interpreter.sendDialogues(npc, null, "The potion will only make Juliet 'appear' dead...then", "she'll be taken to the crypt...");
stage = 52;
break;
case 52:
interpreter.sendDialogues(player, null, "Crypt! Again...very creepy! You must have some", "strange hobbies.");
stage = 53;
break;
case 53:
interpreter.sendDialogues(npc, null, "Then Romeo can collect her from the crypt! Go to the", "Apothercary, tell him I sent you and that you'll need a", "'Cadava' potion.");
stage = 54;
break;
case 54:
interpreter.sendDialogues(player, null, "Apart from the strong overtones of death, this is", "turning out to be a real love story.");
stage = 55;
break;
case 55:
quest.setStage(player, 40);
end();
break;
case 30:
end();
break;
case 820:
interpreter.sendDialogues(player, null, "Yes I did. He's told me I must find some Cadava", "berries.");
stage = 821;
break;
case 821:
interpreter.sendDialogues(npc, null, "Well, good luck with that...they're quite tricky to find.");
stage = 822;
break;
case 822:
interpreter.sendDialogues(player, null, "Any clues where I can start to look?");
stage = 823;
break;
case 823:
interpreter.sendDialogues(npc, null, "I heard some kids saying they saw some the other day.", "They were visiting the mining place to the south east", "Varrock.");
stage = 824;
break;
case 824:
interpreter.sendDialogues(player, null, "Ok, that's as good a place to start looking as any.");
stage = 825;
break;
case 825:
end();
break;
}
return true;
}
@Override
public DialoguePlugin newInstance(Player player) {
return new FatherLawrenceDialogue(player);
}
@Override
public int[] getIds() {
return new int[] { 640 };
}
}
@@ -1,224 +1,224 @@
package core.game.content.dialogue;
import core.game.node.entity.player.Player;
import core.game.node.entity.player.link.quest.Quest;
import core.plugin.Initializable;
import core.game.node.item.Item;
/**
* Represents the dialogue plugin used for the hetty npc.
* @author 'Vexia
* @version 1.0
*/
@Initializable
public final class HettyDialogue extends DialoguePlugin {
/**
* Constructs a new {@code HettyDialogue} {@code Object}.
*/
public HettyDialogue() {
/**
* empty.
*/
}
/**
* Constructs a new {@code HettyDialogue} {@code Object}.
* @param player the player.
*/
public HettyDialogue(Player player) {
super(player);
}
@Override
public DialoguePlugin newInstance(Player player) {
return new HettyDialogue(player);
}
@Override
public boolean open(Object... args) {
Quest quest = player.getQuestRepository().getQuest("Witch's Potion");
if (quest.isCompleted(player)) {
interpreter.sendDialogues(307, FacialExpression.HALF_GUILTY, "How's your magic coming along?");
stage = 0;
}
switch (quest.getStage(player)) {
case 0:
interpreter.sendDialogues(307, FacialExpression.HALF_GUILTY, "What could you want with an old woman like me?");
stage = 11;
break;
case 20:
interpreter.sendDialogues(307, FacialExpression.HALF_GUILTY, "So have you found the things for the potion?");
stage = 100;
break;
case 40:
if (args.length == 2) {
interpreter.sendDialogue("You drink from the cauldron, it tastes horrible! You feel yourself", "imbued with power.");
stage = 41;
} else {
interpreter.sendDialogues(307, FacialExpression.HALF_GUILTY, "Well are you going to drink the potion or not?");
stage = 500;
}
break;
}
return true;
}
@Override
public boolean handle(int interfaceId, int buttonId) {
Quest quest = player.getQuestRepository().getQuest("Witch's Potion");
switch (stage) {
case 0:
interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "I'm practicing and slowly getting better.");
stage = 1;
break;
case 1:
interpreter.sendDialogues(307, FacialExpression.HALF_GUILTY, "Good, good.");
stage = 2;
break;
case 2:
end();
break;
case 11:
interpreter.sendOptions("Select an Option", "I am in search of a quest.", "I've heard that you are a witch.");
stage = 12;
break;
case 12:
switch (buttonId) {
case 1:
interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "I am in search of a quest.");
stage = 13;
break;
case 2:
interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "I've heard that you are a witch.");
stage = 20;
break;
}
break;
case 13:
interpreter.sendDialogues(307, FacialExpression.HALF_GUILTY, "Hmmm... Maybe I can think of something for you.");
stage = 14;
break;
case 14:
interpreter.sendDialogues(307, FacialExpression.HALF_GUILTY, "Would you like to become more proficient in the dark", "arts?");
stage = 15;
break;
case 15:
interpreter.sendOptions("Select an Option", "Yes help me become one with my darker side.", "No I have my prinicples and honour.");
stage = 16;
break;
case 16:
switch (buttonId) {
case 1:
interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "Yes help me become one with my darker side.");
stage = 30;
break;
case 2:
interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "No I have m principles and honour.");
stage = 17;
break;
}
break;
case 17:
interpreter.sendDialogues(307, FacialExpression.HALF_GUILTY, "Suit yourself, but you're missing out.");
stage = 18;
break;
case 18:
end();
break;
case 20:
interpreter.sendDialogues(307, FacialExpression.HALF_GUILTY, "Yes it does seem to be getting fairly common", "knowledge.");
stage = 21;
break;
case 21:
interpreter.sendDialogues(307, FacialExpression.HALF_GUILTY, "I fear I may get a visit from the witch hunter of", "Falador before long.");
stage = 22;
break;
case 22:
end();
break;
case 30:
interpreter.sendDialogues(307, FacialExpression.HALF_GUILTY, "Ok I'm going to make a potion to help bring out your", "darker self.");
stage = 31;
break;
case 31:
interpreter.sendDialogues(307, FacialExpression.HALF_GUILTY, "You will need certain ingredients.");
stage = 32;
break;
case 32:
interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "What do i need?");
stage = 33;
break;
case 33:
interpreter.sendDialogues(307, FacialExpression.HALF_GUILTY, "You need an eye of newt, a rat's tail, and onion... Oh", "and a piece of burnt meat.");
stage = 34;
break;
case 34:
interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "Great, I'll go get them.");
stage = 35;
break;
case 35:
quest.start(player);
quest.setStage(player, 20);
end();
break;
case 100:
// Her:Well I can't make the potion without them!
// Remember.../You
// need an eye of newt, a rat's tail, an onion, and a/piece of
// burnt
// meat. Off you go dear! Me:end();
if (!player.getInventory().containItems(1957, 300, 2146, 221)) {
interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "I'm afraid I don't have all of them yet.");
stage = 101;
} else {
interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "Yes I have everything!");
stage = 110;
}
break;
case 110:
interpreter.sendDialogues(307, FacialExpression.HALF_GUILTY, "Excellent, can I have them then?");
stage = 111;
break;
case 111:
interpreter.sendDialogue("You pass the ingredients to Hetty and she puts them all into her", "cauldron. Hetty closes her eyes and begins to chant. The cauldron", "bubbles mysteriously.");
stage = 112;
break;
case 112:
interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "Well, is it ready?");
stage = 113;
break;
case 113:
if (player.getInventory().remove(new Item(1957), new Item(300), new Item(2146), new Item(221))) {
quest.setStage(player, 40);
interpreter.sendDialogues(307, FacialExpression.HALF_GUILTY, "Ok, now drink from the cauldron.");
stage = 114;
}
break;
case 114:
end();
break;
case 101:
interpreter.sendDialogues(307, FacialExpression.HALF_GUILTY, "Well I can't make the potion without them! Remember...", "You need an eye of newt, a rat's tail, an onion, and a", "You need an eye of newt, a rat's tail, an onion, and a", "piece of burnt meat. Off you go dear!");
stage = 102;
break;
case 102:
end();
break;
case 500:
end();
break;
case 41:
end();
quest.finish(player);
player.getQuestRepository().syncronizeTab(player);
break;
}
return true;
}
@Override
public int[] getIds() {
return new int[] { 307 };
}
}
package core.game.content.dialogue;
import core.game.node.entity.player.Player;
import core.game.node.entity.player.link.quest.Quest;
import core.plugin.Initializable;
import core.game.node.item.Item;
/**
* Represents the dialogue plugin used for the hetty npc.
* @author 'Vexia
* @version 1.0
*/
@Initializable
public final class HettyDialogue extends DialoguePlugin {
/**
* Constructs a new {@code HettyDialogue} {@code Object}.
*/
public HettyDialogue() {
/**
* empty.
*/
}
/**
* Constructs a new {@code HettyDialogue} {@code Object}.
* @param player the player.
*/
public HettyDialogue(Player player) {
super(player);
}
@Override
public DialoguePlugin newInstance(Player player) {
return new HettyDialogue(player);
}
@Override
public boolean open(Object... args) {
Quest quest = player.getQuestRepository().getQuest("Witch's Potion");
if (quest.isCompleted(player)) {
interpreter.sendDialogues(307, FacialExpression.HALF_GUILTY, "How's your magic coming along?");
stage = 0;
}
switch (quest.getStage(player)) {
case 0:
interpreter.sendDialogues(307, FacialExpression.HALF_GUILTY, "What could you want with an old woman like me?");
stage = 11;
break;
case 20:
interpreter.sendDialogues(307, FacialExpression.HALF_GUILTY, "So have you found the things for the potion?");
stage = 100;
break;
case 40:
if (args.length == 2) {
interpreter.sendDialogue("You drink from the cauldron, it tastes horrible! You feel yourself", "imbued with power.");
stage = 41;
} else {
interpreter.sendDialogues(307, FacialExpression.HALF_GUILTY, "Well are you going to drink the potion or not?");
stage = 500;
}
break;
}
return true;
}
@Override
public boolean handle(int interfaceId, int buttonId) {
Quest quest = player.getQuestRepository().getQuest("Witch's Potion");
switch (stage) {
case 0:
interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "I'm practicing and slowly getting better.");
stage = 1;
break;
case 1:
interpreter.sendDialogues(307, FacialExpression.HALF_GUILTY, "Good, good.");
stage = 2;
break;
case 2:
end();
break;
case 11:
interpreter.sendOptions("Select an Option", "I am in search of a quest.", "I've heard that you are a witch.");
stage = 12;
break;
case 12:
switch (buttonId) {
case 1:
interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "I am in search of a quest.");
stage = 13;
break;
case 2:
interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "I've heard that you are a witch.");
stage = 20;
break;
}
break;
case 13:
interpreter.sendDialogues(307, FacialExpression.HALF_GUILTY, "Hmmm... Maybe I can think of something for you.");
stage = 14;
break;
case 14:
interpreter.sendDialogues(307, FacialExpression.HALF_GUILTY, "Would you like to become more proficient in the dark", "arts?");
stage = 15;
break;
case 15:
interpreter.sendOptions("Select an Option", "Yes help me become one with my darker side.", "No I have my prinicples and honour.");
stage = 16;
break;
case 16:
switch (buttonId) {
case 1:
interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "Yes help me become one with my darker side.");
stage = 30;
break;
case 2:
interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "No I have m principles and honour.");
stage = 17;
break;
}
break;
case 17:
interpreter.sendDialogues(307, FacialExpression.HALF_GUILTY, "Suit yourself, but you're missing out.");
stage = 18;
break;
case 18:
end();
break;
case 20:
interpreter.sendDialogues(307, FacialExpression.HALF_GUILTY, "Yes it does seem to be getting fairly common", "knowledge.");
stage = 21;
break;
case 21:
interpreter.sendDialogues(307, FacialExpression.HALF_GUILTY, "I fear I may get a visit from the witch hunter of", "Falador before long.");
stage = 22;
break;
case 22:
end();
break;
case 30:
interpreter.sendDialogues(307, FacialExpression.HALF_GUILTY, "Ok I'm going to make a potion to help bring out your", "darker self.");
stage = 31;
break;
case 31:
interpreter.sendDialogues(307, FacialExpression.HALF_GUILTY, "You will need certain ingredients.");
stage = 32;
break;
case 32:
interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "What do I need?");
stage = 33;
break;
case 33:
interpreter.sendDialogues(307, FacialExpression.HALF_GUILTY, "You need an eye of newt, a rat's tail, and onion... Oh", "and a piece of burnt meat.");
stage = 34;
break;
case 34:
interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "Great, I'll go get them.");
stage = 35;
break;
case 35:
quest.start(player);
quest.setStage(player, 20);
end();
break;
case 100:
// Her:Well I can't make the potion without them!
// Remember.../You
// need an eye of newt, a rat's tail, an onion, and a/piece of
// burnt
// meat. Off you go dear! Me:end();
if (!player.getInventory().containItems(1957, 300, 2146, 221)) {
interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "I'm afraid I don't have all of them yet.");
stage = 101;
} else {
interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "Yes I have everything!");
stage = 110;
}
break;
case 110:
interpreter.sendDialogues(307, FacialExpression.HALF_GUILTY, "Excellent, can I have them then?");
stage = 111;
break;
case 111:
interpreter.sendDialogue("You pass the ingredients to Hetty and she puts them all into her", "cauldron. Hetty closes her eyes and begins to chant. The cauldron", "bubbles mysteriously.");
stage = 112;
break;
case 112:
interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "Well, is it ready?");
stage = 113;
break;
case 113:
if (player.getInventory().remove(new Item(1957), new Item(300), new Item(2146), new Item(221))) {
quest.setStage(player, 40);
interpreter.sendDialogues(307, FacialExpression.HALF_GUILTY, "Ok, now drink from the cauldron.");
stage = 114;
}
break;
case 114:
end();
break;
case 101:
interpreter.sendDialogues(307, FacialExpression.HALF_GUILTY, "Well I can't make the potion without them! Remember...", "You need an eye of newt, a rat's tail, an onion, and a", "You need an eye of newt, a rat's tail, an onion, and a", "piece of burnt meat. Off you go dear!");
stage = 102;
break;
case 102:
end();
break;
case 500:
end();
break;
case 41:
end();
quest.finish(player);
player.getQuestRepository().syncronizeTab(player);
break;
}
return true;
}
@Override
public int[] getIds() {
return new int[] { 307 };
}
}