From 9729514eecc94958f2e4ff1254bf32c2998aafe5 Mon Sep 17 00:00:00 2001 From: CSS-Lletya Date: Sun, 29 Mar 2020 13:35:47 -0400 Subject: [PATCH] Security Guard Dialogue --- .../interaction/npc/SecurityGuardPlugin.java | 66 +++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 Server/src/plugin/interaction/npc/SecurityGuardPlugin.java diff --git a/Server/src/plugin/interaction/npc/SecurityGuardPlugin.java b/Server/src/plugin/interaction/npc/SecurityGuardPlugin.java new file mode 100644 index 000000000..cae820974 --- /dev/null +++ b/Server/src/plugin/interaction/npc/SecurityGuardPlugin.java @@ -0,0 +1,66 @@ +package plugin.interaction.npc; + +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.game.node.item.Item; +import org.crandor.plugin.InitializablePlugin; +import org.crandor.plugin.Plugin; +import org.crandor.plugin.PluginManager; +import org.crandor.tools.ItemNames; + +@InitializablePlugin +public final class SecurityGuardPlugin extends OptionHandler { + + @Override + public Plugin newInstance(Object arg) throws Throwable { + PluginManager.definePlugin(new SecurityGuardDialogue()); + return this; + } + + @Override + public boolean handle(Player player, Node node, String option) { + if (option.equals("talk-to")) { + player.getDialogueInterpreter().open(4375); + } + return true; + } + + public final class SecurityGuardDialogue extends DialoguePlugin { + + public SecurityGuardDialogue() {} + + public SecurityGuardDialogue(Player player) { + super(player); + } + + @Override + public DialoguePlugin newInstance(Player player) { + return new SecurityGuardDialogue(player); + } + + @Override + public boolean open(Object... args) { + npc = (NPC) args[0]; + if (player.getInventory().hasSpaceFor(new Item(ItemNames.SECURITY_BOOK_9003))) { + npc("Here's a Security book for you.", "Have a nice day."); + player.getInventory().add(new Item(ItemNames.SECURITY_BOOK_9003)); + } else { + npc("Have a nice day."); + } + return false; + } + + @Override + public boolean handle(int interfaceId, int buttonId) { + return false; + } + + @Override + public int[] getIds() { + return new int[] { 4375 }; + } + } +} \ No newline at end of file