From 2d5bec268a8c566fde27b78b2d835799b5afe085 Mon Sep 17 00:00:00 2001 From: Kazuhiro Fujieda Date: Mon, 8 Oct 2018 22:19:21 +0900 Subject: [PATCH] =?utf8?q?=E9=96=8B=E5=B9=95=E5=A4=9C=E6=88=A6=E3=81=A7?= =?utf8?q?=E5=89=8D=E3=81=AE=E8=88=AA=E7=A9=BA=E6=88=A6=E3=81=AE=E7=B5=90?= =?utf8?q?=E6=9E=9C=E3=81=8C=E3=82=AF=E3=83=AA=E3=82=A2=E3=81=95=E3=82=8C?= =?utf8?q?=E3=81=AA=E3=81=84=E3=81=AE=E3=82=92=E7=9B=B4=E3=81=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- KancolleSniffer/ListForm.cs | 4 +- KancolleSniffer/MainForm.cs | 3 +- KancolleSniffer/Model/BattleInfo.cs | 6 +-- KancolleSniffer/View/AirBattleResultPanel.cs | 10 ++-- KancolleSniffer/View/BattleResultPanel.cs | 68 +++++++++++++++------------- 5 files changed, 49 insertions(+), 42 deletions(-) diff --git a/KancolleSniffer/ListForm.cs b/KancolleSniffer/ListForm.cs index e306441..42ec533 100644 --- a/KancolleSniffer/ListForm.cs +++ b/KancolleSniffer/ListForm.cs @@ -108,7 +108,7 @@ namespace KancolleSniffer { richTextBoxMiscText.Text = _sniffer.MiscText; } - else + else if (InShipStatus || InGroupConfig || InRepairList) { SetHeaderSortOrder(); shipListPanel.Update(_sniffer, comboBoxGroup.Text, _config.ShipList); @@ -124,7 +124,7 @@ namespace KancolleSniffer public void UpdateAirBattleResult() { airBattleResultPanel.ShowResultAutomatic = (_config.Spoilers & Spoiler.AirBattleResult) != 0; - airBattleResultPanel.SetResult(_sniffer.Battle.AirBattleResults); + airBattleResultPanel.SetResult(_sniffer); } public void UpdateBattleResult() diff --git a/KancolleSniffer/MainForm.cs b/KancolleSniffer/MainForm.cs index 8620f20..36cfaed 100644 --- a/KancolleSniffer/MainForm.cs +++ b/KancolleSniffer/MainForm.cs @@ -702,6 +702,7 @@ namespace KancolleSniffer { ResetBattleInfo(); _listForm.UpdateBattleResult(); + _listForm.UpdateAirBattleResult(); if (_sniffer.Battle.BattleState == BattleState.None) return; panelBattleInfo.BringToFront(); @@ -710,8 +711,6 @@ namespace KancolleSniffer UpdateBattleFighterPower(); if ((_config.Spoilers & Spoiler.ResultRank) != 0) ShowResultRank(); - if (_sniffer.Battle.BattleState == BattleState.Day) - _listForm.UpdateAirBattleResult(); } private void UpdateCellInfo() diff --git a/KancolleSniffer/Model/BattleInfo.cs b/KancolleSniffer/Model/BattleInfo.cs index 1f33776..800fd78 100644 --- a/KancolleSniffer/Model/BattleInfo.cs +++ b/KancolleSniffer/Model/BattleInfo.cs @@ -37,6 +37,7 @@ namespace KancolleSniffer.Model None, Day, Night, + SpNight, Result, Unknown } @@ -107,14 +108,13 @@ namespace KancolleSniffer.Model SetupResult(request, json, url.Contains("practice")); FighterPower = CalcFighterPower(); EnemyFighterPower = CalcEnemyFighterPower(json); - BattleState = IsNightBattle(json) ? BattleState.Night : BattleState.Day; + BattleState = url.Contains("sp_midnight") ? BattleState.SpNight : + url.Contains("midnight") ? BattleState.Night : BattleState.Day; CalcDamage(json); ResultRank = url.EndsWith("ld_airbattle") ? CalcLdAirBattleRank() : CalcResultRank(); SetResult(); } - private bool IsNightBattle(dynamic json) => json.api_hougeki(); - public static int DeckId(dynamic json) { if (json.api_dock_id()) // 昼戦はtypoしている diff --git a/KancolleSniffer/View/AirBattleResultPanel.cs b/KancolleSniffer/View/AirBattleResultPanel.cs index aaf4d82..17f356d 100644 --- a/KancolleSniffer/View/AirBattleResultPanel.cs +++ b/KancolleSniffer/View/AirBattleResultPanel.cs @@ -13,11 +13,10 @@ // limitations under the License. using System; -using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Windows.Forms; -using KancolleSniffer.Util; +using KancolleSniffer.Model; // ReSharper disable CoVariantArrayConversion @@ -128,9 +127,12 @@ namespace KancolleSniffer.View _phaseName.Click += PhaseNameOnClick; } - public void SetResult(List resultList) + public void SetResult(Sniffer sniffer) { - _resultList = resultList.ToArray(); + var state = sniffer.Battle.BattleState; + if (state != BattleState.Day && state != BattleState.SpNight) + return; + _resultList = sniffer.Battle.AirBattleResults.ToArray(); if (_resultList.Length == 0) { ResultRemained = false; diff --git a/KancolleSniffer/View/BattleResultPanel.cs b/KancolleSniffer/View/BattleResultPanel.cs index ee00b91..fe9cbc4 100644 --- a/KancolleSniffer/View/BattleResultPanel.cs +++ b/KancolleSniffer/View/BattleResultPanel.cs @@ -33,7 +33,6 @@ namespace KancolleSniffer.View private readonly ResizableToolTip _toolTip = new ResizableToolTip {ShowAlways = true}; private readonly BattleInfo.BattleResult[] _result = new BattleInfo.BattleResult[2]; private Label _phaseLabel, _rankLabel, _cellLabel; - private BattleState _prevBattleState; private readonly BattleResultRank[] _rank = new BattleResultRank[2]; private readonly InformationPanel _informationPanel; private CellInfo _cellInfo; @@ -65,36 +64,41 @@ namespace KancolleSniffer.View public void Update(Sniffer sniffer) { var state = sniffer.Battle.BattleState; - var prev = _prevBattleState; - _prevBattleState = state; _cellInfo = sniffer.CellInfo; - if (prev == BattleState.None && state != BattleState.None) - _result[0] = _result[1] = null; - if (prev != BattleState.None && state == BattleState.None && - !(_result[0] == null && _result[1] == null)) + switch (sniffer.Battle.BattleState) { - ClearResult(); - SetPhase("結果"); - UpdateCellInfo(_cellInfo); - return; + case BattleState.None: + if (_result[0] == null && _result[1] == null) + return; + ClearResult(); + SetPhase("結果"); + UpdateCellInfo(_cellInfo); + return; + case BattleState.Day: + case BattleState.SpNight: + _result[0] = _result[1] = null; + break; + case BattleState.Result: + case BattleState.Unknown: + return; } - if (state != BattleState.Day && state != BattleState.Night) - return; if ((Spoilers & Spoiler.BattleResult) != 0) { ShowResult(sniffer.Battle.Result); ShowResultRank(sniffer.Battle.ResultRank); - if (state == BattleState.Day) - { - _result[0] = sniffer.Battle.Result; - _rank[0] = sniffer.Battle.ResultRank; - SetPhase("昼戦"); - } - else if (state == BattleState.Night) + switch (state) { - _result[1] = sniffer.Battle.Result; - _rank[1] = sniffer.Battle.ResultRank; - SetPhase("夜戦"); + case BattleState.Day: + _result[0] = sniffer.Battle.Result; + _rank[0] = sniffer.Battle.ResultRank; + SetPhase("昼戦"); + break; + case BattleState.Night: + case BattleState.SpNight: + _result[1] = sniffer.Battle.Result; + _rank[1] = sniffer.Battle.ResultRank; + SetPhase("夜戦"); + break; } _informationPanel.Visible = true; } @@ -102,15 +106,17 @@ namespace KancolleSniffer.View { ClearResult(); SetPhase("結果"); - if (state == BattleState.Day) - { - _result[0] = sniffer.Battle.Result; - _rank[0] = sniffer.Battle.ResultRank; - } - else if (state == BattleState.Night) + switch (state) { - _result[1] = sniffer.Battle.Result; - _rank[1] = sniffer.Battle.ResultRank; + case BattleState.Day: + _result[0] = sniffer.Battle.Result; + _rank[0] = sniffer.Battle.ResultRank; + break; + case BattleState.Night: + case BattleState.SpNight: + _result[1] = sniffer.Battle.Result; + _rank[1] = sniffer.Battle.ResultRank; + break; } } _informationPanel.SetInformation(sniffer.Battle); -- 2.11.0