From 0c5048f650685ff0dab91e321dae3b23351cbe42 Mon Sep 17 00:00:00 2001
From: Chris Kearney <chris@kearneymail.com>
Date: Wed, 1 Jul 2015 10:32:36 -0700
Subject: [PATCH] changed the spawn interval ticks to match the much faster
 tick time, changed spawnrules to have a builder becuse the constructor with 4
 ints was ridiculous

---
 .gitignore                                    |  3 +-
 .../com/comandante/creeper/ConfigureNpc.java  | 11 ++---
 .../creeper/managers/GameManager.java         |  1 -
 .../comandante/creeper/npc/NpcAdapter.java    |  3 +-
 .../creeper/npc/NpcAdapterTest.java           |  5 ++-
 .../com/comandante/creeper/player/Player.java |  1 -
 .../creeper/spawner/SpawnRuleBuilder.java     | 40 +++++++++++++++++++
 world/npcs/bergorc.json                       |  2 +-
 world/npcs/blackhoodedwizard.json             |  4 +-
 world/npcs/charlesbiggers.json                |  2 +-
 world/npcs/deathgriffin.json                  |  4 +-
 world/npcs/demonsuccubus.json                 |  4 +-
 world/npcs/dwarfvaettir.json                  |  4 +-
 world/npcs/forestbysen.json                   |  2 +-
 world/npcs/grayekimmu.json                    |  4 +-
 world/npcs/nightmaretroll.json                |  4 +-
 world/npcs/phantomknight.json                 |  6 +--
 world/npcs/phantomorc.json                    |  4 +-
 world/npcs/phantomwizard.json                 |  4 +-
 world/npcs/razorclawwolf.json                 |  4 +-
 world/npcs/redeyedbear.json                   |  2 +-
 world/npcs/scaleddeathcrawler.json            |  4 +-
 world/npcs/stealthpanther.json                |  4 +-
 world/npcs/stonegiant.json                    |  4 +-
 world/npcs/streethustler.json                 |  2 +-
 world/npcs/swampbear.json                     |  4 +-
 world/npcs/swampberserker.json                |  2 +-
 world/npcs/thefirstnationalbank.json          |  2 +-
 world/npcs/tigermonoceruses.json              |  4 +-
 world/npcs/treeberserker.json                 |  2 +-
 world/npcs/tunnelcobra.json                   |  4 +-
 31 files changed, 93 insertions(+), 53 deletions(-)
 create mode 100644 src/main/java/com/comandante/creeper/spawner/SpawnRuleBuilder.java

diff --git a/.gitignore b/.gitignore
index aaad67b5..d52cb9a7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,3 @@
-world.json
 .DS_Store
 target
 creeperDb*
@@ -11,4 +10,4 @@ creeperDb*
 .idea/
 *.mapdb*
 *.log
-release.properties
\ No newline at end of file
+release.properties
diff --git a/src/main/java/com/comandante/creeper/ConfigureNpc.java b/src/main/java/com/comandante/creeper/ConfigureNpc.java
index bbca0106..7e6deb5a 100755
--- a/src/main/java/com/comandante/creeper/ConfigureNpc.java
+++ b/src/main/java/com/comandante/creeper/ConfigureNpc.java
@@ -9,6 +9,7 @@ import com.comandante.creeper.npc.NpcExporter;
 import com.comandante.creeper.spawner.ItemSpawner;
 import com.comandante.creeper.spawner.NpcSpawner;
 import com.comandante.creeper.spawner.SpawnRule;
+import com.comandante.creeper.spawner.SpawnRuleBuilder;
 import com.comandante.creeper.spells.ClumsinessSpell;
 import com.comandante.creeper.spells.LightningSpell;
 import com.comandante.creeper.spells.SpellRegistry;
@@ -41,12 +42,12 @@ public class ConfigureNpc {
         configureAllNpcs(gameManager);
 
         Main.startUpMessage("Adding beer");
-        ItemSpawner itemSpawner = new ItemSpawner(ItemType.BEER, new SpawnRule(Area.NEWBIE_ZONE, 10, 100, 5, 40), gameManager);
-        ItemSpawner itemSpawner1 = new ItemSpawner(ItemType.BEER, new SpawnRule(Area.FANCYHOUSE_ZONE, 10, 12, 2, 50), gameManager);
-        ItemSpawner itemSpawner2 = new ItemSpawner(ItemType.BEER, new SpawnRule(Area.HOUSE_ZONE, 10, 12, 2, 50), gameManager);
+        ItemSpawner itemSpawner = new ItemSpawner(ItemType.BEER, new SpawnRuleBuilder().setArea(Area.NEWBIE_ZONE).setSpawnIntervalTicks(600).setMaxInstances(100).setMaxPerRoom(5).setRandomPercent(40).createSpawnRule(), gameManager);
+        ItemSpawner itemSpawner1 = new ItemSpawner(ItemType.BEER, new SpawnRuleBuilder().setArea(Area.FANCYHOUSE_ZONE).setSpawnIntervalTicks(600).setMaxInstances(12).setMaxPerRoom(2).setRandomPercent(50).createSpawnRule(), gameManager);
+        ItemSpawner itemSpawner2 = new ItemSpawner(ItemType.BEER, new SpawnRuleBuilder().setArea(Area.HOUSE_ZONE).setSpawnIntervalTicks(600).setMaxInstances(12).setMaxPerRoom(2).setRandomPercent(50).createSpawnRule(), gameManager);
 
-        ItemSpawner itemSpawner3 = new ItemSpawner(ItemType.PURPLE_DRANK, new SpawnRule(Area.FANCYHOUSE_ZONE, 10, 30, 5, 50), gameManager);
-        ItemSpawner itemSpawner4 = new ItemSpawner(ItemType.PURPLE_DRANK, new SpawnRule(Area.HOUSE_ZONE, 10, 30, 5, 50), gameManager);
+        ItemSpawner itemSpawner3 = new ItemSpawner(ItemType.PURPLE_DRANK, new SpawnRuleBuilder().setArea(Area.FANCYHOUSE_ZONE).setSpawnIntervalTicks(600).setMaxInstances(30).setMaxPerRoom(5).setRandomPercent(50).createSpawnRule(), gameManager);
+        ItemSpawner itemSpawner4 = new ItemSpawner(ItemType.PURPLE_DRANK, new SpawnRuleBuilder().setArea(Area.HOUSE_ZONE).setSpawnIntervalTicks(600).setMaxInstances(30).setMaxPerRoom(5).setRandomPercent(50).createSpawnRule(), gameManager);
 
         entityManager.addEntity(itemSpawner);
         entityManager.addEntity(itemSpawner1);
diff --git a/src/main/java/com/comandante/creeper/managers/GameManager.java b/src/main/java/com/comandante/creeper/managers/GameManager.java
index 806ca934..837f0b75 100644
--- a/src/main/java/com/comandante/creeper/managers/GameManager.java
+++ b/src/main/java/com/comandante/creeper/managers/GameManager.java
@@ -674,7 +674,6 @@ public class GameManager {
             Map.Entry<String, Integer> damageEntry = iterator.next();
             totalDamageDone += damageEntry.getValue();
             PlayerMetadata playerMetadata = getPlayerManager().getPlayerMetadata(damageEntry.getKey());
-            System.out.println(playerMetadata.getPlayerName() + " damage to " + npc.getName() + " was " + damageEntry.getValue());
             Optional<Room> playerCurrentRoom = getRoomManager().getPlayerCurrentRoom(playerMetadata.getPlayerId());
             if (!playerCurrentRoom.isPresent()) {
                 iterator.remove();
diff --git a/src/main/java/com/comandante/creeper/npc/NpcAdapter.java b/src/main/java/com/comandante/creeper/npc/NpcAdapter.java
index 01de773e..a2727f5a 100644
--- a/src/main/java/com/comandante/creeper/npc/NpcAdapter.java
+++ b/src/main/java/com/comandante/creeper/npc/NpcAdapter.java
@@ -4,6 +4,7 @@ import com.comandante.creeper.Items.ItemType;
 import com.comandante.creeper.Items.Loot;
 import com.comandante.creeper.managers.GameManager;
 import com.comandante.creeper.spawner.SpawnRule;
+import com.comandante.creeper.spawner.SpawnRuleBuilder;
 import com.comandante.creeper.stat.StatsBuilder;
 import com.comandante.creeper.world.Area;
 import com.google.common.collect.Sets;
@@ -188,7 +189,7 @@ public class NpcAdapter extends TypeAdapter<Npc> {
 
             int maxInstances = jsonReader.nextInt();
             jsonReader.endObject();
-            spawnRules.add(new SpawnRule(Area.getByName(spawnAreaName),spawnIntervalTicks, maxInstances, maxPerRoom, randomChance));
+            spawnRules.add(new SpawnRuleBuilder().setArea(Area.getByName(spawnAreaName)).setSpawnIntervalTicks(spawnIntervalTicks).setMaxInstances(maxInstances).setMaxPerRoom(maxPerRoom).setRandomPercent(randomChance).createSpawnRule());
         }
         jsonReader.endObject();
 
diff --git a/src/main/java/com/comandante/creeper/npc/NpcAdapterTest.java b/src/main/java/com/comandante/creeper/npc/NpcAdapterTest.java
index 4b7d4f6f..cedd65f7 100644
--- a/src/main/java/com/comandante/creeper/npc/NpcAdapterTest.java
+++ b/src/main/java/com/comandante/creeper/npc/NpcAdapterTest.java
@@ -4,6 +4,7 @@ import com.comandante.creeper.Items.Item;
 import com.comandante.creeper.Items.ItemType;
 import com.comandante.creeper.Items.Loot;
 import com.comandante.creeper.spawner.SpawnRule;
+import com.comandante.creeper.spawner.SpawnRuleBuilder;
 import com.comandante.creeper.stat.Stats;
 import com.comandante.creeper.stat.StatsBuilder;
 import com.comandante.creeper.world.Area;
@@ -56,8 +57,8 @@ public class NpcAdapterTest {
                 .createStats();
 
         Loot npcOneLoot = new Loot(randomGenerator.nextInt(100), randomGenerator.nextInt(100), Sets.newHashSet(ItemType.BEER));
-        SpawnRule npcOneSpawnRule1 = new SpawnRule(Area.BLOODRIDGE10_ZONE, randomGenerator.nextInt(100), randomGenerator.nextInt(100), randomGenerator.nextInt(100), randomGenerator.nextInt(100));
-        SpawnRule npcOneSpawnRule2 = new SpawnRule(Area.BLOODRIDGE10_ZONE, randomGenerator.nextInt(100), randomGenerator.nextInt(100), randomGenerator.nextInt(100), randomGenerator.nextInt(100));
+        SpawnRule npcOneSpawnRule1 = new SpawnRuleBuilder().setArea(Area.BLOODRIDGE10_ZONE).setSpawnIntervalTicks(randomGenerator.nextInt(100)).setMaxInstances(randomGenerator.nextInt(100)).setMaxPerRoom(randomGenerator.nextInt(100)).setRandomPercent(randomGenerator.nextInt(100)).createSpawnRule();
+        SpawnRule npcOneSpawnRule2 = new SpawnRuleBuilder().setArea(Area.BLOODRIDGE10_ZONE).setSpawnIntervalTicks(randomGenerator.nextInt(100)).setMaxInstances(randomGenerator.nextInt(100)).setMaxPerRoom(randomGenerator.nextInt(100)).setRandomPercent(randomGenerator.nextInt(100)).createSpawnRule();
         npcOne = new NpcBuilder()
                 .setColorName(UUID.randomUUID().toString())
                 .setDieMessage(UUID.randomUUID().toString())
diff --git a/src/main/java/com/comandante/creeper/player/Player.java b/src/main/java/com/comandante/creeper/player/Player.java
index a7e2ee56..8a02b0ec 100755
--- a/src/main/java/com/comandante/creeper/player/Player.java
+++ b/src/main/java/com/comandante/creeper/player/Player.java
@@ -671,7 +671,6 @@ public class Player extends CreeperEntity {
 
     public void removeActiveFight(Npc npc) {
         synchronized (interner.intern(playerId)) {
-            System.out.println("Removing active fight for: " + npc.getColorName());
             Iterator<Map.Entry<Long, ActiveFight>> iterator = activeFights.entrySet().iterator();
             while (iterator.hasNext()) {
                 Map.Entry<Long, ActiveFight> next = iterator.next();
diff --git a/src/main/java/com/comandante/creeper/spawner/SpawnRuleBuilder.java b/src/main/java/com/comandante/creeper/spawner/SpawnRuleBuilder.java
new file mode 100644
index 00000000..4e652f02
--- /dev/null
+++ b/src/main/java/com/comandante/creeper/spawner/SpawnRuleBuilder.java
@@ -0,0 +1,40 @@
+package com.comandante.creeper.spawner;
+
+import com.comandante.creeper.world.Area;
+
+public class SpawnRuleBuilder {
+    private Area area;
+    private int spawnIntervalTicks;
+    private int maxInstances;
+    private int maxPerRoom;
+    private int randomPercent;
+
+    public SpawnRuleBuilder setArea(Area area) {
+        this.area = area;
+        return this;
+    }
+
+    public SpawnRuleBuilder setSpawnIntervalTicks(int spawnIntervalTicks) {
+        this.spawnIntervalTicks = spawnIntervalTicks;
+        return this;
+    }
+
+    public SpawnRuleBuilder setMaxInstances(int maxInstances) {
+        this.maxInstances = maxInstances;
+        return this;
+    }
+
+    public SpawnRuleBuilder setMaxPerRoom(int maxPerRoom) {
+        this.maxPerRoom = maxPerRoom;
+        return this;
+    }
+
+    public SpawnRuleBuilder setRandomPercent(int randomPercent) {
+        this.randomPercent = randomPercent;
+        return this;
+    }
+
+    public SpawnRule createSpawnRule() {
+        return new SpawnRule(area, spawnIntervalTicks, maxInstances, maxPerRoom, randomPercent);
+    }
+}
\ No newline at end of file
diff --git a/world/npcs/bergorc.json b/world/npcs/bergorc.json
index 588742cc..a0985005 100755
--- a/world/npcs/bergorc.json
+++ b/world/npcs/bergorc.json
@@ -30,7 +30,7 @@
     "bloodridge1_zone": {
       "randomChance": 100,
       "maxPerRoom": 3,
-      "spawnIntervalTicks": 10,
+      "spawnIntervalTicks": 600,
       "maxInstances": 12
     }
   },
diff --git a/world/npcs/blackhoodedwizard.json b/world/npcs/blackhoodedwizard.json
index 4ea9fb86..7f7239ca 100755
--- a/world/npcs/blackhoodedwizard.json
+++ b/world/npcs/blackhoodedwizard.json
@@ -31,13 +31,13 @@
     "tisland4_zone": {
       "randomChance": 100,
       "maxPerRoom": 3,
-      "spawnIntervalTicks": 10,
+      "spawnIntervalTicks": 600,
       "maxInstances": 6
     }, 
     "tisland5_zone": {
       "randomChance": 100,
       "maxPerRoom": 3,
-      "spawnIntervalTicks": 10,
+      "spawnIntervalTicks": 600,
       "maxInstances": 14
     }
   },
diff --git a/world/npcs/charlesbiggers.json b/world/npcs/charlesbiggers.json
index 1ddc5bd5..2b5d6e65 100755
--- a/world/npcs/charlesbiggers.json
+++ b/world/npcs/charlesbiggers.json
@@ -31,7 +31,7 @@
     "tisland10_zone": {
       "randomChance": 100,
       "maxPerRoom": 1,
-      "spawnIntervalTicks": 10,
+      "spawnIntervalTicks": 600,
       "maxInstances": 1
     } 
   },
diff --git a/world/npcs/deathgriffin.json b/world/npcs/deathgriffin.json
index a1f3eda8..a02a62a7 100755
--- a/world/npcs/deathgriffin.json
+++ b/world/npcs/deathgriffin.json
@@ -31,13 +31,13 @@
     "western8_zone": {
       "randomChance": 100,
       "maxPerRoom": 3,
-      "spawnIntervalTicks": 10,
+      "spawnIntervalTicks": 600,
       "maxInstances": 6
     }, 
     "western9_zone": {
       "randomChance": 100,
       "maxPerRoom": 3,
-      "spawnIntervalTicks": 10,
+      "spawnIntervalTicks": 600,
       "maxInstances": 14
     }
   },
diff --git a/world/npcs/demonsuccubus.json b/world/npcs/demonsuccubus.json
index 74d01894..45cce2d5 100755
--- a/world/npcs/demonsuccubus.json
+++ b/world/npcs/demonsuccubus.json
@@ -31,13 +31,13 @@
     "western9_zone": {
       "randomChance": 100,
       "maxPerRoom": 3,
-      "spawnIntervalTicks": 10,
+      "spawnIntervalTicks": 600,
       "maxInstances": 6
     }, 
     "western10_zone": {
       "randomChance": 100,
       "maxPerRoom": 3,
-      "spawnIntervalTicks": 10,
+      "spawnIntervalTicks": 600,
       "maxInstances": 14
     }
   },
diff --git a/world/npcs/dwarfvaettir.json b/world/npcs/dwarfvaettir.json
index f5bb41a8..5712e89c 100755
--- a/world/npcs/dwarfvaettir.json
+++ b/world/npcs/dwarfvaettir.json
@@ -31,13 +31,13 @@
     "north10_zone": {
       "randomChance": 100,
       "maxPerRoom": 3,
-      "spawnIntervalTicks": 10,
+      "spawnIntervalTicks": 600,
       "maxInstances": 20
     },
     "north11_zone": {
       "randomChance": 100,
       "maxPerRoom": 3,
-      "spawnIntervalTicks": 10,
+      "spawnIntervalTicks": 600,
       "maxInstances": 14
     }
   },
diff --git a/world/npcs/forestbysen.json b/world/npcs/forestbysen.json
index a51b1f66..8fe04b40 100755
--- a/world/npcs/forestbysen.json
+++ b/world/npcs/forestbysen.json
@@ -30,7 +30,7 @@
     "south1_zone": {
       "randomChance": 100,
       "maxPerRoom": 3,
-      "spawnIntervalTicks": 10,
+      "spawnIntervalTicks": 600,
       "maxInstances": 18
     }
   },
diff --git a/world/npcs/grayekimmu.json b/world/npcs/grayekimmu.json
index 8f61093e..02dc8039 100755
--- a/world/npcs/grayekimmu.json
+++ b/world/npcs/grayekimmu.json
@@ -31,13 +31,13 @@
     "north4_zone": {
       "randomChance": 100,
       "maxPerRoom": 3,
-      "spawnIntervalTicks": 10,
+      "spawnIntervalTicks": 600,
       "maxInstances": 14
     }, 
     "north5_zone": {
       "randomChance": 100,
       "maxPerRoom": 3,
-      "spawnIntervalTicks": 10,
+      "spawnIntervalTicks": 600,
       "maxInstances": 14
     }
   },
diff --git a/world/npcs/nightmaretroll.json b/world/npcs/nightmaretroll.json
index 2df7e88e..43e0ee23 100755
--- a/world/npcs/nightmaretroll.json
+++ b/world/npcs/nightmaretroll.json
@@ -31,13 +31,13 @@
     "north7_zone": {
       "randomChance": 100,
       "maxPerRoom": 3,
-      "spawnIntervalTicks": 10,
+      "spawnIntervalTicks": 600,
       "maxInstances": 6
     }, 
     "north8_zone": {
       "randomChance": 100,
       "maxPerRoom": 3,
-      "spawnIntervalTicks": 10,
+      "spawnIntervalTicks": 600,
       "maxInstances": 14
     }
   },
diff --git a/world/npcs/phantomknight.json b/world/npcs/phantomknight.json
index b61ad176..30ce9541 100755
--- a/world/npcs/phantomknight.json
+++ b/world/npcs/phantomknight.json
@@ -32,20 +32,20 @@
     "bloodridge5_zone": {
       "randomChance": 100,
       "maxPerRoom": 3,
-      "spawnIntervalTicks": 10,
+      "spawnIntervalTicks": 600,
       "maxInstances": 6
     }, 
     "bloodridge6_zone": {
       "randomChance": 100,
       "maxPerRoom": 3,
-      "spawnIntervalTicks": 10,
+      "spawnIntervalTicks": 600,
       "maxInstances": 14
     }
     , 
     "bloodridge7_zone": {
       "randomChance": 100,
       "maxPerRoom": 3,
-      "spawnIntervalTicks": 10,
+      "spawnIntervalTicks": 600,
       "maxInstances": 14
     }
   },
diff --git a/world/npcs/phantomorc.json b/world/npcs/phantomorc.json
index 41934a48..d9cfc02c 100755
--- a/world/npcs/phantomorc.json
+++ b/world/npcs/phantomorc.json
@@ -31,13 +31,13 @@
     "bloodridge4_zone": {
       "randomChance": 100,
       "maxPerRoom": 3,
-      "spawnIntervalTicks": 10,
+      "spawnIntervalTicks": 600,
       "maxInstances": 6
     }, 
     "bloodridge5_zone": {
       "randomChance": 100,
       "maxPerRoom": 3,
-      "spawnIntervalTicks": 10,
+      "spawnIntervalTicks": 600,
       "maxInstances": 14
     }
   },
diff --git a/world/npcs/phantomwizard.json b/world/npcs/phantomwizard.json
index 0ee0124a..1cb75fa0 100755
--- a/world/npcs/phantomwizard.json
+++ b/world/npcs/phantomwizard.json
@@ -31,13 +31,13 @@
     "bloodridge4_zone": {
       "randomChance": 100,
       "maxPerRoom": 3,
-      "spawnIntervalTicks": 10,
+      "spawnIntervalTicks": 600,
       "maxInstances": 6
     }, 
     "bloodridge5_zone": {
       "randomChance": 100,
       "maxPerRoom": 3,
-      "spawnIntervalTicks": 10,
+      "spawnIntervalTicks": 600,
       "maxInstances": 14
     }
   },
diff --git a/world/npcs/razorclawwolf.json b/world/npcs/razorclawwolf.json
index 8fe7ff6c..381f98cd 100755
--- a/world/npcs/razorclawwolf.json
+++ b/world/npcs/razorclawwolf.json
@@ -31,13 +31,13 @@
     "toft2_zone": {
       "randomChance": 100,
       "maxPerRoom": 3,
-      "spawnIntervalTicks": 10,
+      "spawnIntervalTicks": 600,
       "maxInstances": 6
     }, 
     "toft3_zone": {
       "randomChance": 100,
       "maxPerRoom": 3,
-      "spawnIntervalTicks": 10,
+      "spawnIntervalTicks": 600,
       "maxInstances": 14
     }
   },
diff --git a/world/npcs/redeyedbear.json b/world/npcs/redeyedbear.json
index 055af922..9a15ad24 100755
--- a/world/npcs/redeyedbear.json
+++ b/world/npcs/redeyedbear.json
@@ -31,7 +31,7 @@
     "bloodridge1_zone": {
       "randomChance": 100,
       "maxPerRoom": 3,
-      "spawnIntervalTicks": 10,
+      "spawnIntervalTicks": 600,
       "maxInstances": 14
     }
   },
diff --git a/world/npcs/scaleddeathcrawler.json b/world/npcs/scaleddeathcrawler.json
index e38b5945..3bf3fb0f 100755
--- a/world/npcs/scaleddeathcrawler.json
+++ b/world/npcs/scaleddeathcrawler.json
@@ -31,13 +31,13 @@
     "north10_zone": {
       "randomChance": 100,
       "maxPerRoom": 3,
-      "spawnIntervalTicks": 10,
+      "spawnIntervalTicks": 600,
       "maxInstances": 20
     }, 
     "north11_zone": {
       "randomChance": 100,
       "maxPerRoom": 3,
-      "spawnIntervalTicks": 10,
+      "spawnIntervalTicks": 600,
       "maxInstances": 14
     }
   },
diff --git a/world/npcs/stealthpanther.json b/world/npcs/stealthpanther.json
index 73556a57..74188765 100755
--- a/world/npcs/stealthpanther.json
+++ b/world/npcs/stealthpanther.json
@@ -31,13 +31,13 @@
     "north5_zone": {
       "randomChance": 100,
       "maxPerRoom": 3,
-      "spawnIntervalTicks": 10,
+      "spawnIntervalTicks": 600,
       "maxInstances": 14
     }, 
     "north6_zone": {
       "randomChance": 100,
       "maxPerRoom": 3,
-      "spawnIntervalTicks": 10,
+      "spawnIntervalTicks": 600,
       "maxInstances": 14
     }
   },
diff --git a/world/npcs/stonegiant.json b/world/npcs/stonegiant.json
index 2680e4f3..243d557c 100755
--- a/world/npcs/stonegiant.json
+++ b/world/npcs/stonegiant.json
@@ -31,13 +31,13 @@
     "tisland4_zone": {
       "randomChance": 100,
       "maxPerRoom": 3,
-      "spawnIntervalTicks": 10,
+      "spawnIntervalTicks": 600,
       "maxInstances": 6
     }, 
     "tisland5_zone": {
       "randomChance": 100,
       "maxPerRoom": 3,
-      "spawnIntervalTicks": 10,
+      "spawnIntervalTicks": 600,
       "maxInstances": 14
     }
   },
diff --git a/world/npcs/streethustler.json b/world/npcs/streethustler.json
index f859919c..8838c465 100755
--- a/world/npcs/streethustler.json
+++ b/world/npcs/streethustler.json
@@ -30,7 +30,7 @@
     "newbie_zone": {
       "randomChance": 100,
       "maxPerRoom": 3,
-      "spawnIntervalTicks": 10,
+      "spawnIntervalTicks": 600,
       "maxInstances": 5
     }
   },
diff --git a/world/npcs/swampbear.json b/world/npcs/swampbear.json
index bd731b87..c80ac206 100755
--- a/world/npcs/swampbear.json
+++ b/world/npcs/swampbear.json
@@ -31,13 +31,13 @@
     "north3_zone": {
       "randomChance": 100,
       "maxPerRoom": 3,
-      "spawnIntervalTicks": 10,
+      "spawnIntervalTicks": 600,
       "maxInstances": 14
     }, 
     "north4_zone": {
       "randomChance": 100,
       "maxPerRoom": 3,
-      "spawnIntervalTicks": 10,
+      "spawnIntervalTicks": 600,
       "maxInstances": 14
     }
   },
diff --git a/world/npcs/swampberserker.json b/world/npcs/swampberserker.json
index 8b285bd7..bc5e8b04 100755
--- a/world/npcs/swampberserker.json
+++ b/world/npcs/swampberserker.json
@@ -30,7 +30,7 @@
     "north2_zone": {
       "randomChance": 100,
       "maxPerRoom": 3,
-      "spawnIntervalTicks": 10,
+      "spawnIntervalTicks": 600,
       "maxInstances": 12
     }
   },
diff --git a/world/npcs/thefirstnationalbank.json b/world/npcs/thefirstnationalbank.json
index 2bbbfa6c..bdc059f2 100755
--- a/world/npcs/thefirstnationalbank.json
+++ b/world/npcs/thefirstnationalbank.json
@@ -31,7 +31,7 @@
     "tisland10_zone": {
       "randomChance": 5,
       "maxPerRoom": 1,
-      "spawnIntervalTicks": 10,
+      "spawnIntervalTicks": 600,
       "maxInstances": 1
     } 
   },
diff --git a/world/npcs/tigermonoceruses.json b/world/npcs/tigermonoceruses.json
index cd0435f2..4c13abcb 100755
--- a/world/npcs/tigermonoceruses.json
+++ b/world/npcs/tigermonoceruses.json
@@ -31,13 +31,13 @@
     "north8_zone": {
       "randomChance": 100,
       "maxPerRoom": 3,
-      "spawnIntervalTicks": 10,
+      "spawnIntervalTicks": 600,
       "maxInstances": 6
     }, 
     "north9_zone": {
       "randomChance": 100,
       "maxPerRoom": 3,
-      "spawnIntervalTicks": 10,
+      "spawnIntervalTicks": 600,
       "maxInstances": 14
     }
   },
diff --git a/world/npcs/treeberserker.json b/world/npcs/treeberserker.json
index 21b613e0..fb4ff4f6 100755
--- a/world/npcs/treeberserker.json
+++ b/world/npcs/treeberserker.json
@@ -30,7 +30,7 @@
     "north1_zone": {
       "randomChance": 100,
       "maxPerRoom": 3,
-      "spawnIntervalTicks": 10,
+      "spawnIntervalTicks": 600,
       "maxInstances": 12
     }
   },
diff --git a/world/npcs/tunnelcobra.json b/world/npcs/tunnelcobra.json
index c3baae60..58c25246 100755
--- a/world/npcs/tunnelcobra.json
+++ b/world/npcs/tunnelcobra.json
@@ -31,13 +31,13 @@
     "tisland4_zone": {
       "randomChance": 100,
       "maxPerRoom": 3,
-      "spawnIntervalTicks": 10,
+      "spawnIntervalTicks": 600,
       "maxInstances": 6
     }, 
     "tisland3_zone": {
       "randomChance": 100,
       "maxPerRoom": 3,
-      "spawnIntervalTicks": 10,
+      "spawnIntervalTicks": 600,
       "maxInstances": 14
     }
   },
-- 
GitLab