From f0bff65cf13bfbe14e020354b9af98625fb80a22 Mon Sep 17 00:00:00 2001
From: Jeffrey Phillips Freeman <jeffrey.freeman@syncleus.com>
Date: Mon, 19 Mar 2018 18:06:56 -0400
Subject: [PATCH] Fixed bug where cooldown progress wasnt showing correctly.
 Improved the visual for the cooldownc ommand.

---
 .../syncleus/aethermud/core/GameManager.java   | 18 ++++++++++++++----
 .../syncleus/aethermud/player/CoolDown.java    |  7 +++++++
 .../storage/graphdb/model/CoolDownData.java    |  2 +-
 3 files changed, 22 insertions(+), 5 deletions(-)

diff --git a/src/main/java/com/syncleus/aethermud/core/GameManager.java b/src/main/java/com/syncleus/aethermud/core/GameManager.java
index eb3c2e66..83e04fbd 100644
--- a/src/main/java/com/syncleus/aethermud/core/GameManager.java
+++ b/src/main/java/com/syncleus/aethermud/core/GameManager.java
@@ -669,7 +669,7 @@ public class GameManager {
         sb.append("[");
         int numberOfProgressBarNotches = getNumberOfProgressBarNotches(pct);
         for (int i = 0; i < numberOfProgressBarNotches; i++) {
-            sb.append("+");
+            sb.append("â– ");
         }
         for (int i = numberOfProgressBarNotches; i < 10; i++) {
             sb.append(" ");
@@ -688,10 +688,14 @@ public class GameManager {
     }
 
     public String renderCoolDownString(Set<? extends CoolDown> coolDowns) {
-        Table t = new Table(2, BorderStyle.CLASSIC_COMPATIBLE,
+        Table t = new Table(5, BorderStyle.CLASSIC_COMPATIBLE,
                 ShownBorders.NONE);
 
-        t.setColumnWidth(0, 19, 25);
+        t.setColumnWidth(0, 13, 13);
+        t.setColumnWidth(1, 2, 10);
+        t.setColumnWidth(2, 3, 3);
+        t.setColumnWidth(3, 2, 10);
+        t.setColumnWidth(4, 10, 25);
         // t.setColumnWidth(1, 10, 13);
 
         int i = 1;
@@ -699,9 +703,15 @@ public class GameManager {
             int percent = 100 - (int) (((coolDown.getOriginalNumberOfTicks() - coolDown.getNumberOfTicks()) * 100.0f) / coolDown.getOriginalNumberOfTicks());
             // 1 tick == .5 seconds.
             int approxSecondsRemaining = coolDown.getNumberOfTicks() / 2;
+            int approxSecondsOriginal = coolDown.getOriginalNumberOfTicks() / 2;
             FriendlyTime friendlyTime = new FriendlyTime(approxSecondsRemaining);
+            FriendlyTime friendlyTimeOriginal = new FriendlyTime(approxSecondsOriginal);
             String friendlyFormattedShort = friendlyTime.getFriendlyFormattedShort();
-            t.addCell(drawProgressBar(percent) + friendlyFormattedShort);
+            String friendlyOriginalFormattedShort = friendlyTimeOriginal.getFriendlyFormattedShort();
+            t.addCell(drawProgressBar(percent) + " ");
+            t.addCell(friendlyFormattedShort);
+            t.addCell(" / " );
+            t.addCell(friendlyOriginalFormattedShort + " ");
             t.addCell(coolDown.getName());
             i++;
         }
diff --git a/src/main/java/com/syncleus/aethermud/player/CoolDown.java b/src/main/java/com/syncleus/aethermud/player/CoolDown.java
index 0d94a015..4d0ba41e 100644
--- a/src/main/java/com/syncleus/aethermud/player/CoolDown.java
+++ b/src/main/java/com/syncleus/aethermud/player/CoolDown.java
@@ -37,6 +37,13 @@ public class CoolDown {
         this.originalNumberOfTicks = numberOfTicks;
     }
 
+    public CoolDown(String name, int numberOfTicks, int originalNumberOfTicks, CoolDownType coolDownType){
+        this.name = name;
+        this.numberOfTicks = numberOfTicks;
+        this.coolDownType = coolDownType;
+        this.originalNumberOfTicks = originalNumberOfTicks;
+    }
+
     public CoolDownType getCoolDownType() {
         return coolDownType;
     }
diff --git a/src/main/java/com/syncleus/aethermud/storage/graphdb/model/CoolDownData.java b/src/main/java/com/syncleus/aethermud/storage/graphdb/model/CoolDownData.java
index b7927aaa..e572babf 100644
--- a/src/main/java/com/syncleus/aethermud/storage/graphdb/model/CoolDownData.java
+++ b/src/main/java/com/syncleus/aethermud/storage/graphdb/model/CoolDownData.java
@@ -53,7 +53,7 @@ public abstract class CoolDownData extends AbstractInterceptingVertexFrame {
     }
 
     public static CoolDown copyCoolDown(CoolDownData src) {
-        return new CoolDown(src.getName(), src.getNumberOfTicks(), src.getCoolDownType());
+        return new CoolDown(src.getName(), src.getNumberOfTicks(), src.getOriginalNumberOfTicks(), src.getCoolDownType());
     }
 
     public void decrementTick() {
-- 
GitLab