for (var i = 0; i < _labels.Length; i++)\r
{\r
var labels = _labels[i];\r
- if (i < statuses.Length)\r
- {\r
- var s = statuses[i];\r
- labels[0].SetHp(s);\r
- labels[1].SetCond(s);\r
- labels[2].SetLevel(s);\r
- labels[3].SetExpToNext(s);\r
- labels[4].SetName(s, ShipNameWidth.MainPanel);\r
- }\r
- else\r
- {\r
- labels[0].Text = labels[1].Text = labels[2].Text = labels[3].Text = "";\r
- labels[4].SetName("");\r
- labels[0].BackColor = labels[1].BackColor = labels[0].PresetColor;\r
- }\r
+ var s = i < statuses.Length ? statuses[i] : null;\r
+ labels[0].SetHp(s);\r
+ labels[1].SetCond(s);\r
+ labels[2].SetLevel(s);\r
+ labels[3].SetExpToNext(s);\r
+ labels[4].SetName(s, ShipNameWidth.MainPanel);\r
}\r
}\r
\r
var idx = i % ShipInfo.MemberCount;\r
var statuses = i < ShipInfo.MemberCount ? first : second;\r
var labels = _combinedLabels[i];\r
- if (idx < statuses.Length)\r
- {\r
- var s = statuses[idx];\r
- labels[0].SetHp(s);\r
- labels[1].SetCond(s);\r
- labels[2].SetName(s, ShipNameWidth.Combined);\r
- }\r
- else\r
- {\r
- labels[0].Text = labels[1].Text = "";\r
- labels[2].SetName("");\r
- labels[0].BackColor = labels[1].BackColor = labels[0].PresetColor;\r
- }\r
+ var s = idx < statuses.Length ? statuses[idx] : null;\r
+ labels[0].SetHp(s);\r
+ labels[1].SetCond(s);\r
+ labels[2].SetName(s, ShipNameWidth.Combined);\r
}\r
}\r
\r
\r
public void SetName(ShipStatus status, ShipNameWidth width = ShipNameWidth.Max)\r
{\r
- SlotStatus empty = SlotStatus.Equipped;\r
+ if (status == null)\r
+ {\r
+ SetName("");\r
+ return;\r
+ }\r
+ var empty = SlotStatus.Equipped;\r
if (status.Id != -1)\r
{\r
if (status.Slot.All(item => item.Id == -1))\r
}\r
var dc = status.PreparedDamageControl;\r
var dcname = dc == 42 ? "[ダ]" : dc == 43 ? "[メ]" : "";\r
- SetName((status.Escaped ? "[避]" : dcname), status.Name, empty, width);\r
+ SetName(status.Escaped ? "[避]" : dcname, status.Name, empty, width);\r
}\r
\r
public void SetName(string name)\r
private void SetName(string prefix, string name, SlotStatus slotStatus, ShipNameWidth width = ShipNameWidth.Max)\r
{\r
if (name == null)\r
- return;\r
+ name = "";\r
_slotStatus = slotStatus;\r
var lu = new Regex(@"^\p{Lu}").IsMatch(name);\r
var shift = (int)Round(ScaleFactor.Height);\r
\r
public void SetHp(ShipStatus status)\r
{\r
+ if (status == null)\r
+ {\r
+ Text = "";\r
+ BackColor = PresetColor;\r
+ return;\r
+ }\r
Text = $"{status.NowHp:D}/{status.MaxHp:D}";\r
BackColor = DamageColor(status, PresetColor);\r
}\r
\r
public void SetCond(ShipStatus status)\r
{\r
+ if (status == null)\r
+ {\r
+ Text = "";\r
+ BackColor = PresetColor;\r
+ return;\r
+ }\r
var cond = status.Cond;\r
Text = cond.ToString("D");\r
BackColor = cond >= 50\r
\r
public void SetLevel(ShipStatus status)\r
{\r
- Text = status.Level.ToString("D");\r
+ Text = status?.Level.ToString("D");\r
}\r
\r
public void SetExpToNext(ShipStatus status)\r
{\r
- Text = status.ExpToNext.ToString("D");\r
+ Text = status?.ExpToNext.ToString("D");\r
}\r
\r
public void SetRepairTime(ShipStatus status)\r
{\r
+ if (status == null)\r
+ {\r
+ Text = "";\r
+ return;\r
+ }\r
SetRepairTime(status.RepairTime);\r
}\r
\r
\r
public void SetFleet(ShipStatus status)\r
{\r
- Text = new[] {"", "1", "2", "3", "4"}[status.Fleet + 1];\r
+ Text = status == null ? "" : new[] {"", "1", "2", "3", "4"}[status.Fleet + 1];\r
}\r
\r
protected override void OnLayout(LayoutEventArgs levent)\r