OSDN Git Service

艦隊情報で艦隊の火力の合計と燃費を表示する
[kancollesniffer/KancolleSniffer.git] / KancolleSniffer / FleetPanel.cs
index fbcfe22..562fd53 100644 (file)
@@ -28,7 +28,7 @@ namespace KancolleSniffer
         private Record[] _table;\r
         private readonly List<FleetLabels> _labelList = new List<FleetLabels>();\r
         private readonly List<Panel> _panelList = new List<Panel>();\r
-        private readonly ResizableToolTip _toolTip = new ResizableToolTip {ShowAlways = true};\r
+        private readonly ResizableToolTip _toolTip = new ResizableToolTip {ShowAlways = true, AutoPopDelay = 10000};\r
 \r
         private class Record\r
         {\r
@@ -68,8 +68,11 @@ namespace KancolleSniffer
                 var drumTotal = 0;\r
                 var drumShips = 0;\r
                 var levelTotal = 0;\r
+                var fpTotal = 0;\r
                 var aswTotal = 0;\r
                 var antiAirTotal = 0;\r
+                var fuelTotal = 0;\r
+                var bullTotal = 0;\r
                 var losTotal = 0;\r
                 var ships = new List<Record>();\r
                 foreach (var s in sniffer.GetShipStatuses(f))\r
@@ -114,9 +117,12 @@ namespace KancolleSniffer
                         drumShips++;\r
                     drumTotal += drum;\r
                     levelTotal += s.Level;\r
+                    fpTotal += s.Firepower;\r
                     aswTotal += s.MissionAntiSubmarine;\r
                     antiAirTotal += s.AntiAir;\r
                     losTotal += s.LoS;\r
+                    fuelTotal += Math.Max((int)(s.Spec.FuelMax * (s.Level >= 100 ? 0.85 : 1.0)), 1);\r
+                    bullTotal += Math.Max((int)(s.Spec.BullMax * (s.Level >= 100 ? 0.85 : 1.0)), 1);\r
                     var fire = s.EffectiveFirepower;\r
                     var subm = s.EffectiveAntiSubmarine;\r
                     var torp = s.EffectiveTorpedo;\r
@@ -147,12 +153,15 @@ namespace KancolleSniffer
                 list.Add(new Record\r
                 {\r
                     Fleet = fn[f] + (levelTotal == 0 ? "" : " Lv" + levelTotal) +\r
-                            (drumTotal == 0 ? "" : " 缶" + drumTotal + "(" + drumShips + "隻)") +\r
-                            (aswTotal > 0 ? $" 潜{CutOverFlow(aswTotal)}" : "") +\r
-                            (antiAirTotal > 0 ? $" 空{CutOverFlow(antiAirTotal)}" : "") +\r
-                            (losTotal > 0 ? $" 索{CutOverFlow(losTotal)}" : ""),\r
-                    Fleet2 = (sniffer.CombinedFleetType != 0 && f == 1 ? "" : $"TP:S{(int)tp}A{(int)(tp * 0.7)}") +\r
-                             (daihatsu > 0 ? $" 発{daihatsu * 100:f1}%" : "")\r
+                            (drumTotal == 0 ? "" : " ドラム缶" + drumTotal + "(" + drumShips + "隻)") +\r
+                            (daihatsu > 0 ? $" 大発{daihatsu * 100:f1}%" : ""),\r
+                    Fleet2 = "計:" +\r
+                             "火" + CutOverFlow(fpTotal) +\r
+                             " 空" + CutOverFlow(antiAirTotal) +\r
+                             " 潜" + CutOverFlow(aswTotal) +\r
+                             " 索" + CutOverFlow(losTotal) + "\r\n" +\r
+                             $"戦闘:燃{fuelTotal / 5}弾{bullTotal / 5} 支援:燃{fuelTotal / 2}弾{(int)(bullTotal * 0.8)}" +\r
+                             (sniffer.CombinedFleetType != 0 && f == 1 ? "" : $"\r\nTP:S{(int)tp} A{(int)(tp * 0.7)}")\r
                 });\r
                 list.AddRange(ships);\r
             }\r