From 1591c50ad66bcedc2cc39234578fa096deaca15b Mon Sep 17 00:00:00 2001 From: Chris Kearney <chris@kearneymail.com> Date: Wed, 17 Aug 2016 21:43:40 -0700 Subject: [PATCH] recall command --- .../comandante/creeper/ConfigureCommands.java | 1 + .../creeper/command/RecallCommand.java | 42 +++++++++++++++++++ .../creeper/player/CoolDownType.java | 3 +- .../spells/LightningSpellRunnable.java | 1 - 4 files changed, 45 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/comandante/creeper/command/RecallCommand.java diff --git a/src/main/java/com/comandante/creeper/ConfigureCommands.java b/src/main/java/com/comandante/creeper/ConfigureCommands.java index dc186d2f..27664b1b 100644 --- a/src/main/java/com/comandante/creeper/ConfigureCommands.java +++ b/src/main/java/com/comandante/creeper/ConfigureCommands.java @@ -94,5 +94,6 @@ public class ConfigureCommands { creeperCommandRegistry.addCommand(new SpellsCommand(gameManager)); creeperCommandRegistry.addCommand(new LeaveCommand(gameManager)); creeperCommandRegistry.addCommand(new BackCommand(gameManager)); + creeperCommandRegistry.addCommand(new RecallCommand(gameManager)); } } diff --git a/src/main/java/com/comandante/creeper/command/RecallCommand.java b/src/main/java/com/comandante/creeper/command/RecallCommand.java new file mode 100644 index 00000000..ddb5cbb1 --- /dev/null +++ b/src/main/java/com/comandante/creeper/command/RecallCommand.java @@ -0,0 +1,42 @@ +package com.comandante.creeper.command; + +import com.comandante.creeper.managers.GameManager; +import com.comandante.creeper.player.CoolDown; +import com.comandante.creeper.player.CoolDownType; +import com.comandante.creeper.player.PlayerMovement; +import org.jboss.netty.channel.ChannelHandlerContext; +import org.jboss.netty.channel.MessageEvent; + +import java.util.Arrays; +import java.util.List; + +public class RecallCommand extends Command { + + final static List<String> validTriggers = Arrays.asList("recall"); + final static String description = "Return to the lobby, once every 5 minutes."; + final static String correctUsage = "back"; + + public RecallCommand(GameManager gameManager) { + super(gameManager, validTriggers, description, correctUsage); + } + + @Override + public void messageReceived(ChannelHandlerContext ctx, MessageEvent e) throws Exception { + execCommand(ctx, e, () -> { + if (player.isActiveFights()) { + write("You can't move while in a fight!"); + return; + } + + if (player.isActive(CoolDownType.PLAYER_RECALL)) { + write("You can not recall right now."); + return; + } + + PlayerMovement playerMovement = new PlayerMovement(player, player.getCurrentRoom().getRoomId(), GameManager.LOBBY_ID, "vanished into the ether.", ""); + player.addCoolDown(new CoolDown(CoolDownType.PLAYER_RECALL)); + player.movePlayer(playerMovement); + }); + } + +} \ No newline at end of file diff --git a/src/main/java/com/comandante/creeper/player/CoolDownType.java b/src/main/java/com/comandante/creeper/player/CoolDownType.java index 2993ef20..caa1d356 100644 --- a/src/main/java/com/comandante/creeper/player/CoolDownType.java +++ b/src/main/java/com/comandante/creeper/player/CoolDownType.java @@ -11,7 +11,8 @@ public enum CoolDownType { SPELL("",0), NPC_FIGHT("fight",30), NPC_ROAM("npc-roam", 1200), - NPC_ALERTED("npc-alerted", 30); + NPC_ALERTED("npc-alerted", 30), + PLAYER_RECALL("recall", 600); private final String name; private final int ticks; diff --git a/src/main/java/com/comandante/creeper/spells/LightningSpellRunnable.java b/src/main/java/com/comandante/creeper/spells/LightningSpellRunnable.java index 1c74b828..3f91acdf 100644 --- a/src/main/java/com/comandante/creeper/spells/LightningSpellRunnable.java +++ b/src/main/java/com/comandante/creeper/spells/LightningSpellRunnable.java @@ -65,7 +65,6 @@ public class LightningSpellRunnable implements SpellRunnable { } long burnEffectPower = (long) ((stats.getLevel() * .05) + (1 * stats.getIntelligence())); return getBurnEffect(burnEffectPower, 2); - } private void executeSpellAgainstPlayer(Player player, Player destinationPlayer) { -- GitLab