From: Kazuhiro Fujieda Date: Mon, 16 Jan 2017 14:27:51 +0000 (+0900) Subject: stage2のない航空戦の結果が表示されないのを直す X-Git-Tag: v9.10~5 X-Git-Url: http://git.osdn.net/view?p=kancollesniffer%2FKancolleSniffer.git;a=commitdiff_plain;h=2f14ea2f010b9109a02e337742d0f1bf517feec5 stage2のない航空戦の結果が表示されないのを直す --- 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 + } }); }