OSDN Git Service

索敵に航空偵察スコアを表示する
authorKazuhiro Fujieda <fujieda@users.osdn.me>
Thu, 6 Aug 2020 04:22:37 +0000 (13:22 +0900)
committerKazuhiro Fujieda <fujieda@users.osdn.me>
Sun, 30 Aug 2020 05:58:23 +0000 (14:58 +0900)
KancolleSniffer.Test/SnifferTest.cs
KancolleSniffer.Test/logs
KancolleSniffer/Model/Fleet.cs
KancolleSniffer/Model/ItemSpec.cs
KancolleSniffer/View/MainWindow/ShipInfoPanel.cs

index 813f57d..ec3c5ef 100644 (file)
@@ -363,6 +363,17 @@ namespace KancolleSniffer.Test
         }\r
 \r
         /// <summary>\r
+        /// 航空偵察スコアを計算する\r
+        /// </summary>\r
+        [TestMethod]\r
+        public void AirReconScore()\r
+        {\r
+            var sniffer = new Sniffer();\r
+            SniffLogFile(sniffer, "airrecon_score_001");\r
+            PAssert.That(() => Abs(sniffer.Fleets[0].AirReconScore - 26.88) < 0.01);\r
+        }\r
+\r
+        /// <summary>\r
         /// 編成で空き番号を使ったローテートを正しく反映する\r
         /// </summary>\r
         [TestMethod]\r
index 6f856eb..2d59f11 160000 (submodule)
@@ -1 +1 @@
-Subproject commit 6f856ebaa461bf26b79b1083ab4b2452d4bc638a
+Subproject commit 2d59f116a8a35c2e56492511b8c2ae20d8815a69
index a8aacce..85e112f 100644 (file)
@@ -233,6 +233,10 @@ namespace KancolleSniffer.Model
             return result > 0 ? result - Ceiling(_getHqLevel() * 0.4) + emptyBonus * 2 : 0.0;\r
         }\r
 \r
+        public double AirReconScore =>\r
+            ActualShips.SelectMany(ship =>\r
+                ship.OnSlot.Zip(ship.Slot, (slot, item) => item.Spec.CalcAirReconScore(slot))).Sum();\r
+\r
         public double DaihatsuBonus\r
         {\r
             get\r
index 5fd67e7..5cd6f36 100644 (file)
@@ -223,6 +223,20 @@ namespace KancolleSniffer.Model
             }\r
         }\r
 \r
+        public double CalcAirReconScore(int slot)\r
+        {\r
+            switch (Type)\r
+            {\r
+                case 10: // 水偵\r
+                case 11: // 水爆\r
+                    return LoS * Math.Sqrt(Math.Sqrt(slot));\r
+                case 41: // 大艇\r
+                    return LoS * Math.Sqrt(slot);\r
+                default:\r
+                    return 0;\r
+            }\r
+        }\r
+\r
         public Color Color\r
         {\r
             get\r
index 6db27c7..08579ce 100644 (file)
@@ -172,7 +172,8 @@ namespace KancolleSniffer.View.MainWindow
             _lineOfSight.Text = RoundDown(fleet.GetLineOfSights(1)).ToString("F1");\r
             var text = $"係数2: {RoundDown(fleet.GetLineOfSights(2)):F1}\r\n" +\r
                        $"係数3: {RoundDown(fleet.GetLineOfSights(3)):F1}\r\n" +\r
-                       $"係数4: {RoundDown(fleet.GetLineOfSights(4)):F1}";\r
+                       $"係数4: {RoundDown(fleet.GetLineOfSights(4)):F1}\r\n" +\r
+                       $"偵察: {RoundDown(fleet.AirReconScore):F1}";\r
             ToolTip.SetToolTip(_lineOfSight, text);\r
             ToolTip.SetToolTip(_lineOfSightCaption, text);\r
         }\r