{\r
a[fleet].Tag = fleet;\r
a[fleet].Click += labelFleet_Click;\r
+ a[fleet].DoubleClick += labelFleet_DoubleClick;\r
}\r
}\r
}\r
labelFleet1.Text = _combinedFleet ? "連合" : "第一";\r
}\r
\r
+ private void labelFleet_DoubleClick(object sender, EventArgs e)\r
+ {\r
+ if (!_started)\r
+ return;\r
+ var fleet = (int)((Label)sender).Tag;\r
+ var text = TextGenerator.GenerateFleetData(_sniffer, fleet);\r
+ if (string.IsNullOrEmpty(text))\r
+ return;\r
+ Clipboard.SetText(text);\r
+ _tooltipCopy.Active = true;\r
+ _tooltipCopy.Show("コピーしました。", (Label)sender);\r
+ Task.Run(async () =>\r
+ {\r
+ await Task.Delay(1000);\r
+ _tooltipCopy.Active = false;\r
+ });\r
+ }\r
+\r
private readonly Color _activeButtonColor = Color.FromArgb(152, 179, 208);\r
\r
private void labelBucketHistoryButton_Click(object sender, EventArgs e)\r
{\r
var dict = new ItemName();\r
var sb = new StringBuilder();\r
+ for (var f = 0; f < ShipInfo.FleetCount; f++)\r
+ sb.Append(GenerateFleetData(sniffer, f, dict));\r
+ sb.Append(GenerateBaseAirCorps(sniffer, dict));\r
+ return sb.ToString();\r
+ }\r
+\r
+ public static string GenerateFleetData(Sniffer sniffer, int fleet)\r
+ {\r
+ return GenerateFleetData(sniffer, fleet, new ItemName()).ToString();\r
+ }\r
+\r
+ private static StringBuilder GenerateFleetData(Sniffer sniffer, int fleet, ItemName dict)\r
+ {\r
+ var sb = new StringBuilder();\r
var fn = new[] {"第一艦隊", "第二艦隊", "第三艦隊", "第四艦隊"};\r
- for (var f = 0; f < fn.Length; f++)\r
- {\r
- sb.Append(fn[f] + "\r\n");\r
- sb.Append(string.Concat(from s in sniffer.GetShipStatuses(f)\r
- select ($"{s.Name} Lv{s.Level} " +\r
- string.Join(",",\r
- from item in s.AllSlot\r
- where item.Id != -1\r
- select dict[item.Spec.Name] + ItemStatusString(item))).TrimEnd(' ') + "\r\n"));\r
- var fp = sniffer.GetFighterPower(f);\r
- sb.Append($"制空: {(fp[0] == fp[1] ? fp[0].ToString() : fp[0] + "~" + fp[1])} " +\r
- $"索敵: {sniffer.GetFleetLineOfSights(f, 1):F1}\r\n");\r
- }\r
- if (sniffer.BaseAirCorps != null)\r
+ sb.Append(fn[fleet] + "\r\n");\r
+ sb.Append(string.Concat(from s in sniffer.GetShipStatuses(fleet)\r
+ select ($"{s.Name} Lv{s.Level} " +\r
+ string.Join(",",\r
+ from item in s.AllSlot\r
+ where item.Id != -1\r
+ select dict[item.Spec.Name] + ItemStatusString(item))).TrimEnd(' ') + "\r\n"));\r
+ var fp = sniffer.GetFighterPower(fleet);\r
+ sb.Append($"制空: {(fp[0] == fp[1] ? fp[0].ToString() : fp[0] + "~" + fp[1])} " +\r
+ $"索敵: {sniffer.GetFleetLineOfSights(fleet, 1):F1}\r\n");\r
+ return sb;\r
+ }\r
+\r
+ private static StringBuilder GenerateBaseAirCorps(Sniffer sniffer, ItemName dict)\r
+ {\r
+ var sb = new StringBuilder();\r
+ if (sniffer.BaseAirCorps == null)\r
+ return sb;\r
+ foreach (var baseInfo in sniffer.BaseAirCorps)\r
{\r
- foreach (var baseInfo in sniffer.BaseAirCorps)\r
+ sb.Append(baseInfo.AreaName + " 基地航空隊\r\n");\r
+ var i = 0;\r
+ var name = new[] {"第一 ", "第二 ", "第三 "};\r
+ foreach (var airCorps in baseInfo.AirCorps)\r
{\r
- sb.Append(baseInfo.AreaName + " 基地航空隊\r\n");\r
- var i = 0;\r
- var name = new[] {"第一 ", "第二 ", "第三 "};\r
- foreach (var airCorps in baseInfo.AirCorps)\r
- {\r
- sb.Append(name[i++]);\r
- sb.Append(\r
- string.Join(",",\r
- from plane in airCorps.Planes\r
- select plane.State == 1\r
- ? dict[plane.Slot.Spec.Name] + ItemStatusString(plane.Slot)\r
- : plane.StateName) + "\r\n");\r
- }\r
+ sb.Append(name[i++]);\r
+ sb.Append(\r
+ string.Join(",",\r
+ from plane in airCorps.Planes\r
+ select plane.State == 1\r
+ ? dict[plane.Slot.Spec.Name] + ItemStatusString(plane.Slot)\r
+ : plane.StateName) + "\r\n");\r
}\r
}\r
- return sb.ToString();\r
+ return sb;\r
}\r
\r
private static string ItemStatusString(ItemStatus item)\r