From 2f14ea2f010b9109a02e337742d0f1bf517feec5 Mon Sep 17 00:00:00 2001 From: Kazuhiro Fujieda Date: Mon, 16 Jan 2017 23:27:51 +0900 Subject: [PATCH] =?utf8?q?stage2=E3=81=AE=E3=81=AA=E3=81=84=E8=88=AA?= =?utf8?q?=E7=A9=BA=E6=88=A6=E3=81=AE=E7=B5=90=E6=9E=9C=E3=81=8C=E8=A1=A8?= =?utf8?q?=E7=A4=BA=E3=81=95=E3=82=8C=E3=81=AA=E3=81=84=E3=81=AE=E3=82=92?= =?utf8?q?=E7=9B=B4=E3=81=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- KancolleSniffer.Test/SnifferTest.cs | 19 +++++++++++++++++++ KancolleSniffer.Test/logs | 2 +- KancolleSniffer/BattleInfo.cs | 25 +++++++++++++++++-------- 3 files changed, 37 insertions(+), 9 deletions(-) diff --git a/KancolleSniffer.Test/SnifferTest.cs b/KancolleSniffer.Test/SnifferTest.cs index fbee858..3c204b8 100644 --- a/KancolleSniffer.Test/SnifferTest.cs +++ b/KancolleSniffer.Test/SnifferTest.cs @@ -594,6 +594,25 @@ namespace KancolleSniffer.Test } /// + /// 航空戦の結果を処理する + /// + [TestMethod] + public void AirBattleResult() + { + var sniffer1 = new Sniffer(); + SniffLogFile(sniffer1, "battle_001"); + PAssert.That(() => sniffer1.Battle.AirBattleResults.Count == 0); + + var sniffer2 = new Sniffer(); + SniffLogFile(sniffer2, "ec_battle_001"); + PAssert.That(() => sniffer2.Battle.AirBattleResults.Count == 4); + + var sniffer3 = new Sniffer(); + SniffLogFile(sniffer3, "battle_007"); + PAssert.That(() => sniffer3.Battle.AirBattleResults.Count == 1, "stage2がない場合"); + } + + /// /// 2-5をクリアしたときの特別戦果を反映する /// [TestMethod] diff --git a/KancolleSniffer.Test/logs b/KancolleSniffer.Test/logs index 5b95506..2d79ee0 160000 --- a/KancolleSniffer.Test/logs +++ b/KancolleSniffer.Test/logs @@ -1 +1 @@ -Subproject commit 5b95506a58dd16180981ecca3968e522595d1272 +Subproject commit 2d79ee0aa3d80d199ae6958d359f4d967365a67c diff --git a/KancolleSniffer/BattleInfo.cs b/KancolleSniffer/BattleInfo.cs index 85f04d5..9d3163c 100644 --- a/KancolleSniffer/BattleInfo.cs +++ b/KancolleSniffer/BattleInfo.cs @@ -363,7 +363,8 @@ namespace KancolleSniffer private void AddAirBattleResult(dynamic json, string phaseName) { - if (json.api_stage1 == null || json.api_stage2 == null) + var stage1 = json.api_stage1; + if (stage1 == null || (stage1.api_f_count == 0 && stage1.api_e_count == 0)) return; AirBattleResults.Add(new AirBattleResult { @@ -376,13 +377,21 @@ namespace KancolleSniffer EnemyCount = (int)json.api_stage1.api_e_count, EnemyLost = (int)json.api_stage1.api_e_lostcount }, - Stage2 = new AirBattleResult.StageResult - { - FriendCount = (int)json.api_stage2.api_f_count, - FriendLost = (int)json.api_stage2.api_f_lostcount, - EnemyCount = (int)json.api_stage2.api_e_count, - EnemyLost = (int)json.api_stage2.api_e_lostcount - } + Stage2 = json.api_stage2 == null + ? new AirBattleResult.StageResult + { + FriendCount = 0, + FriendLost = 0, + EnemyCount = 0, + EnemyLost = 0 + } + : new AirBattleResult.StageResult + { + FriendCount = (int)json.api_stage2.api_f_count, + FriendLost = (int)json.api_stage2.api_f_lostcount, + EnemyCount = (int)json.api_stage2.api_e_count, + EnemyLost = (int)json.api_stage2.api_e_lostcount + } }); } -- 2.11.0