OSDN Git Service

夜戦で戦艦が攻撃するとエラーになるのを直す
authorKazuhiro Fujieda <fujieda@users.osdn.me>
Mon, 20 Nov 2017 10:39:39 +0000 (19:39 +0900)
committerKazuhiro Fujieda <fujieda@users.osdn.me>
Mon, 20 Nov 2017 15:28:34 +0000 (00:28 +0900)
KancolleSniffer.Test/SnifferTest.cs
KancolleSniffer.Test/logs
KancolleSniffer/BattleInfo.cs

index 9fa3e37..52b3a47 100644 (file)
@@ -94,6 +94,18 @@ namespace KancolleSniffer.Test
         }\r
 \r
         /// <summary>\r
+        /// 夜戦で戦艦が攻撃すると一回で三発分のデータが来る\r
+        /// そのうち存在しない攻撃はターゲット、ダメージともに-1になる\r
+        /// </summary>\r
+        [TestMethod]\r
+        public void BattleShipAttackInMidnight()\r
+        {\r
+            var sniffer = new Sniffer();\r
+            SniffLogFile(sniffer, "midnight_001");\r
+            PAssert.That(() => sniffer.Battle.ResultRank == BattleResultRank.S);\r
+        }\r
+\r
+        /// <summary>\r
         /// 出撃時に大破している艦娘がいたら警告する\r
         /// </summary>\r
         [TestMethod]\r
index e3f682f..e3d8d9f 160000 (submodule)
@@ -1 +1 @@
-Subproject commit e3f682fca7209563e965aa823830fb3fb4e3c9de
+Subproject commit e3d8d9f2f3814e8af506c90063e0c68dfc2c8faf
index ce46403..addc669 100644 (file)
@@ -455,9 +455,11 @@ namespace KancolleSniffer
             {\r
                 foreach (var hit in turn.t.Zip(turn.d, (t, d) => new {t, d}))\r
                 {\r
+                    if (hit.t == -1)\r
+                        continue;\r
                     if (turn.e == 1)\r
                     {\r
-                        if (0 <= hit.t && hit.t < 6)\r
+                        if (hit.t < 6)\r
                         {\r
                             friend[hit.t].ApplyDamage(hit.d);\r
                         }\r
@@ -468,7 +470,7 @@ namespace KancolleSniffer
                     }\r
                     else\r
                     {\r
-                        if (0 <= hit.t && hit.t < 6)\r
+                        if (hit.t < 6)\r
                         {\r
                             enemy[hit.t] -= hit.d;\r
                         }\r