diff --git a/src/main/java/com/comandante/creeper/Main.java b/src/main/java/com/comandante/creeper/Main.java
index b5f7dd578e98114dfdb3053ca4aac303ef5cb147..595c19016f23bbfce0b08939f557b127fadf8222 100644
--- a/src/main/java/com/comandante/creeper/Main.java
+++ b/src/main/java/com/comandante/creeper/Main.java
@@ -10,6 +10,7 @@ import com.comandante.creeper.managers.RoomManager;
import com.comandante.creeper.model.Player;
import com.comandante.creeper.model.PlayerMetadata;
import com.comandante.creeper.model.Stats;
+import com.comandante.creeper.model.StatsBuilder;
import com.comandante.creeper.npc.Derper;
import com.comandante.creeper.server.CreeperServer;
import org.apache.commons.codec.binary.Base64;
@@ -31,7 +32,7 @@ public class Main {
EntityManager entityManager = new EntityManager(roomManager, db);
PlayerManager playerManager = new PlayerManager(db);
- Stats chrisBrianStats = new Stats(7, 8, 6, 5, 4, 10, 100,10, 20, 1);
+ Stats chrisBrianStats = new StatsBuilder().setStrength(7).setWillpower(8).setAim(6).setAgile(5).setArmorRating(4).setMeleSkill(10).setHealth(100).setWeaponRatingMin(10).setWeaponRatingMax(20).setNumberweaponOfRolls(1).createStats();
if (playerManager.getPlayerMetadata(new Player("chris").getPlayerId()) == null) {
System.out.println("Creating Chris User.");
playerManager.savePlayerMetadata(new PlayerMetadata("chris", "poop", new String(Base64.encodeBase64("chris".getBytes())), chrisBrianStats));
diff --git a/src/main/java/com/comandante/creeper/managers/NewUserRegistrationManager.java b/src/main/java/com/comandante/creeper/managers/NewUserRegistrationManager.java
index 813673794878a4119391d28e3482adf5895f5b96..0e6ef75215608867a2bbd6f9d98b3020ccfffc4c 100644
--- a/src/main/java/com/comandante/creeper/managers/NewUserRegistrationManager.java
+++ b/src/main/java/com/comandante/creeper/managers/NewUserRegistrationManager.java
@@ -3,7 +3,7 @@ package com.comandante.creeper.managers;
import com.comandante.creeper.model.Player;
import com.comandante.creeper.model.PlayerMetadata;
-import com.comandante.creeper.model.Stats;
+import com.comandante.creeper.model.StatsBuilder;
import com.comandante.creeper.server.CreeperSession;
import com.google.common.base.Optional;
import org.jboss.netty.channel.MessageEvent;
@@ -58,7 +58,7 @@ public class NewUserRegistrationManager {
return;
}
session.setPassword(Optional.of(password));
- PlayerMetadata playerMetadata = new PlayerMetadata(session.getUsername().get(), session.getPassword().get(), new Player(session.getUsername().get()).getPlayerId(), new Stats(7, 8, 6, 5, 4, 10, 100, 10, 20, 1));
+ PlayerMetadata playerMetadata = new PlayerMetadata(session.getUsername().get(), session.getPassword().get(), new Player(session.getUsername().get()).getPlayerId(), new StatsBuilder().setStrength(7).setWillpower(8).setAim(6).setAgile(5).setArmorRating(4).setMeleSkill(10).setHealth(100).setWeaponRatingMin(10).setWeaponRatingMax(20).setNumberweaponOfRolls(1).createStats());
playerManager.savePlayerMetadata(playerMetadata);
e.getChannel().write("User created.\r\n");
session.setState(CreeperSession.State.newUserRegCompleted);
diff --git a/src/main/java/com/comandante/creeper/model/Stats.java b/src/main/java/com/comandante/creeper/model/Stats.java
index d918d9487a28d0a4c26e29889d295ec52741c593..6f10c01737002e90811f731b8cd7c42683408794 100644
--- a/src/main/java/com/comandante/creeper/model/Stats.java
+++ b/src/main/java/com/comandante/creeper/model/Stats.java
@@ -124,7 +124,29 @@ public class Stats implements Serializable {
int totalVictimWin = 0;
int NUM_EXECUTION = 30000;
for (int i = 0; i < NUM_EXECUTION; i++) {
- boolean results = fight(new Stats(10, 2, 2, 2, 2, 10, 100, 10, 20, 1), new Stats(5, 1, 1, 1, 5, 1, 100, 5, 10, 1));
+ boolean results = fight(
+ new StatsBuilder()
+ .setStrength(10)
+ .setWillpower(2)
+ .setAim(2)
+ .setAgile(2)
+ .setArmorRating(2)
+ .setMeleSkill(10)
+ .setHealth(100)
+ .setWeaponRatingMin(10)
+ .setWeaponRatingMax(20)
+ .setNumberweaponOfRolls(1).createStats(),
+ new StatsBuilder()
+ .setStrength(5)
+ .setWillpower(1)
+ .setAim(1)
+ .setAgile(1)
+ .setArmorRating(5)
+ .setMeleSkill(1)
+ .setHealth(100)
+ .setWeaponRatingMin(5)
+ .setWeaponRatingMax(10)
+ .setNumberweaponOfRolls(1).createStats());
//strength, willpower, aim, agile, armorRating, meleSkill, health, weaponRatingMin, weaponRatingMax, numberweaponOfRolls
if (results) {
totalChallengerWin++;
@@ -162,35 +184,27 @@ public class Stats implements Serializable {
damageToVictim = getAttack(challenger, victim);
chanceToHitVictim = (challenger.getStrength() + challenger.getMeleSkill()) * 5 - victim.getAgile() * 5;
if (randInt(0, 100) < chanceToHitVictim) {
- // System.out.println("Attack landed on victim for : " + damageToVictim + " damage.");
victim.setHealth(victim.getHealth() - damageToVictim);
TOTAL_DAMAGE_CHALLENGER = TOTAL_DAMAGE_CHALLENGER + damageToVictim;
- // System.out.println("Victim has: " + victim.getHealth() + " health left.");
NO_HITS_CHALLENGER++;
} else {
- // System.out.println("Miss!");
NO_MISSES_CHALLENGER++;
}
damageToChallenger = getAttack(victim, challenger);
chanceToHitChallenger = (victim.getStrength() + victim.getMeleSkill()) * 5 - (challenger.getAgile() * 5);
if (randInt(0, 100) < chanceToHitChallenger) {
- // System.out.println("Attack landed on challenger for : " + damageToChallenger + " damage.");
challenger.setHealth(challenger.getHealth() - damageToChallenger);
TOTAL_DAMAGE_VICTIM = TOTAL_DAMAGE_VICTIM + damageToVictim;
NO_HITS_VICTIM++;
- // System.out.println("Challenger has: " + challenger.getHealth() + " health left.");
} else {
- //System.out.println("Miss!");
NO_MISSES_VICTIM++;
}
}
if (challenger.getHealth() > victim.getHealth()) {
- //System.out.println("CHALLENGER WINS!");
return true;
} else {
- // System.out.println("VICTIM WINS!");
return false;
}
diff --git a/src/main/java/com/comandante/creeper/model/StatsBuilder.java b/src/main/java/com/comandante/creeper/model/StatsBuilder.java
new file mode 100644
index 0000000000000000000000000000000000000000..4e5cf483ae6f3489572833ec92db037998cacf98
--- /dev/null
+++ b/src/main/java/com/comandante/creeper/model/StatsBuilder.java
@@ -0,0 +1,68 @@
+package com.comandante.creeper.model;
+
+public class StatsBuilder {
+ private int strength;
+ private int willpower;
+ private int aim;
+ private int agile;
+ private int armorRating;
+ private int meleSkill;
+ private int health;
+ private int weaponRatingMin;
+ private int weaponRatingMax;
+ private int numberweaponOfRolls;
+
+ public StatsBuilder setStrength(int strength) {
+ this.strength = strength;
+ return this;
+ }
+
+ public StatsBuilder setWillpower(int willpower) {
+ this.willpower = willpower;
+ return this;
+ }
+
+ public StatsBuilder setAim(int aim) {
+ this.aim = aim;
+ return this;
+ }
+
+ public StatsBuilder setAgile(int agile) {
+ this.agile = agile;
+ return this;
+ }
+
+ public StatsBuilder setArmorRating(int armorRating) {
+ this.armorRating = armorRating;
+ return this;
+ }
+
+ public StatsBuilder setMeleSkill(int meleSkill) {
+ this.meleSkill = meleSkill;
+ return this;
+ }
+
+ public StatsBuilder setHealth(int health) {
+ this.health = health;
+ return this;
+ }
+
+ public StatsBuilder setWeaponRatingMin(int weaponRatingMin) {
+ this.weaponRatingMin = weaponRatingMin;
+ return this;
+ }
+
+ public StatsBuilder setWeaponRatingMax(int weaponRatingMax) {
+ this.weaponRatingMax = weaponRatingMax;
+ return this;
+ }
+
+ public StatsBuilder setNumberweaponOfRolls(int numberweaponOfRolls) {
+ this.numberweaponOfRolls = numberweaponOfRolls;
+ return this;
+ }
+
+ public Stats createStats() {
+ return new Stats(strength, willpower, aim, agile, armorRating, meleSkill, health, weaponRatingMin, weaponRatingMax, numberweaponOfRolls);
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/com/comandante/creeper/npc/Derper.java b/src/main/java/com/comandante/creeper/npc/Derper.java
index c387f78834b85aaf60a607518090027f3595db85..d698d10b72311d5abe91056eab51d22b86306a2d 100644
--- a/src/main/java/com/comandante/creeper/npc/Derper.java
+++ b/src/main/java/com/comandante/creeper/npc/Derper.java
@@ -2,7 +2,7 @@ package com.comandante.creeper.npc;
import com.comandante.creeper.managers.GameManager;
-import com.comandante.creeper.model.Stats;
+import com.comandante.creeper.model.StatsBuilder;
import java.util.Arrays;
import java.util.List;
@@ -22,7 +22,7 @@ public class Derper extends Npc {
.append(RESET).toString();
public Derper(GameManager gameManager, Integer roomId) {
- super(gameManager, roomId, NAME, colorName, 0, new Stats(7, 8, 6, 5, 4, 10, 100,10, 20, 1));
+ super(gameManager, roomId, NAME, colorName, 0, new StatsBuilder().setStrength(7).setWillpower(8).setAim(6).setAgile(5).setArmorRating(4).setMeleSkill(10).setHealth(100).setWeaponRatingMin(10).setWeaponRatingMax(20).setNumberweaponOfRolls(1).createStats());
this.random = new Random();
}