Server/09HDscape-server/src/plugin/dialogue/SaniDialogue.java
2019-05-28 22:15:17 -08:00

152 lines
3.8 KiB
Java

package plugin.dialogue;
import org.crandor.game.content.dialogue.DialoguePlugin;
import org.crandor.game.content.skill.Skills;
import org.crandor.game.node.entity.npc.NPC;
import org.crandor.game.node.entity.player.Player;
import org.crandor.plugin.InitializablePlugin;
import org.crandor.game.system.mysql.impl.ShopSQLHandler;
/**
* Handles the SaniDialogue dialogue.
* @author Vexia
*
*/
@InitializablePlugin
public class SaniDialogue extends DialoguePlugin {
/**
* Constructs the {@code SaniDialgoue}
*/
public SaniDialogue() {
/*
* empty.
*/
}
/**
* Constructs the {@code SaniDialogue}
* @param player The player instance.
*/
public SaniDialogue(Player player) {
super(player);
}
@Override
public boolean open(Object... args) {
npc = (NPC) args[0];
npc("Greetings, " + player.getUsername(), "I sell weapons and armour.");
stage = 0;
return true;
}
@Override
public boolean handle(int interfaceId, int buttonId) {
switch (stage) {
case 0:
options("Let me see your stock.", "Where do I get other items, like gloves?", "How do I open these box sets?");
stage = 1;
break;
case 1:
switch (buttonId) {
case 1:
player("Let me see your stock.");
stage = 10;
break;
case 2:
player("Where do I get other items, like gloves and capes?");
stage = 20;
break;
case 3:
player("How do I open these box sets?");
stage = 30;
break;
}
break;
case 10:
options("Weapons", "Armour");
stage++;
break;
case 11:
switch (buttonId) {
case 1:
if (player.getSkills().getLevel(Skills.ATTACK) < 30) {
openWeaponShop(player, 204);
end();
break;
}
options("Weapons (Bronze - Mithril)", "Weapons (Adamant - Dragon)");
stage = 12;
break;
case 2:
end();
ShopSQLHandler.getShops().get(4905).open(player);
break;
}
break;
case 12:
switch (buttonId) {
case 1:
openWeaponShop(player, 204);
end();
break;
case 2:
openWeaponShop(player, 205);
end();
break;
}
break;
case 13:
end();
break;
case 20:
npc("Gloves of all kinds may be feely purchased from the", "Culinaromancer's chest below the Lumbridge Castle.", "On the other hand, high-tier armours can be obtained", "by defeating high-levelled bosses, like the Corporeal Beast.");
stage++;
break;
case 21:
npc("Bossing is not the only source of high-tier armour.", "Try Slayer or Barrows, catching Dragon Implings or", "perhaps even defeating monsters inside the TzHaar", "cave for fabled onyx equipment is more your style.");
stage++;
break;
case 22:
player("I see...", "So this means that you only sell common armours", "to help adventurers like nyself get started in the world", "of Keldagrim.");
stage++;
break;
case 23:
npc("Indeed, that is true. If you have any more questions", "The Keldagrim guide near the green portal should be able", "to assist you further.");
stage = 0;
break;
case 30:
player("How exactly do I open these box sets that you", "are selling?");
stage++;
break;
case 31:
npc("Take the box set to the Grand Exchange clerk. Right", "click her and select 'sets'. Next, right-click the box", "item that is in your inventory to exchange the set for", "the items that are inside the box.");
stage++;
break;
case 32:
npc("You may always convert the individual items back into", "a box set at any time in order to save banking", "space.");
stage = 0;
break;
}
return true;
}
/**
* Opens the weapon shop.
* @param player The player.
* @param uid The uid.
*/
private void openWeaponShop(Player player, int uid) {
ShopSQLHandler.openUid(player, uid);
}
@Override
public DialoguePlugin newInstance(Player player) {
return new SaniDialogue(player);
}
@Override
public int[] getIds() {
return new int[] { 4905 };
}
}