OSDN Git Service

強制帰投中の遠征タイマーをマイナスにする
authorKazuhiro Fujieda <fujieda@users.osdn.me>
Mon, 13 Jul 2020 01:04:25 +0000 (10:04 +0900)
committerKazuhiro Fujieda <fujieda@users.osdn.me>
Sun, 30 Aug 2020 05:58:23 +0000 (14:58 +0900)
KancolleSniffer/Model/AlarmTimer.cs
KancolleSniffer/Model/MissionInfo.cs
KancolleSniffer/View/MainWindow/MissionPanel.cs

index 4af799e..9568716 100644 (file)
@@ -35,6 +35,8 @@ namespace KancolleSniffer.Model
         private bool _finished;\r
         private DateTime _endTime;\r
 \r
+        public bool Minus { private get; set; }\r
+\r
         public bool IsFinished(DateTime now) => _endTime != DateTime.MinValue && _endTime - now < _spare || _finished;\r
 \r
         public AlarmTimer(int spare = 60)\r
@@ -72,7 +74,8 @@ namespace KancolleSniffer.Model
             if (endTime)\r
                 return _endTime.ToString(@"dd\ HH\:mm", CultureInfo.InvariantCulture);\r
             var rest = _finished || _endTime - now < TimeSpan.Zero ? TimeSpan.Zero : _endTime - now;\r
-            return $"{(int)rest.TotalHours:d2}:" + rest.ToString(@"mm\:ss", CultureInfo.InvariantCulture);\r
+            return $"{(Minus && rest != TimeSpan.Zero ? "-" : "")}{(int)rest.TotalHours:d2}:" +\r
+                   rest.ToString(@"mm\:ss", CultureInfo.InvariantCulture);\r
         }\r
     }\r
 }
\ No newline at end of file
index b2939e7..2de6310 100644 (file)
@@ -53,6 +53,7 @@ namespace KancolleSniffer.Model
                 }\r
                 _missions[id].Name = _missionNames.TryGetValue((int)mission[1], out var name) ? name : "不明";\r
                 _missions[id].Timer.SetEndTime(mission[2]);\r
+                _missions[id].Timer.Minus = (int)mission[0] == 3;\r
             }\r
         }\r
 \r
index 8d13031..b915da6 100644 (file)
@@ -64,15 +64,14 @@ namespace KancolleSniffer.View.MainWindow
                         Location = new Point(LeftMargin + 30, y),\r
                         Size = new Size(135, LabelHeight)\r
                     },\r
-                    Timer = new Label\r
+                    Timer = new GrowLeftLabel()\r
                     {\r
-                        Location = new Point(LeftMargin + 165, y),\r
-                        Size = new Size(51, LabelHeight),\r
-                        TextAlign = ContentAlignment.MiddleRight\r
+                        Location = new Point(LeftMargin + 216, y),\r
+                        GrowLeft = true\r
                     }\r
                 };\r
             }\r
-            Controls.AddRange(_labels.SelectMany(l => new Control[] {l.Number, l.Params, l.Name, l.Timer}).ToArray());\r
+            Controls.AddRange(_labels.SelectMany(l => new Control[] {l.Number, l.Params, l.Timer, l.Name}).ToArray());\r
             SetCursor();\r
             SetClickHandler();\r
         }\r