forked from 2009Scape/Server
152 lines
3.8 KiB
Java
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 };
|
|
}
|
|
}
|