OSDN Git Service

stage2のない航空戦の結果が表示されないのを直す
authorKazuhiro Fujieda <fujieda@users.osdn.me>
Mon, 16 Jan 2017 14:27:51 +0000 (23:27 +0900)
committerKazuhiro Fujieda <fujieda@users.osdn.me>
Mon, 16 Jan 2017 14:27:51 +0000 (23:27 +0900)
KancolleSniffer.Test/SnifferTest.cs
KancolleSniffer.Test/logs
KancolleSniffer/BattleInfo.cs

index fbee858..3c204b8 100644 (file)
@@ -594,6 +594,25 @@ namespace KancolleSniffer.Test
         }\r
 \r
         /// <summary>\r
+        /// 航空戦の結果を処理する\r
+        /// </summary>\r
+        [TestMethod]\r
+        public void AirBattleResult()\r
+        {\r
+            var sniffer1 = new Sniffer();\r
+            SniffLogFile(sniffer1, "battle_001");\r
+            PAssert.That(() => sniffer1.Battle.AirBattleResults.Count == 0);\r
+\r
+            var sniffer2 = new Sniffer();\r
+            SniffLogFile(sniffer2, "ec_battle_001");\r
+            PAssert.That(() => sniffer2.Battle.AirBattleResults.Count == 4);\r
+\r
+            var sniffer3 = new Sniffer();\r
+            SniffLogFile(sniffer3, "battle_007");\r
+            PAssert.That(() => sniffer3.Battle.AirBattleResults.Count == 1, "stage2がない場合");\r
+        }\r
+\r
+        /// <summary>\r
         /// 2-5をクリアしたときの特別戦果を反映する\r
         /// </summary>\r
         [TestMethod]\r
index 5b95506..2d79ee0 160000 (submodule)
@@ -1 +1 @@
-Subproject commit 5b95506a58dd16180981ecca3968e522595d1272
+Subproject commit 2d79ee0aa3d80d199ae6958d359f4d967365a67c
index 85f04d5..9d3163c 100644 (file)
@@ -363,7 +363,8 @@ namespace KancolleSniffer
 \r
         private void AddAirBattleResult(dynamic json, string phaseName)\r
         {\r
-            if (json.api_stage1 == null || json.api_stage2 == null)\r
+            var stage1 = json.api_stage1;\r
+            if (stage1 == null || (stage1.api_f_count == 0 && stage1.api_e_count == 0))\r
                 return;\r
             AirBattleResults.Add(new AirBattleResult\r
             {\r
@@ -376,13 +377,21 @@ namespace KancolleSniffer
                     EnemyCount = (int)json.api_stage1.api_e_count,\r
                     EnemyLost = (int)json.api_stage1.api_e_lostcount\r
                 },\r
-                Stage2 = new AirBattleResult.StageResult\r
-                {\r
-                    FriendCount = (int)json.api_stage2.api_f_count,\r
-                    FriendLost = (int)json.api_stage2.api_f_lostcount,\r
-                    EnemyCount = (int)json.api_stage2.api_e_count,\r
-                    EnemyLost = (int)json.api_stage2.api_e_lostcount\r
-                }\r
+                Stage2 = json.api_stage2 == null\r
+                    ? new AirBattleResult.StageResult\r
+                    {\r
+                        FriendCount = 0,\r
+                        FriendLost = 0,\r
+                        EnemyCount = 0,\r
+                        EnemyLost = 0\r
+                    }\r
+                    : new AirBattleResult.StageResult\r
+                    {\r
+                        FriendCount = (int)json.api_stage2.api_f_count,\r
+                        FriendLost = (int)json.api_stage2.api_f_lostcount,\r
+                        EnemyCount = (int)json.api_stage2.api_e_count,\r
+                        EnemyLost = (int)json.api_stage2.api_e_lostcount\r
+                    }\r
             });\r
         }\r
 \r