OSDN Git Service

24時間を超える入渠タイマーの表示をhh:mm:ssの形式にする
authorKazuhiro Fujieda <fujieda@users.sourceforge.jp>
Fri, 23 Jan 2015 13:43:20 +0000 (22:43 +0900)
committerKazuhiro Fujieda <fujieda@users.sourceforge.jp>
Sat, 24 Jan 2015 03:36:22 +0000 (12:36 +0900)
KancolleSniffer/MainForm.cs
KancolleSniffer/ShipInfoLabels.cs
KancolleSniffer/Sniffer.cs

index 96925fe..c8350da 100644 (file)
@@ -471,7 +471,9 @@ namespace KancolleSniffer
                     (label, mission) => new {label, mission.Name, mission.Timer}))\r
             {\r
                 entry.Timer.Update();\r
-                SetTimerLabel(entry.label, entry.Timer);\r
+                SetTimerColor(entry.label, entry.Timer);\r
+                var rest = entry.Timer.Rest;\r
+                entry.label.Text = rest.Days == 0 ? rest.ToString(@"hh\:mm\:ss") : rest.ToString(@"d\.hh\:mm");\r
                 if (!entry.Timer.NeedRing)\r
                     continue;\r
                 _noticeQueue.Enqueue("遠征が終わりました", entry.Name, _config.MissionSoundFile);\r
@@ -481,7 +483,8 @@ namespace KancolleSniffer
             {\r
                 var entry = _sniffer.NDock[i];\r
                 entry.Timer.Update();\r
-                SetTimerLabel(_ndockLabels[i][0], entry.Timer);\r
+                SetTimerColor(_ndockLabels[i][0], entry.Timer);\r
+                _ndockLabels[i][0].SetRepairTime(entry.Timer.Rest);\r
                 if (!entry.Timer.NeedRing)\r
                     continue;\r
                 _noticeQueue.Enqueue("入渠が終わりました", entry.Name, _config.NDockSoundFile);\r
@@ -492,7 +495,8 @@ namespace KancolleSniffer
             {\r
                 var timer = _sniffer.KDock[i];\r
                 timer.Update();\r
-                SetTimerLabel(kdock[i], timer);\r
+                SetTimerColor(kdock[i], timer);\r
+                kdock[i].Text = timer.Rest.ToString(@"hh\:mm\:ss");\r
                 if (!timer.NeedRing)\r
                     continue;\r
                 _noticeQueue.Enqueue("建造が終わりました", string.Format("第{0:D}ドック", i + 1), _config.KDockSoundFile);\r
@@ -502,10 +506,9 @@ namespace KancolleSniffer
             UpdateAkashiTimer();\r
         }\r
 \r
-        private void SetTimerLabel(Label label, RingTimer timer)\r
+        private void SetTimerColor(Label label, RingTimer timer)\r
         {\r
             label.ForeColor = timer.IsFinished ? Color.Red : Color.Black;\r
-            label.Text = timer.ToString();\r
         }\r
 \r
         private void UpdateCondTimers()\r
index 8adc0c5..a49de55 100644 (file)
@@ -283,8 +283,12 @@ namespace KancolleSniffer
 \r
         public void SetRepairTime(ShipStatus status)\r
         {\r
-            var t = status.RepairTime;\r
-            Text = string.Format(@"{0:d2}:{1:mm\:ss}", (int)t.TotalHours, t);\r
+            SetRepairTime(status.RepairTime);\r
+        }\r
+\r
+        public void SetRepairTime(TimeSpan span)\r
+        {\r
+            Text = string.Format(@"{0:d2}:{1:mm\:ss}", (int)span.TotalHours, span);\r
         }\r
 \r
         public void SetFleet(ShipStatus status)\r
index 85b6f0e..8632c2e 100644 (file)
@@ -435,9 +435,10 @@ namespace KancolleSniffer
     public class RingTimer\r
     {\r
         private DateTime _endTime;\r
-        private TimeSpan _rest;\r
         private readonly TimeSpan _spare;\r
 \r
+        public TimeSpan Rest { get; private set; }\r
+\r
         public RingTimer(int spare = 60)\r
         {\r
             _spare = TimeSpan.FromSeconds(spare);\r
@@ -461,13 +462,13 @@ namespace KancolleSniffer
         {\r
             if (_endTime == DateTime.MinValue)\r
             {\r
-                _rest = TimeSpan.Zero;\r
+                Rest = TimeSpan.Zero;\r
                 return;\r
             }\r
-            _rest = _endTime - DateTime.Now;\r
-            if (_rest < TimeSpan.Zero)\r
-                _rest = TimeSpan.Zero;\r
-            if (_rest > _spare || IsFinished)\r
+            Rest = _endTime - DateTime.Now;\r
+            if (Rest < TimeSpan.Zero)\r
+                Rest = TimeSpan.Zero;\r
+            if (Rest > _spare || IsFinished)\r
                 return;\r
             IsFinished = true;\r
             NeedRing = true;\r
@@ -475,10 +476,5 @@ namespace KancolleSniffer
 \r
         public bool IsFinished { get; private set; }\r
         public bool NeedRing { get; set; }\r
-\r
-        public override string ToString()\r
-        {\r
-            return _rest.Days == 0 ? _rest.ToString(@"hh\:mm\:ss") : _rest.ToString(@"d\.hh\:mm");\r
-        }\r
     }\r
 }
\ No newline at end of file