From 0f0f4ebc7d1f21f3cea93787866f3851e7bf60e4 Mon Sep 17 00:00:00 2001 From: Chris Kearney <chris@kearneymail.com> Date: Mon, 15 Aug 2016 19:36:17 -0700 Subject: [PATCH] clean up of the aggro code --- .../java/com/comandante/creeper/command/BackCommand.java | 2 +- .../com/comandante/creeper/command/MovementCommand.java | 2 +- .../com/comandante/creeper/managers/GameManager.java | 2 +- src/main/java/com/comandante/creeper/player/Player.java | 9 ++++++--- 4 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/comandante/creeper/command/BackCommand.java b/src/main/java/com/comandante/creeper/command/BackCommand.java index aead2c1d..5429d5c2 100644 --- a/src/main/java/com/comandante/creeper/command/BackCommand.java +++ b/src/main/java/com/comandante/creeper/command/BackCommand.java @@ -27,7 +27,7 @@ public class BackCommand extends Command { return; } Room returnRoom = player.getPreviousRoom(); - PlayerMovement playerMovement = new PlayerMovement(player, currentRoom.getRoomId(), returnRoom.getRoomId(), "fleed to where they came from.", "up"); + PlayerMovement playerMovement = new PlayerMovement(player, currentRoom.getRoomId(), returnRoom.getRoomId(), "returned to where they came from.", "N/A"); player.movePlayer(playerMovement); }); } diff --git a/src/main/java/com/comandante/creeper/command/MovementCommand.java b/src/main/java/com/comandante/creeper/command/MovementCommand.java index 329460fc..b8c024cf 100644 --- a/src/main/java/com/comandante/creeper/command/MovementCommand.java +++ b/src/main/java/com/comandante/creeper/command/MovementCommand.java @@ -44,7 +44,7 @@ public class MovementCommand extends Command { MovementCommand.this.write("You are dead and can not move."); return; } - if (player.isAlertedNpcPresentInCurrentRoom()) { + if (player.areAnyAlertedNpcsInCurrentRoom()) { MovementCommand.this.write("You are unable to progress, but can return to where you came from by typing \"back\"."); return; } diff --git a/src/main/java/com/comandante/creeper/managers/GameManager.java b/src/main/java/com/comandante/creeper/managers/GameManager.java index 87be794b..13e1e41a 100644 --- a/src/main/java/com/comandante/creeper/managers/GameManager.java +++ b/src/main/java/com/comandante/creeper/managers/GameManager.java @@ -726,7 +726,7 @@ public class GameManager { sb.append(Color.GREEN + "F" + Color.RESET); } } - if (player.isAlertedNpcPresentInCurrentRoom()) { + if (player.areAnyAlertedNpcsInCurrentRoom()) { sb.append(" "); sb.append(Color.RED + "ALERT" + Color.RESET); } diff --git a/src/main/java/com/comandante/creeper/player/Player.java b/src/main/java/com/comandante/creeper/player/Player.java index 82c58fa0..5c6e600b 100644 --- a/src/main/java/com/comandante/creeper/player/Player.java +++ b/src/main/java/com/comandante/creeper/player/Player.java @@ -368,10 +368,14 @@ public class Player extends CreeperEntity { } } - public boolean isAlertedNpcPresentInCurrentRoom() { + public boolean areAnyAlertedNpcsInCurrentRoom() { return currentRoom.getPresentNpcs().stream().filter(this::isActiveAlertNpcStatus).count() > 0; } + public boolean areInTheSameRoom(Npc npc) { + return currentRoom.getPresentNpcs().contains(npc); + } + public void setIsActiveAlertNpcStatus(Npc npc) { synchronized (interner.intern(playerId)) { alertedNpcs.add(npc); @@ -605,14 +609,13 @@ public class Player extends CreeperEntity { }) .collect(Collectors.toList()); - final Room originalRoom = currentRoom; aggresiveRoomNpcs.forEach(npc -> { gameManager.writeToPlayerCurrentRoom(getPlayerId(), getPlayerName() + " has alerted a " + npc.getColorName() + "\r\n"); gameManager.getChannelUtils().write(playerId, "You can return to your previous location by typing \"back\"" + "\r\n"); setIsActiveAlertNpcStatus(npc); scheduledExecutor.schedule(() -> { removeActiveAlertStatus(npc); - if (!getCurrentRoom().getRoomId().equals(originalRoom.getRoomId())) { + if (!areInTheSameRoom(npc)) { return; } if (!npc.getIsAlive().get()) { -- GitLab