From 29f7c97d3b67bcd3fe7f4d6e779ebe1760828ea4 Mon Sep 17 00:00:00 2001 From: Kazuhiro Fujieda Date: Thu, 6 Aug 2020 13:22:37 +0900 Subject: [PATCH] =?utf8?q?=E7=B4=A2=E6=95=B5=E3=81=AB=E8=88=AA=E7=A9=BA?= =?utf8?q?=E5=81=B5=E5=AF=9F=E3=82=B9=E3=82=B3=E3=82=A2=E3=82=92=E8=A1=A8?= =?utf8?q?=E7=A4=BA=E3=81=99=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- KancolleSniffer.Test/SnifferTest.cs | 11 +++++++++++ KancolleSniffer.Test/logs | 2 +- KancolleSniffer/Model/Fleet.cs | 4 ++++ KancolleSniffer/Model/ItemSpec.cs | 14 ++++++++++++++ KancolleSniffer/View/MainWindow/ShipInfoPanel.cs | 3 ++- 5 files changed, 32 insertions(+), 2 deletions(-) diff --git a/KancolleSniffer.Test/SnifferTest.cs b/KancolleSniffer.Test/SnifferTest.cs index 813f57d..ec3c5ef 100644 --- a/KancolleSniffer.Test/SnifferTest.cs +++ b/KancolleSniffer.Test/SnifferTest.cs @@ -363,6 +363,17 @@ namespace KancolleSniffer.Test } /// + /// 航空偵察スコアを計算する + /// + [TestMethod] + public void AirReconScore() + { + var sniffer = new Sniffer(); + SniffLogFile(sniffer, "airrecon_score_001"); + PAssert.That(() => Abs(sniffer.Fleets[0].AirReconScore - 26.88) < 0.01); + } + + /// /// 編成で空き番号を使ったローテートを正しく反映する /// [TestMethod] diff --git a/KancolleSniffer.Test/logs b/KancolleSniffer.Test/logs index 6f856eb..2d59f11 160000 --- a/KancolleSniffer.Test/logs +++ b/KancolleSniffer.Test/logs @@ -1 +1 @@ -Subproject commit 6f856ebaa461bf26b79b1083ab4b2452d4bc638a +Subproject commit 2d59f116a8a35c2e56492511b8c2ae20d8815a69 diff --git a/KancolleSniffer/Model/Fleet.cs b/KancolleSniffer/Model/Fleet.cs index a8aacce..85e112f 100644 --- a/KancolleSniffer/Model/Fleet.cs +++ b/KancolleSniffer/Model/Fleet.cs @@ -233,6 +233,10 @@ namespace KancolleSniffer.Model return result > 0 ? result - Ceiling(_getHqLevel() * 0.4) + emptyBonus * 2 : 0.0; } + public double AirReconScore => + ActualShips.SelectMany(ship => + ship.OnSlot.Zip(ship.Slot, (slot, item) => item.Spec.CalcAirReconScore(slot))).Sum(); + public double DaihatsuBonus { get diff --git a/KancolleSniffer/Model/ItemSpec.cs b/KancolleSniffer/Model/ItemSpec.cs index 5fd67e7..5cd6f36 100644 --- a/KancolleSniffer/Model/ItemSpec.cs +++ b/KancolleSniffer/Model/ItemSpec.cs @@ -223,6 +223,20 @@ namespace KancolleSniffer.Model } } + public double CalcAirReconScore(int slot) + { + switch (Type) + { + case 10: // 水偵 + case 11: // 水爆 + return LoS * Math.Sqrt(Math.Sqrt(slot)); + case 41: // 大艇 + return LoS * Math.Sqrt(slot); + default: + return 0; + } + } + public Color Color { get diff --git a/KancolleSniffer/View/MainWindow/ShipInfoPanel.cs b/KancolleSniffer/View/MainWindow/ShipInfoPanel.cs index 6db27c7..08579ce 100644 --- a/KancolleSniffer/View/MainWindow/ShipInfoPanel.cs +++ b/KancolleSniffer/View/MainWindow/ShipInfoPanel.cs @@ -172,7 +172,8 @@ namespace KancolleSniffer.View.MainWindow _lineOfSight.Text = RoundDown(fleet.GetLineOfSights(1)).ToString("F1"); var text = $"係数2: {RoundDown(fleet.GetLineOfSights(2)):F1}\r\n" + $"係数3: {RoundDown(fleet.GetLineOfSights(3)):F1}\r\n" + - $"係数4: {RoundDown(fleet.GetLineOfSights(4)):F1}"; + $"係数4: {RoundDown(fleet.GetLineOfSights(4)):F1}\r\n" + + $"偵察: {RoundDown(fleet.AirReconScore):F1}"; ToolTip.SetToolTip(_lineOfSight, text); ToolTip.SetToolTip(_lineOfSightCaption, text); } -- 2.11.0