OSDN Git Service

防空の際の局戦の制空値を最新の検証結果の通りに計算する
authorKazuhiro Fujieda <fujieda@users.osdn.me>
Tue, 30 Aug 2016 13:36:25 +0000 (22:36 +0900)
committerKazuhiro Fujieda <fujieda@users.osdn.me>
Tue, 30 Aug 2016 13:36:25 +0000 (22:36 +0900)
KancolleSniffer.Test/SnifferTest.cs
KancolleSniffer/BaseAirCoprs.cs
KancolleSniffer/ItemInfo.cs

index 55180da..4d17cf9 100644 (file)
@@ -430,6 +430,8 @@ namespace KancolleSniffer.Test
             var sniffer = new Sniffer();\r
             SniffLogFile(sniffer, "fighterpower_004");\r
             PAssert.That(() => sniffer.BaseAirCorps[0].FighterPower[1] == 301);\r
+            sniffer.BaseAirCorps[0].Action = 2; // 防空\r
+            PAssert.That(()=>sniffer.BaseAirCorps[0].FighterPower[1] == 320);\r
         }\r
 \r
         /// <summary>\r
index 4382d0f..7d2d4e5 100644 (file)
@@ -63,8 +63,10 @@ namespace KancolleSniffer
                 if (plane.State != 1)\r
                     return prev;\r
                 var slot = plane.Slot;\r
-                var unskilled = (slot.Spec.AntiAir + slot.Spec.Interception * 1.5 + slot.FighterPowerLevelBonus) *\r
-                                Sqrt(plane.Count);\r
+                var intercepterBonus = Action == 2\r
+                    ? slot.Spec.AntiBomber * 2 + slot.Spec.Interception\r
+                    : slot.Spec.Interception * 1.5;\r
+                var unskilled = (slot.Spec.AntiAir + intercepterBonus + slot.FighterPowerLevelBonus) * Sqrt(plane.Count);\r
                 return new[]\r
                 {\r
                     prev[0] + (int)(unskilled + slot.AlvBonus[0]),\r
index 64dcf37..945d566 100644 (file)
@@ -33,6 +33,7 @@ namespace KancolleSniffer
         public int Torpedo;\r
         public int Bomber;\r
         public int Interception;\r
+        public int AntiBomber;\r
 \r
         public ItemSpec()\r
         {\r
@@ -485,7 +486,8 @@ namespace KancolleSniffer
                     AntiSubmarine = (int)entry.api_tais,\r
                     Torpedo = (int)entry.api_raig,\r
                     Bomber = (int)entry.api_baku,\r
-                    Interception = type == 48 ? (int)entry.api_houk : 0 // 局地戦闘機は回避の値が迎撃\r
+                    Interception = type == 48 ? (int)entry.api_houk : 0, // 局地戦闘機は回避の値が迎撃\r
+                    AntiBomber = type == 48 ? (int)entry.api_houm : 0 // 〃命中の値が対爆\r
                 };\r
             }\r
             _itemSpecs[-1] = _itemSpecs[0] = new ItemSpec();\r