(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
{\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
{\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
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
\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
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
{\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
\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