From 8e4c7b7c3fdee019be596ed5cec84f657ef64d1e Mon Sep 17 00:00:00 2001
From: Chris Kearney <chris.kearney@urbanairship.com>
Date: Sat, 23 Aug 2014 08:48:08 -0700
Subject: [PATCH] more npc stuff.

---
 .../java/com/comandante/creeper/Main.java     | 14 ++++++++++---
 .../creeper/managers/GameManager.java         | 10 ++++-----
 .../creeper/managers/NPCManager.java          |  4 ++--
 .../comandante/creeper/model/npc/Derper.java  | 21 +++++++++++++++++++
 .../creeper/model/{ => npc}/Npc.java          |  2 +-
 .../creeper/model/{ => npc}/NpcType.java      |  7 ++-----
 6 files changed, 41 insertions(+), 17 deletions(-)
 create mode 100644 src/main/java/com/comandante/creeper/model/npc/Derper.java
 rename src/main/java/com/comandante/creeper/model/{ => npc}/Npc.java (93%)
 rename src/main/java/com/comandante/creeper/model/{ => npc}/NpcType.java (67%)

diff --git a/src/main/java/com/comandante/creeper/Main.java b/src/main/java/com/comandante/creeper/Main.java
index 71c4306a..13a9692c 100644
--- a/src/main/java/com/comandante/creeper/Main.java
+++ b/src/main/java/com/comandante/creeper/Main.java
@@ -4,8 +4,8 @@ import com.comandante.creeper.managers.GameManager;
 import com.comandante.creeper.managers.PlayerManager;
 import com.comandante.creeper.managers.PlayerManagerMapDB;
 import com.comandante.creeper.managers.RoomManager;
-import com.comandante.creeper.model.Npc;
-import com.comandante.creeper.model.NpcType;
+import com.comandante.creeper.model.npc.Npc;
+import com.comandante.creeper.model.npc.NpcType;
 import com.comandante.creeper.model.Player;
 import com.comandante.creeper.model.PlayerMetadata;
 import com.comandante.creeper.model.Room;
@@ -55,7 +55,15 @@ public class Main {
 
         Npc derper1 = new Npc(NpcType.DERPER);
         gameManager.getNpcManager().saveNpc(derper1);
-        roomManager.getRoom(1).addPresentNpc(derper1.getNpcId());
+        roomManager.getRoom(lobby.getRoomId()).addPresentNpc(derper1.getNpcId());
+        Npc derper2 = new Npc(NpcType.DERPER);
+        gameManager.getNpcManager().saveNpc(derper2);
+        roomManager.getRoom(lobby.getRoomId()).addPresentNpc(derper2.getNpcId());
+
+        Npc derper3 = new Npc(NpcType.DERPER);
+        gameManager.getNpcManager().saveNpc(derper3);
+        roomManager.getRoom(janitorialCloset.getRoomId()).addPresentNpc(derper3.getNpcId());
+
         CreeperServer creeperServer = new CreeperServer(8080, db);
         creeperServer.run(gameManager);
 
diff --git a/src/main/java/com/comandante/creeper/managers/GameManager.java b/src/main/java/com/comandante/creeper/managers/GameManager.java
index 21d7343a..2aafed3f 100644
--- a/src/main/java/com/comandante/creeper/managers/GameManager.java
+++ b/src/main/java/com/comandante/creeper/managers/GameManager.java
@@ -3,8 +3,8 @@ package com.comandante.creeper.managers;
 
 import com.comandante.creeper.command.DefaultCommandType;
 import com.comandante.creeper.model.Movement;
-import com.comandante.creeper.model.Npc;
-import com.comandante.creeper.model.NpcType;
+import com.comandante.creeper.model.npc.Npc;
+import com.comandante.creeper.model.npc.NpcType;
 import com.comandante.creeper.model.Player;
 import com.comandante.creeper.model.Room;
 import com.comandante.creeper.server.CreeperSession;
@@ -31,7 +31,7 @@ public class GameManager {
             "╚██████╗██║  ██║███████╗███████╗██║     ███████╗██║  ██║\r\n" +
             " ╚═════╝╚═╝  ╚═╝╚══════╝╚══════╝╚═╝     ╚══════╝╚═╝  ╚═╝";
 
-    public static String VERSION = "1.0-SNAPSHOT";
+    public static String VERSION = "0.1-SNAPSHOT";
 
     private final RoomManager roomManager;
     private final PlayerManager playerManager;
@@ -83,8 +83,6 @@ public class GameManager {
         return Optional.absent();
     }
 
-
-
     public void who(Player player) {
         Set<Player> allPlayers = getAllPlayers();
         StringBuilder stringBuilder = new StringBuilder();
@@ -259,6 +257,7 @@ public class GameManager {
         final Room playerCurrentRoom = getPlayerCurrentRoom(player).get();
         StringBuilder sb = new StringBuilder();
         sb.append(playerCurrentRoom.getRoomDescription()).append("\r\n");
+        sb.append(getExits(playerCurrentRoom));
         for (String searchPlayerId : playerCurrentRoom.getPresentPlayerIds()) {
             if (searchPlayerId.equals(player.getPlayerId())) {
                 continue;
@@ -271,7 +270,6 @@ public class GameManager {
             NpcType npcType = npc.getNpcType();
             sb.append("A ").append(npcType.getNpcName()).append(" is here.\r\n");
         }
-        sb.append(getExits(playerCurrentRoom));
         player.getChannel().write(sb.toString());
     }
 
diff --git a/src/main/java/com/comandante/creeper/managers/NPCManager.java b/src/main/java/com/comandante/creeper/managers/NPCManager.java
index fe978792..89b61dcf 100644
--- a/src/main/java/com/comandante/creeper/managers/NPCManager.java
+++ b/src/main/java/com/comandante/creeper/managers/NPCManager.java
@@ -1,7 +1,7 @@
 package com.comandante.creeper.managers;
 
-import com.comandante.creeper.model.Npc;
-import com.comandante.creeper.model.NpcType;
+import com.comandante.creeper.model.npc.Npc;
+import com.comandante.creeper.model.npc.NpcType;
 import com.comandante.creeper.model.Player;
 import com.comandante.creeper.model.Room;
 import com.google.common.base.Optional;
diff --git a/src/main/java/com/comandante/creeper/model/npc/Derper.java b/src/main/java/com/comandante/creeper/model/npc/Derper.java
new file mode 100644
index 00000000..96764fd0
--- /dev/null
+++ b/src/main/java/com/comandante/creeper/model/npc/Derper.java
@@ -0,0 +1,21 @@
+package com.comandante.creeper.model.npc;
+
+
+import java.util.Arrays;
+import java.util.List;
+
+public class Derper {
+
+    public static List<String> PHRASES = Arrays.asList(
+            "Zug, zug.",
+            "Don't provoke me.",
+            "Tough guy, eh?",
+            "I will end you.",
+            "This is not a drill, I will eliminate your existence.",
+            "This is smash talk, I will derp you.",
+            "Have ever been derped by a derper? I will hurt you.",
+            "I was taught to provoke.",
+            "Oh hey I will fight you.",
+            "WORDS OF THREATENING NATURE!"
+    );
+}
diff --git a/src/main/java/com/comandante/creeper/model/Npc.java b/src/main/java/com/comandante/creeper/model/npc/Npc.java
similarity index 93%
rename from src/main/java/com/comandante/creeper/model/Npc.java
rename to src/main/java/com/comandante/creeper/model/npc/Npc.java
index 00bebb6a..5841f6b6 100644
--- a/src/main/java/com/comandante/creeper/model/Npc.java
+++ b/src/main/java/com/comandante/creeper/model/npc/Npc.java
@@ -1,4 +1,4 @@
-package com.comandante.creeper.model;
+package com.comandante.creeper.model.npc;
 
 
 import java.util.UUID;
diff --git a/src/main/java/com/comandante/creeper/model/NpcType.java b/src/main/java/com/comandante/creeper/model/npc/NpcType.java
similarity index 67%
rename from src/main/java/com/comandante/creeper/model/NpcType.java
rename to src/main/java/com/comandante/creeper/model/npc/NpcType.java
index d87d1239..a57e5376 100644
--- a/src/main/java/com/comandante/creeper/model/NpcType.java
+++ b/src/main/java/com/comandante/creeper/model/npc/NpcType.java
@@ -1,16 +1,13 @@
-package com.comandante.creeper.model;
+package com.comandante.creeper.model.npc;
 
 import org.fusesource.jansi.Ansi;
 
-import java.util.Arrays;
 import java.util.List;
 
 
 public enum NpcType {
 
-    DERPER(Arrays.asList(
-            "Zug zug.",
-            "Don't provoke me."), 300000, new StringBuilder().append(new Ansi().fg(Ansi.Color.RED).toString()).append("derper").append(new Ansi().reset().toString()).toString());
+    DERPER(Derper.PHRASES, 30000, new StringBuilder().append(new Ansi().fg(Ansi.Color.RED).toString()).append("derper").append(new Ansi().reset().toString()).toString());
 
     private final List<String> phrases;
     private final long phrasesIntervalMs;
-- 
GitLab