- public void CreateDamagedShipList(Control parent, EventHandler onClick)\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(0, y), Size = new Size(11, height)},\r
- new ShipLabel {Location = new Point(119, y), Size = new Size(4, height - 1)},\r
- new ShipLabel {Location = new Point(75, y), AutoSize = true},\r
- new ShipLabel {Location = new Point(9, 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();\r
- label.PresetColor = label.BackColor = ColumnColors[(i + 1) % 2];\r
- label.Click += onClick;\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 = 2, damage = 1;\r
- var parent = _panelDamagedShipList;\r
- var num = Min(list.Length, _damagedShipList.Length);\r
- if (num == 0)\r
- {\r
- parent.Size = new Size(parent.Width, (int)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)Round(ShipLabel.ScaleFactor.Height * (num * 16 + 3)));\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 = ShipLabel.DamageColor(s, labels[damage].PresetColor);\r
- }\r
- }\r
-\r