OSDN Git Service

連合艦隊が雷撃戦で被弾すると勝利判定がくるうのを直す
authorKazuhiro Fujieda <fujieda@users.osdn.me>
Fri, 24 Nov 2017 11:16:48 +0000 (20:16 +0900)
committerKazuhiro Fujieda <fujieda@users.osdn.me>
Fri, 24 Nov 2017 14:46:08 +0000 (23:46 +0900)
KancolleSniffer.Test/SnifferTest.cs
KancolleSniffer.Test/logs
KancolleSniffer/BattleInfo.cs

index 6763244..e2aba8b 100644 (file)
@@ -128,6 +128,28 @@ namespace KancolleSniffer.Test
         }\r
 \r
         /// <summary>\r
+        /// 連合艦隊が開幕雷撃で被弾する\r
+        /// </summary>\r
+        [TestMethod]\r
+        public void OpeningTorpedoInCombinedBattle()\r
+        {\r
+            var sniffer = new Sniffer();\r
+            SniffLogFile(sniffer, "combined_battle_001");\r
+            PAssert.That(() => sniffer.WrongBattleResult.Length == 0);\r
+        }\r
+\r
+        /// <summary>\r
+        /// 連合艦隊が閉幕雷撃で被弾する\r
+        /// </summary>\r
+        [TestMethod]\r
+        public void ClosingTorpedoInCombinedBattle()\r
+        {\r
+            var sniffer = new Sniffer();\r
+            SniffLogFile(sniffer, "combined_battle_002");\r
+            PAssert.That(() => sniffer.WrongBattleResult.Length == 0);\r
+        }\r
+\r
+        /// <summary>\r
         /// 出撃時に大破している艦娘がいたら警告する\r
         /// </summary>\r
         [TestMethod]\r
index 4c1c0a2..cdc1b5f 160000 (submodule)
@@ -1 +1 @@
-Subproject commit 4c1c0a2589989496debb97ec8902c5952a4f956a
+Subproject commit cdc1b5f8205835274ad8246e9492c1a45c25c7dd
index 0d27300..612c14b 100644 (file)
@@ -258,9 +258,6 @@ namespace KancolleSniffer
         private void CalcDamage(dynamic json)\r
         {\r
             AirBattleResults.Clear();\r
-            var fc = _guard.Length > 0;\r
-            var ec = _enemyGuardHp.Length > 0;\r
-            var both = fc && ec;\r
             if (json.api_air_base_injection())\r
             {\r
                 AddAirBattleResult(json.api_air_base_injection, "AB噴式");\r
@@ -290,18 +287,7 @@ namespace KancolleSniffer
             if (json.api_opening_taisen() && json.api_opening_taisen != null)\r
                 CalcCombinedHougekiDamage(json.api_opening_taisen, _friend, _guard, _enemyHp, _enemyGuardHp);\r
             if (json.api_opening_atack != null)\r
-            {\r
-                if (both)\r
-                {\r
-                    CalcSimpleDamage(json.api_opening_atack, _friend, _guard, _enemyHp, _enemyGuardHp);\r
-                }\r
-                else\r
-                {\r
-                    CalcSimpleDamage(json.api_opening_atack,\r
-                        fc ? _guard : _friend, // 雷撃の対象は護衛\r
-                        _enemyHp, _enemyGuardHp);\r
-                }\r
-            }\r
+                CalcSimpleDamage(json.api_opening_atack, _friend, _guard, _enemyHp, _enemyGuardHp);\r
             if (json.api_hougeki1() && json.api_hougeki1 != null)\r
                 CalcCombinedHougekiDamage(json.api_hougeki1, _friend, _guard, _enemyHp, _enemyGuardHp);\r
             if (json.api_hougeki2() && json.api_hougeki2 != null)\r
@@ -309,18 +295,7 @@ namespace KancolleSniffer
             if (json.api_hougeki3() && json.api_hougeki3 != null)\r
                 CalcCombinedHougekiDamage(json.api_hougeki3, _friend, _guard, _enemyHp, _enemyGuardHp);\r
             if (json.api_raigeki() && json.api_raigeki != null)\r
-            {\r
-                if (both)\r
-                {\r
-                    CalcSimpleDamage(json.api_raigeki, _friend, _guard, _enemyHp, _enemyGuardHp);\r
-                }\r
-                else\r
-                {\r
-                    CalcSimpleDamage(json.api_raigeki,\r
-                        fc ? _guard : _friend, // 雷撃の対象は護衛\r
-                        _enemyHp, _enemyGuardHp);\r
-                }\r
-            }\r
+                CalcSimpleDamage(json.api_raigeki, _friend, _guard, _enemyHp, _enemyGuardHp);\r
         }\r
 \r
         private void CalcSupportDamage(dynamic json)\r
@@ -395,12 +370,6 @@ namespace KancolleSniffer
                 CalcSimpleDamage(json.api_edam, enemy);\r
         }\r
 \r
-        private void CalcSimpleDamage(dynamic json, Record[] friend, int[] enemy, int[] enemyGuard)\r
-        {\r
-            CalcSimpleDamage(json.api_fdam, friend);\r
-            CalcSimpleDamage(json.api_edam, enemy, enemyGuard);\r
-        }\r
-\r
         private void CalcSimpleDamage(dynamic json, Record[] friend, Record[] guard, int[] enemy, int[] enemyGuard)\r
         {\r
             CalcSimpleDamage(json.api_fdam, friend, guard);\r
@@ -413,7 +382,7 @@ namespace KancolleSniffer
             for (var i = 0; i < friend.Length; i++)\r
                 friend[i].ApplyDamage(damage[i]);\r
             for (var i = 0; i < guard.Length; i++)\r
-                guard[i].ApplyDamage(damage[i + 6]);\r
+                guard[i].ApplyDamage(damage[i + friend.Length]);\r
         }\r
 \r
         private void CalcSimpleDamage(dynamic rawDamage, Record[] friend)\r
@@ -429,7 +398,7 @@ namespace KancolleSniffer
             for (var i = 0; i < enemy.Length; i++)\r
                 enemy[i] -= damage[i];\r
             for (var i = 0; i < enemyGuard.Length; i++)\r
-                enemyGuard[i] -= damage[i + 6];\r
+                enemyGuard[i] -= damage[i + enemy.Length];\r
         }\r
 \r
         private void CalcSimpleDamage(dynamic rawDamage, int[] result)\r