OSDN Git Service

隠れ疲労のタイマーを追加する
authorKazuhiro Fujieda <fujieda@users.sourceforge.jp>
Sun, 22 Dec 2013 00:55:46 +0000 (09:55 +0900)
committerKazuhiro Fujieda <fujieda@users.sourceforge.jp>
Sat, 4 Jan 2014 03:43:06 +0000 (12:43 +0900)
KancolleSniffer/MainForm.Designer.cs
KancolleSniffer/MainForm.cs

index d998d2c..a54940f 100644 (file)
@@ -56,6 +56,8 @@ namespace KancolleSniffer
             this.label1 = new System.Windows.Forms.Label();\r
             this.labelFleet1 = new System.Windows.Forms.Label();\r
             this.panelFleet1 = new System.Windows.Forms.Panel();\r
+            this.label21 = new System.Windows.Forms.Label();\r
+            this.labelCondTimer3 = new System.Windows.Forms.Label();\r
             this.label20 = new System.Windows.Forms.Label();\r
             this.labelCondTimer2 = new System.Windows.Forms.Label();\r
             this.labelCondTimer1 = new System.Windows.Forms.Label();\r
@@ -230,6 +232,8 @@ namespace KancolleSniffer
             // panelFleet1\r
             // \r
             this.panelFleet1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;\r
+            this.panelFleet1.Controls.Add(this.label21);\r
+            this.panelFleet1.Controls.Add(this.labelCondTimer3);\r
             this.panelFleet1.Controls.Add(this.label20);\r
             this.panelFleet1.Controls.Add(this.labelCondTimer2);\r
             this.panelFleet1.Controls.Add(this.labelCondTimer1);\r
@@ -273,10 +277,28 @@ namespace KancolleSniffer
             this.panelFleet1.Size = new System.Drawing.Size(259, 135);\r
             this.panelFleet1.TabIndex = 2;\r
             // \r
+            // label21\r
+            // \r
+            this.label21.AutoSize = true;\r
+            this.label21.Location = new System.Drawing.Point(188, 117);\r
+            this.label21.Name = "label21";\r
+            this.label21.Size = new System.Drawing.Size(28, 12);\r
+            this.label21.TabIndex = 39;\r
+            this.label21.Text = "隠れ";\r
+            // \r
+            // labelCondTimer3\r
+            // \r
+            this.labelCondTimer3.Location = new System.Drawing.Point(223, 117);\r
+            this.labelCondTimer3.Name = "labelCondTimer3";\r
+            this.labelCondTimer3.Size = new System.Drawing.Size(31, 12);\r
+            this.labelCondTimer3.TabIndex = 38;\r
+            this.labelCondTimer3.Text = "00:00";\r
+            this.labelCondTimer3.TextAlign = System.Drawing.ContentAlignment.MiddleRight;\r
+            // \r
             // label20\r
             // \r
             this.label20.AutoSize = true;\r
-            this.label20.Location = new System.Drawing.Point(188, 117);\r
+            this.label20.Location = new System.Drawing.Point(116, 117);\r
             this.label20.Name = "label20";\r
             this.label20.Size = new System.Drawing.Size(29, 12);\r
             this.label20.TabIndex = 36;\r
@@ -284,7 +306,7 @@ namespace KancolleSniffer
             // \r
             // labelCondTimer2\r
             // \r
-            this.labelCondTimer2.Location = new System.Drawing.Point(223, 117);\r
+            this.labelCondTimer2.Location = new System.Drawing.Point(151, 117);\r
             this.labelCondTimer2.Name = "labelCondTimer2";\r
             this.labelCondTimer2.Size = new System.Drawing.Size(31, 12);\r
             this.labelCondTimer2.TabIndex = 37;\r
@@ -293,7 +315,7 @@ namespace KancolleSniffer
             // \r
             // labelCondTimer1\r
             // \r
-            this.labelCondTimer1.Location = new System.Drawing.Point(151, 117);\r
+            this.labelCondTimer1.Location = new System.Drawing.Point(79, 117);\r
             this.labelCondTimer1.Name = "labelCondTimer1";\r
             this.labelCondTimer1.Size = new System.Drawing.Size(31, 12);\r
             this.labelCondTimer1.TabIndex = 35;\r
@@ -303,7 +325,7 @@ namespace KancolleSniffer
             // label19\r
             // \r
             this.label19.AutoSize = true;\r
-            this.label19.Location = new System.Drawing.Point(116, 117);\r
+            this.label19.Location = new System.Drawing.Point(44, 117);\r
             this.label19.Name = "label19";\r
             this.label19.Size = new System.Drawing.Size(29, 12);\r
             this.label19.TabIndex = 34;\r
@@ -1174,6 +1196,8 @@ namespace KancolleSniffer
         private System.Windows.Forms.Label labelCondTimer1;\r
         private System.Windows.Forms.Label label19;\r
         private System.Windows.Forms.Label label20;\r
+        private System.Windows.Forms.Label label21;\r
+        private System.Windows.Forms.Label labelCondTimer3;\r
     }\r
 }\r
 \r
index 21b3b84..ecc7dbf 100644 (file)
@@ -47,8 +47,7 @@ namespace KancolleSniffer
         private DateTime _questLastUpdated;\r
         private bool _slotRinged;\r
         private bool _updateCond;\r
-        private DateTime _condEndTime1;\r
-        private DateTime _condEndTime2;\r
+        private DateTime[] _condEndTime = new DateTime[3];\r
 \r
         private readonly string _shipNamesFile =\r
             Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), "shipnames.json");\r
@@ -262,7 +261,7 @@ namespace KancolleSniffer
                 if (id == 1)\r
                 {\r
                     Invoke((Action<string>)(text => labelFleet1.Text = text), (string)entry.api_name);\r
-                    for (var i = 0; i < 6; i++)\r
+                    for (var i = 0; i < _deckShips.Count(); i++)\r
                     {\r
                         var ship = (int)entry.api_ship[i];\r
                         if (_deckShips[i] != ship)\r
@@ -325,9 +324,14 @@ namespace KancolleSniffer
 \r
         private void SetCondTimers(int cond)\r
         {\r
-            var now = DateTime.Now;\r
-            _condEndTime1 = (cond < 30) ? now.AddMinutes((30 - cond + 2) / 3 * 3) : DateTime.MinValue;\r
-            _condEndTime2 = (cond < 40) ? now.AddMinutes((40 - cond + 2) / 3 * 3) : DateTime.MinValue;\r
+            _condEndTime[0] = CondTimerEndTime(cond, 30);\r
+            _condEndTime[1] = CondTimerEndTime(cond, 40);\r
+            _condEndTime[2] = CondTimerEndTime(cond, 49);\r
+        }\r
+\r
+        private DateTime CondTimerEndTime(int cond, int thresh)\r
+        {\r
+            return (cond < thresh) ? DateTime.Now.AddMinutes((thresh - cond + 2) / 3 * 3) : DateTime.MinValue;\r
         }\r
 \r
         private void ParseQuestList(dynamic json)\r
@@ -427,7 +431,7 @@ namespace KancolleSniffer
 \r
             if (_shipStatuses.Count == 0)\r
                 return;\r
-            for (var i = 0; i < 6; i++)\r
+            for (var i = 0; i < _deckShips.Count(); i++)\r
             {\r
                 var id = _deckShips[i];\r
                 ShipState info;\r
@@ -517,14 +521,13 @@ namespace KancolleSniffer
 \r
         private void UpdateCondTimers()\r
         {\r
+            var label = new[] {labelCondTimer1, labelCondTimer2, labelCondTimer3};\r
             var now = DateTime.Now;\r
-            var min = DateTime.MinValue;\r
-            labelCondTimer1.Text = (_condEndTime1 != min && _condEndTime1 > now)\r
-                ? (_condEndTime1 - now).ToString(@"mm\:ss")\r
-                : "00:00";\r
-            labelCondTimer2.Text = (_condEndTime2 != min && _condEndTime2 > now)\r
-                ? (_condEndTime2 - now).ToString(@"mm\:ss")\r
-                : "00:00";\r
+            for (var i = 0; i < label.Count(); i++)\r
+            {\r
+                var timer = _condEndTime[i];\r
+                label[i].Text = timer != DateTime.MinValue && timer > now ? (timer - now).ToString(@"mm\:ss") : "00:00";\r
+            }\r
         }\r
 \r
         private void UpdateQuestList()\r
@@ -534,12 +537,12 @@ namespace KancolleSniffer
             var i = 0;\r
             foreach (var quest in _questList.Values)\r
             {\r
-                if (i == 5)\r
+                if (i == progress.Count())\r
                     break;\r
                 name[i].Text = quest.Name;\r
                 progress[i++].Text = string.Format("{0:D}%", quest.Progress);\r
             }\r
-            for (; i < 5; i++)\r
+            for (; i < progress.Count(); i++)\r
             {\r
                 name[i].Text = "";\r
                 progress[i].Text = "";\r