}\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
-Subproject commit 6f856ebaa461bf26b79b1083ab4b2452d4bc638a
+Subproject commit 2d59f116a8a35c2e56492511b8c2ae20d8815a69
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
}\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
_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