public class ConditionTimer\r
{\r
private readonly ShipInfo _shipInfo;\r
- private readonly DateTime[][] _times = new DateTime[ShipInfo.FleetCount][];\r
+ private readonly DateTime[] _times = new DateTime[ShipInfo.FleetCount];\r
private readonly bool[] _enable = new bool[ShipInfo.FleetCount];\r
private readonly int[] _cond = new int[ShipInfo.FleetCount];\r
\r
public ConditionTimer(ShipInfo shipInfo)\r
{\r
_shipInfo = shipInfo;\r
- for (var f = 0; f < _times.Length; f++)\r
- _times[f] = new DateTime[3];\r
}\r
\r
public void SetTimer()\r
{\r
_enable[fleet] = true;\r
var cond = _cond[fleet] = CondMin(fleet);\r
- var time49 = _times[fleet][2];\r
- if (cond < 49 && time49 != DateTime.MinValue) // 計時中\r
+ if (cond < 49 && _times[fleet] != DateTime.MinValue) // 計時中\r
{\r
// コンディション値から推定される残り時刻と経過時間の差\r
- var diff = TimeSpan.FromMinutes((49 - cond + 2) / 3 * 3) - (time49 - DateTime.Now);\r
+ var diff = TimeSpan.FromMinutes((49 - cond + 2) / 3 * 3) - (_times[fleet] - DateTime.Now);\r
if (diff >= TimeSpan.Zero && diff <= TimeSpan.FromMinutes(3)) // 差が0以上3分以内ならタイマーを更新しない。\r
return;\r
}\r
- var thresh = new[] {30, 40, 49};\r
- for (var i = 0; i < thresh.Length; i++)\r
- _times[fleet][i] = cond < thresh[i]\r
- ? DateTime.Now.AddMinutes((thresh[i] - cond + 2) / 3 * 3)\r
+ _times[fleet] = cond < 49\r
+ ? DateTime.Now.AddMinutes((49 - cond + 2) / 3 * 3)\r
: DateTime.MinValue;\r
}\r
}\r
.DefaultIfEmpty(49).Min();\r
}\r
\r
- public string[] GetTimerStrings(int fleet)\r
+ public DateTime GetTimer(int fleet)\r
{\r
- if (!_enable[fleet])\r
- return new[] {"無効", "無効", "無効"};\r
- var now = DateTime.Now;\r
- return\r
- (from time in _times[fleet] select time > now ? (time - now).ToString(@"mm\:ss") : "00:00")\r
- .ToArray();\r
+ return _enable[fleet] ? _times[fleet] : DateTime.MinValue;\r
}\r
}\r
}
\ No newline at end of file
this.label30 = new System.Windows.Forms.Label();\r
this.labelFormation = new System.Windows.Forms.Label();\r
this.label29 = new System.Windows.Forms.Label();\r
- this.label19 = new System.Windows.Forms.Label();\r
this.labelAirSuperiority = new System.Windows.Forms.Label();\r
this.label27 = new System.Windows.Forms.Label();\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
+ this.labelCondTimerTitle = new System.Windows.Forms.Label();\r
+ this.labelCondTimer = new System.Windows.Forms.Label();\r
this.label17 = new System.Windows.Forms.Label();\r
this.label16 = new System.Windows.Forms.Label();\r
this.label18 = new System.Windows.Forms.Label();\r
this.NotifyIconOpenToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();\r
this.NotifyIconExitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();\r
this.contextMenuStripMain = new System.Windows.Forms.ContextMenuStrip(this.components);\r
+ this.ShipListToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();\r
this.ConfigToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();\r
this.ExitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();\r
this.label22 = new System.Windows.Forms.Label();\r
this.panelDamagedShipList = new System.Windows.Forms.Panel();\r
this.labelDamgedShipListButton = new System.Windows.Forms.Label();\r
this.label31 = new System.Windows.Forms.Label();\r
- this.ShipListToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();\r
this.panelHeadquarters.SuspendLayout();\r
this.panelShipInfo.SuspendLayout();\r
this.panelBattleInfo.SuspendLayout();\r
// \r
this.panelShipInfo.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;\r
this.panelShipInfo.Controls.Add(this.panelBattleInfo);\r
- this.panelShipInfo.Controls.Add(this.label19);\r
this.panelShipInfo.Controls.Add(this.labelAirSuperiority);\r
this.panelShipInfo.Controls.Add(this.label27);\r
- this.panelShipInfo.Controls.Add(this.label21);\r
- this.panelShipInfo.Controls.Add(this.labelCondTimer3);\r
- this.panelShipInfo.Controls.Add(this.label20);\r
- this.panelShipInfo.Controls.Add(this.labelCondTimer2);\r
- this.panelShipInfo.Controls.Add(this.labelCondTimer1);\r
+ this.panelShipInfo.Controls.Add(this.labelCondTimerTitle);\r
+ this.panelShipInfo.Controls.Add(this.labelCondTimer);\r
this.panelShipInfo.Controls.Add(this.label17);\r
this.panelShipInfo.Controls.Add(this.label16);\r
this.panelShipInfo.Controls.Add(this.label18);\r
this.panelBattleInfo.Controls.Add(this.label30);\r
this.panelBattleInfo.Controls.Add(this.labelFormation);\r
this.panelBattleInfo.Controls.Add(this.label29);\r
- this.panelBattleInfo.Location = new System.Drawing.Point(63, 117);\r
+ this.panelBattleInfo.Location = new System.Drawing.Point(64, 117);\r
this.panelBattleInfo.Name = "panelBattleInfo";\r
this.panelBattleInfo.Size = new System.Drawing.Size(171, 12);\r
this.panelBattleInfo.TabIndex = 40;\r
this.label29.TabIndex = 0;\r
this.label29.Text = "交戦形";\r
// \r
- // label19\r
- // \r
- this.label19.AutoSize = true;\r
- this.label19.Location = new System.Drawing.Point(64, 117);\r
- this.label19.Name = "label19";\r
- this.label19.Size = new System.Drawing.Size(29, 12);\r
- this.label19.TabIndex = 34;\r
- this.label19.Text = "疲労";\r
- // \r
// labelAirSuperiority\r
// \r
this.labelAirSuperiority.Location = new System.Drawing.Point(29, 117);\r
this.label27.TabIndex = 23;\r
this.label27.Text = "制空";\r
// \r
- // label21\r
- // \r
- this.label21.AutoSize = true;\r
- this.label21.Location = new System.Drawing.Point(180, 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
+ // labelCondTimerTitle\r
// \r
- this.labelCondTimer3.Location = new System.Drawing.Point(205, 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
+ this.labelCondTimerTitle.AutoSize = true;\r
+ this.labelCondTimerTitle.Location = new System.Drawing.Point(148, 117);\r
+ this.labelCondTimerTitle.Name = "labelCondTimerTitle";\r
+ this.labelCondTimerTitle.Size = new System.Drawing.Size(0, 12);\r
+ this.labelCondTimerTitle.TabIndex = 39;\r
// \r
- // label20\r
+ // labelCondTimer\r
// \r
- this.label20.AutoSize = true;\r
- this.label20.Location = new System.Drawing.Point(122, 117);\r
- this.label20.Name = "label20";\r
- this.label20.Size = new System.Drawing.Size(29, 12);\r
- this.label20.TabIndex = 36;\r
- this.label20.Text = "間宮";\r
- // \r
- // labelCondTimer2\r
- // \r
- this.labelCondTimer2.Location = new System.Drawing.Point(148, 117);\r
- this.labelCondTimer2.Name = "labelCondTimer2";\r
- this.labelCondTimer2.Size = new System.Drawing.Size(31, 12);\r
- this.labelCondTimer2.TabIndex = 37;\r
- this.labelCondTimer2.Text = "00:00";\r
- this.labelCondTimer2.TextAlign = System.Drawing.ContentAlignment.MiddleRight;\r
- // \r
- // labelCondTimer1\r
- // \r
- this.labelCondTimer1.Location = new System.Drawing.Point(90, 117);\r
- this.labelCondTimer1.Name = "labelCondTimer1";\r
- this.labelCondTimer1.Size = new System.Drawing.Size(31, 12);\r
- this.labelCondTimer1.TabIndex = 35;\r
- this.labelCondTimer1.Text = "00:00";\r
- this.labelCondTimer1.TextAlign = System.Drawing.ContentAlignment.MiddleRight;\r
+ this.labelCondTimer.Location = new System.Drawing.Point(206, 117);\r
+ this.labelCondTimer.Name = "labelCondTimer";\r
+ this.labelCondTimer.Size = new System.Drawing.Size(31, 12);\r
+ this.labelCondTimer.TabIndex = 38;\r
+ this.labelCondTimer.Text = "00:00";\r
+ this.labelCondTimer.TextAlign = System.Drawing.ContentAlignment.MiddleRight;\r
// \r
// label17\r
// \r
this.ConfigToolStripMenuItem,\r
this.ExitToolStripMenuItem});\r
this.contextMenuStripMain.Name = "contextMenuStripToolTip";\r
- this.contextMenuStripMain.Size = new System.Drawing.Size(153, 92);\r
+ this.contextMenuStripMain.Size = new System.Drawing.Size(142, 70);\r
+ // \r
+ // ShipListToolStripMenuItem\r
+ // \r
+ this.ShipListToolStripMenuItem.Name = "ShipListToolStripMenuItem";\r
+ this.ShipListToolStripMenuItem.Size = new System.Drawing.Size(141, 22);\r
+ this.ShipListToolStripMenuItem.Text = "艦娘一覧(&L)";\r
+ this.ShipListToolStripMenuItem.Click += new System.EventHandler(this.ShipListToolStripMenuItem_Click);\r
// \r
// ConfigToolStripMenuItem\r
// \r
this.ConfigToolStripMenuItem.Name = "ConfigToolStripMenuItem";\r
- this.ConfigToolStripMenuItem.Size = new System.Drawing.Size(152, 22);\r
+ this.ConfigToolStripMenuItem.Size = new System.Drawing.Size(141, 22);\r
this.ConfigToolStripMenuItem.Text = "設定(&O)";\r
this.ConfigToolStripMenuItem.Click += new System.EventHandler(this.ConfigToolStripMenuItem_Click);\r
// \r
// ExitToolStripMenuItem\r
// \r
this.ExitToolStripMenuItem.Name = "ExitToolStripMenuItem";\r
- this.ExitToolStripMenuItem.Size = new System.Drawing.Size(152, 22);\r
+ this.ExitToolStripMenuItem.Size = new System.Drawing.Size(141, 22);\r
this.ExitToolStripMenuItem.Text = "終了(&X)";\r
this.ExitToolStripMenuItem.Click += new System.EventHandler(this.ExitToolStripMenuItem_Click);\r
// \r
this.label31.TabIndex = 46;\r
this.label31.Text = "要修復";\r
// \r
- // ShipListToolStripMenuItem\r
- // \r
- this.ShipListToolStripMenuItem.Name = "ShipListToolStripMenuItem";\r
- this.ShipListToolStripMenuItem.Size = new System.Drawing.Size(152, 22);\r
- this.ShipListToolStripMenuItem.Text = "艦娘一覧(&L)";\r
- this.ShipListToolStripMenuItem.Click += new System.EventHandler(this.ShipListToolStripMenuItem_Click);\r
- // \r
// MainForm\r
// \r
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);\r
private System.Windows.Forms.Label label4;\r
private System.Windows.Forms.Label label17;\r
private System.Windows.Forms.Label label16;\r
- private System.Windows.Forms.Label labelCondTimer2;\r
- 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
+ private System.Windows.Forms.Label labelCondTimerTitle;\r
+ private System.Windows.Forms.Label labelCondTimer;\r
private System.Windows.Forms.NotifyIcon notifyIconMain;\r
private System.Windows.Forms.ContextMenuStrip contextMenuStripMain;\r
private System.Windows.Forms.ToolStripMenuItem ConfigToolStripMenuItem;\r