From 931b50ac9eacce3543f12dbd2adee5be6e708988 Mon Sep 17 00:00:00 2001
From: Chris Kearney <chris.kearney@urbanairship.com>
Date: Thu, 28 Aug 2014 22:45:58 -0700
Subject: [PATCH] more mobs

---
 .../creeper/entity/EntityManager.java         |  1 +
 .../com/comandante/creeper/npc/Derper.java    |  2 +-
 .../comandante/creeper/npc/DruggedPimp.java   | 28 +++++++++++++++++++
 .../java/com/comandante/creeper/npc/Npc.java  |  2 +-
 .../com/comandante/creeper/npc/NpcStats.java  | 15 +++++++++-
 .../comandante/creeper/room/RoomBuilders.java |  4 +++
 .../comandante/creeper/stat/StatsTester.java  |  2 +-
 7 files changed, 50 insertions(+), 4 deletions(-)
 create mode 100644 src/main/java/com/comandante/creeper/npc/DruggedPimp.java

diff --git a/src/main/java/com/comandante/creeper/entity/EntityManager.java b/src/main/java/com/comandante/creeper/entity/EntityManager.java
index 20451bd8..913f5fbd 100644
--- a/src/main/java/com/comandante/creeper/entity/EntityManager.java
+++ b/src/main/java/com/comandante/creeper/entity/EntityManager.java
@@ -87,6 +87,7 @@ public class EntityManager {
             while (true) {
                 try {
                     Thread.sleep(10000);
+                    System.out.println("tick.");
                     Iterator<Map.Entry<Integer, Room>> rooms = roomManager.getRooms();
                     while (rooms.hasNext()) {
                         Map.Entry<Integer, Room> next = rooms.next();
diff --git a/src/main/java/com/comandante/creeper/npc/Derper.java b/src/main/java/com/comandante/creeper/npc/Derper.java
index 81db52dd..56eb33a3 100644
--- a/src/main/java/com/comandante/creeper/npc/Derper.java
+++ b/src/main/java/com/comandante/creeper/npc/Derper.java
@@ -22,7 +22,7 @@ public class Derper extends Npc {
 
 
     public Derper(GameManager gameManager, Integer roomId) {
-        super(gameManager, roomId, NAME, colorName, 0, NpcStats.JOE_NPC.createStats(), "derper's face is melted");
+        super(gameManager, roomId, NAME, colorName, 0, NpcStats.DERPER.createStats(), "derper's face is melted");
         this.random = new Random();
     }
 
diff --git a/src/main/java/com/comandante/creeper/npc/DruggedPimp.java b/src/main/java/com/comandante/creeper/npc/DruggedPimp.java
new file mode 100644
index 00000000..15aa39d1
--- /dev/null
+++ b/src/main/java/com/comandante/creeper/npc/DruggedPimp.java
@@ -0,0 +1,28 @@
+package com.comandante.creeper.npc;
+
+import com.comandante.creeper.managers.GameManager;
+
+import java.util.Random;
+
+import static com.comandante.creeper.server.Color.GREEN;
+import static com.comandante.creeper.server.Color.RESET;
+
+public class DruggedPimp extends Npc {
+    private final static long phraseIntervalMs = 300000;
+    private final static String NAME = "drugged pimp";
+    private final Random random;
+    private final static String colorName = new StringBuilder()
+            .append(GREEN)
+            .append("drugged pimp")
+            .append(RESET).toString();
+
+    public DruggedPimp(GameManager gameManager, Integer roomId) {
+        super(gameManager, roomId, NAME, colorName, 0, NpcStats.DRUGGED_PIMP.createStats(), "a drugged pimp is dead and broke");
+        this.random = new Random();
+    }
+
+    @Override
+    public DruggedPimp create(GameManager gameManager, Integer roomId) {
+        return new DruggedPimp(gameManager, roomId);
+    }
+}
diff --git a/src/main/java/com/comandante/creeper/npc/Npc.java b/src/main/java/com/comandante/creeper/npc/Npc.java
index 4d3b0bff..dc85ee9a 100644
--- a/src/main/java/com/comandante/creeper/npc/Npc.java
+++ b/src/main/java/com/comandante/creeper/npc/Npc.java
@@ -23,7 +23,7 @@ public abstract class Npc extends CreeperEntity {
     private final Stats stats;
     private final String dieMessage;
 
-    public abstract Derper create(GameManager gameManager, Integer roomId);
+    public abstract Npc create(GameManager gameManager, Integer roomId);
 
     @Override
     public void run() {
diff --git a/src/main/java/com/comandante/creeper/npc/NpcStats.java b/src/main/java/com/comandante/creeper/npc/NpcStats.java
index dcfed517..160cd732 100644
--- a/src/main/java/com/comandante/creeper/npc/NpcStats.java
+++ b/src/main/java/com/comandante/creeper/npc/NpcStats.java
@@ -3,7 +3,7 @@ package com.comandante.creeper.npc;
 import com.comandante.creeper.stat.StatsBuilder;
 
 public class NpcStats {
-    public final static StatsBuilder JOE_NPC = new StatsBuilder()
+    public final static StatsBuilder DERPER = new StatsBuilder()
             .setStrength(5)
             .setWillpower(1)
             .setAim(1)
@@ -14,4 +14,17 @@ public class NpcStats {
             .setWeaponRatingMin(5)
             .setWeaponRatingMax(10)
             .setNumberweaponOfRolls(1);
+
+    public final static StatsBuilder DRUGGED_PIMP = new StatsBuilder()
+            .setStrength(5)
+            .setWillpower(1)
+            .setAim(1)
+            .setAgile(1)
+            .setArmorRating(5)
+            .setMeleSkill(5)
+            .setHealth(150)
+            .setWeaponRatingMin(5)
+            .setWeaponRatingMax(10)
+            .setNumberweaponOfRolls(1);
+
 }
diff --git a/src/main/java/com/comandante/creeper/room/RoomBuilders.java b/src/main/java/com/comandante/creeper/room/RoomBuilders.java
index eb341a33..0a7456e7 100644
--- a/src/main/java/com/comandante/creeper/room/RoomBuilders.java
+++ b/src/main/java/com/comandante/creeper/room/RoomBuilders.java
@@ -4,6 +4,7 @@ import com.comandante.creeper.Items.ItemType;
 import com.comandante.creeper.entity.EntityManager;
 import com.comandante.creeper.managers.GameManager;
 import com.comandante.creeper.npc.Derper;
+import com.comandante.creeper.npc.DruggedPimp;
 import com.comandante.creeper.spawner.ItemSpawner;
 import com.comandante.creeper.spawner.NpcSpawner;
 import com.comandante.creeper.spawner.SpawnRule;
@@ -31,6 +32,9 @@ public class RoomBuilders {
         basicRoom.addItemSpawner(new ItemSpawner(ItemType.BEER, new SpawnRule(20, 3), gameManager));
         basicRoom.addItemSpawner(new ItemSpawner(ItemType.KEY, new SpawnRule(30, 1, 10), gameManager));
         basicRoom.addNpcSpawner(new NpcSpawner(new Derper(gameManager, basicRoom.getRoomId()), gameManager, new SpawnRule(10, 5)));
+        basicRoom.addNpcSpawner(new NpcSpawner(new DruggedPimp(gameManager, basicRoom.getRoomId()), gameManager, new SpawnRule(10, 5)));
+
+
         entityManager.addEntity(basicRoom);
         entityManager.addEntity(new BasicRoom(
                 2,
diff --git a/src/main/java/com/comandante/creeper/stat/StatsTester.java b/src/main/java/com/comandante/creeper/stat/StatsTester.java
index 75880474..a33462ac 100644
--- a/src/main/java/com/comandante/creeper/stat/StatsTester.java
+++ b/src/main/java/com/comandante/creeper/stat/StatsTester.java
@@ -23,7 +23,7 @@ public class StatsTester {
         for (int i = 0; i < NUM_EXECUTION; i++) {
             boolean results = fight(
                     PlayerStats.DEFAULT_PLAYER.createStats(),
-                    NpcStats.JOE_NPC.createStats());
+                    NpcStats.DERPER.createStats());
             //strength, willpower, aim, agile, armorRating, meleSkill, health, weaponRatingMin, weaponRatingMax, numberweaponOfRolls
             if (results) {
                 totalChallengerWin++;
-- 
GitLab