From fe1abe5757e4b66aabc74a6e27697b4dc7b42ef9 Mon Sep 17 00:00:00 2001
From: Chris Kearney <chris.kearney@urbanairship.com>
Date: Wed, 27 Aug 2014 23:22:46 -0700
Subject: [PATCH] ok

---
 .../java/com/comandante/creeper/Main.java     |  3 +-
 .../managers/NewUserRegistrationManager.java  |  4 +-
 .../com/comandante/creeper/model/Stats.java   | 32 ++++++---
 .../creeper/model/StatsBuilder.java           | 68 +++++++++++++++++++
 .../com/comandante/creeper/npc/Derper.java    |  4 +-
 5 files changed, 97 insertions(+), 14 deletions(-)
 create mode 100644 src/main/java/com/comandante/creeper/model/StatsBuilder.java

diff --git a/src/main/java/com/comandante/creeper/Main.java b/src/main/java/com/comandante/creeper/Main.java
index b5f7dd57..595c1901 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 81367379..0e6ef752 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 d918d948..6f10c017 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 00000000..4e5cf483
--- /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 c387f788..d698d10b 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();
     }
 
-- 
GitLab