private readonly ConfigDialog _configDialog;\r
private int _currentFleet;\r
private readonly Label[] _labelCheckFleets;\r
- private readonly ShipLabel[][] _damagedShipList = new ShipLabel[14][];\r
private readonly ShipLabel[][] _ndockLabels = new ShipLabel[DockInfo.DockCount][];\r
private readonly ShipInfoLabels _shipInfoLabels;\r
private readonly ShipListForm _shipListForm;\r
ShipLabel.ScaleFactor = _scaleFactor;\r
\r
SetupFleetClick();\r
- _shipInfoLabels = new ShipInfoLabels(panelShipInfo, ShowShipOnShipList);\r
- CreateDamagedShipList();\r
+ _shipInfoLabels = new ShipInfoLabels();\r
+ _shipInfoLabels.CreateLabels(panelShipInfo, ShowShipOnShipList);\r
+ _shipInfoLabels.CreateAkashiTimers(panelShipInfo);\r
+ _shipInfoLabels.CreateDamagedShipList(panelDamagedShipList);\r
CreateNDockLabels();\r
_shipListForm = new ShipListForm(_sniffer, _config) {Owner = this};\r
_noticeQueue = new NoticeQueue(Ring);\r
NotifyAkashiTimer();\r
}\r
\r
- public void CreateDamagedShipList()\r
- {\r
- var parent = panelDamagedShipList;\r
- parent.SuspendLayout();\r
- for (var i = 0; i < _damagedShipList.Length; i++)\r
- {\r
- var y = 3 + i * 16;\r
- const int height = 12;\r
- parent.Controls.AddRange(_damagedShipList[i] = new[]\r
- {\r
- new ShipLabel {Location = new Point(1, y), Size = new Size(11, height)},\r
- new ShipLabel {Location = new Point(79, y), AutoSize = true},\r
- new ShipLabel {Location = new Point(123, y), Size = new Size(5, height - 1)},\r
- new ShipLabel {Location = new Point(10, y), AutoSize = true},\r
- new ShipLabel {Location = new Point(0, y - 2), Size = new Size(parent.Width, height + 3)}\r
- });\r
- foreach (var label in _damagedShipList[i])\r
- {\r
- label.Scale(_scaleFactor);\r
- label.PresetColor = label.BackColor = ShipInfoLabels.ColumnColors[(i + 1) % 2];\r
- }\r
- }\r
- parent.ResumeLayout();\r
- }\r
-\r
private void UpdateDamagedShipList()\r
{\r
- const int fleet = 0, name = 3, time = 1, damage = 2;\r
- var parent = panelDamagedShipList;\r
- var list = _sniffer.DamagedShipList;\r
- var num = Math.Min(list.Length, _damagedShipList.Length);\r
- if (num == 0)\r
- {\r
- parent.Size = new Size(parent.Width, (int)Math.Round(_scaleFactor.Height * 19));\r
- var labels = _damagedShipList[0];\r
- labels[fleet].Text = "";\r
- labels[name].SetName("なし");\r
- labels[time].Text = "";\r
- labels[damage].BackColor = labels[damage].PresetColor;\r
- return;\r
- }\r
- parent.Size = new Size(parent.Width, (int)Math.Round(_scaleFactor.Height * (num * 16 + 3)));\r
- var colors = new[] {Color.FromArgb(255, 225, 225, 21), Color.Orange, Color.Red};\r
- for (var i = 0; i < num; i++)\r
- {\r
- var s = list[i];\r
- var labels = _damagedShipList[i];\r
- labels[fleet].SetFleet(s);\r
- labels[name].SetName(s);\r
- labels[time].SetRepairTime(s);\r
- labels[damage].BackColor = (int)s.DamageLevel == 0\r
- ? labels[damage].PresetColor\r
- : colors[(int)s.DamageLevel - 1];\r
- }\r
+ _shipInfoLabels.SetDamagedShipList(_sniffer.DamagedShipList);\r
}\r
\r
private void UpdateQuestList()\r
{\r
private readonly ShipLabel[][] _labels = new ShipLabel[ShipInfo.MemberCount][];\r
private readonly Label[] _akashiTimers = new Label[ShipInfo.MemberCount];\r
+ private readonly ShipLabel[][] _damagedShipList = new ShipLabel[14][];\r
+ private Control _panelDamagedShipList;\r
public static Color[] ColumnColors = {SystemColors.Control, Color.FromArgb(255, 250, 250, 250)};\r
\r
- public ShipInfoLabels(Control parent, EventHandler onClick)\r
- {\r
- CreateLabels(parent, onClick);\r
- CreateAkashiTimers(parent);\r
- }\r
-\r
- private void CreateLabels(Control parent, EventHandler onClick)\r
+ public void CreateLabels(Control parent, EventHandler onClick)\r
{\r
parent.SuspendLayout();\r
const int top = 3, height = 12, lh = 16;\r
}\r
}\r
\r
- private void CreateAkashiTimers(Control parent)\r
+ public void CreateAkashiTimers(Control parent)\r
{\r
parent.SuspendLayout();\r
for (var i = 0; i < _akashiTimers.Length; i++)\r
labelHp.SetHp(stat.NowHp + timer.Diff, stat.MaxHp);\r
}\r
}\r
+\r
+ public void CreateDamagedShipList(Control parent)\r
+ {\r
+ parent.SuspendLayout();\r
+ for (var i = 0; i < _damagedShipList.Length; i++)\r
+ {\r
+ var y = 3 + i * 16;\r
+ const int height = 12;\r
+ parent.Controls.AddRange(_damagedShipList[i] = new[]\r
+ {\r
+ new ShipLabel {Location = new Point(1, y), Size = new Size(11, height)},\r
+ new ShipLabel {Location = new Point(79, y), AutoSize = true},\r
+ new ShipLabel {Location = new Point(123, y), Size = new Size(5, height - 1)},\r
+ new ShipLabel {Location = new Point(10, y), AutoSize = true},\r
+ new ShipLabel {Location = new Point(0, y - 2), Size = new Size(parent.Width, height + 3)}\r
+ });\r
+ foreach (var label in _damagedShipList[i])\r
+ {\r
+ label.Scale(ShipLabel.ScaleFactor);\r
+ label.PresetColor = label.BackColor = ColumnColors[(i + 1) % 2];\r
+ }\r
+ }\r
+ _panelDamagedShipList = parent;\r
+ parent.ResumeLayout();\r
+ }\r
+\r
+ public void SetDamagedShipList(ShipStatus[] list)\r
+ {\r
+ const int fleet = 0, name = 3, time = 1, damage = 2;\r
+ var parent = _panelDamagedShipList;\r
+ var num = Math.Min(list.Length, _damagedShipList.Length);\r
+ if (num == 0)\r
+ {\r
+ parent.Size = new Size(parent.Width, (int)Math.Round(ShipLabel.ScaleFactor.Height * 19));\r
+ var labels = _damagedShipList[0];\r
+ labels[fleet].Text = "";\r
+ labels[name].SetName("なし");\r
+ labels[time].Text = "";\r
+ labels[damage].BackColor = labels[damage].PresetColor;\r
+ return;\r
+ }\r
+ parent.Size = new Size(parent.Width, (int)Math.Round(ShipLabel.ScaleFactor.Height * (num * 16 + 3)));\r
+ var colors = new[] { Color.FromArgb(255, 225, 225, 21), Color.Orange, Color.Red };\r
+ for (var i = 0; i < num; i++)\r
+ {\r
+ var s = list[i];\r
+ var labels = _damagedShipList[i];\r
+ labels[fleet].SetFleet(s);\r
+ labels[name].SetName(s);\r
+ labels[time].SetRepairTime(s);\r
+ labels[damage].BackColor = (int)s.DamageLevel == 0\r
+ ? labels[damage].PresetColor\r
+ : colors[(int)s.DamageLevel - 1];\r
+ }\r
+ }\r
}\r
\r
[System.ComponentModel.DesignerCategory("Code")]\r