diff --git a/src/main/java/com/comandante/creeper/entity/EntityManager.java b/src/main/java/com/comandante/creeper/entity/EntityManager.java index 20451bd887e8e6ea239c525023a9ddbc7e5d015c..913f5fbd377b992d4af81131020d0cc0092c6e5f 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 81db52dd8511189c9d6a2b2c07c1b9759292ed13..56eb33a3cab5fddceb16d8d48622506213a9bc4a 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 0000000000000000000000000000000000000000..15aa39d1fdd3ac876a3693c9cf7fd6d7f13fabbe --- /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 4d3b0bffeee13a513ccf96bd1119aa81b27a95b7..dc85ee9ac6df74e7263ced0cb63934fdff307f85 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 dcfed51770dd97e6f9ae16476a7e4d83884f8cc9..160cd732a140ee9288d4f3d3eca008861779b2dc 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 eb341a334a923bbd82f99a3f8255edf816e7d3d7..0a7456e7a6a97f0275b542d0b69c7ef910e2ed40 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 758804745d3ca5fdcba27b1cec53beafede85b00..a33462ac3db1425f0264a38ea0993a7f3f8a93e1 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++;