From 87b15d9822948a4bb7469da98ec4327b8c40e283 Mon Sep 17 00:00:00 2001 From: Ceikry Date: Sat, 14 Mar 2020 08:24:45 -0500 Subject: [PATCH] Added Kazemde shop/dialogue --- .../interaction/city/nardah/Kazemde.java | 85 +++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 Server/src/plugin/interaction/city/nardah/Kazemde.java diff --git a/Server/src/plugin/interaction/city/nardah/Kazemde.java b/Server/src/plugin/interaction/city/nardah/Kazemde.java new file mode 100644 index 000000000..2bac87ae3 --- /dev/null +++ b/Server/src/plugin/interaction/city/nardah/Kazemde.java @@ -0,0 +1,85 @@ +package plugin.interaction.city.nardah; + +import org.crandor.cache.def.impl.NPCDefinition; +import org.crandor.game.content.dialogue.DialoguePlugin; +import org.crandor.game.interaction.OptionHandler; +import org.crandor.game.node.Node; +import org.crandor.game.node.entity.npc.NPC; +import org.crandor.game.node.entity.player.Player; +import org.crandor.plugin.InitializablePlugin; +import org.crandor.plugin.Plugin; + +/** + * Handles Kazemde, who runs the general store in Nardah. + * @author ceik + */ + +@InitializablePlugin +public class Kazemde extends OptionHandler { + public final int NPC_ID = 3039; + + @Override + public Plugin newInstance(Object arg) throws Throwable { + new KazemdeDialogue().init(); + NPCDefinition.forId(NPC_ID).getConfigurations().put("option:trade",this); + NPCDefinition.forId(NPC_ID).getConfigurations().put("option:talk-to",this); + return this; + } + + @Override + public final boolean handle(Player player, Node node, String string){ + NPC npc = node.asNpc(); + switch(string){ + case "trade": + npc.openShop(player); + break; + case "talk-to": + player.getDialogueInterpreter().open(NPC_ID); + break; + } + return true; + } + + final class KazemdeDialogue extends DialoguePlugin { + public KazemdeDialogue(){ + /** + * Empty + */ + } + public KazemdeDialogue(Player player){ + super(player); + } + + @Override + public DialoguePlugin newInstance(Player player){return new KazemdeDialogue(player);} + + @Override + public boolean open(Object... args){ + npc("Hello, and welcome to my shop."); + return true; + } + + @Override + public boolean handle(int interfaceId, int buttonId){ + switch(stage){ + case 0: + interpreter.sendOptions("Select one","Let me see what you have.","Goodbye."); + stage++; + break; + case 1: + switch(buttonId){ + case 1: + end(); + NPC Kazemde = new NPC(NPC_ID); + Kazemde.openShop(player); + break; + case 2: + end(); + break; + } + } + return true; + } + public int[] getIds() {return new int[] {NPC_ID};} + } +}