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