OSDN Git Service

連合艦隊時の僚艦夜戦突撃で第一旗艦に発動マークが付くのを直す
authorKazuhiro Fujieda <fujieda@users.osdn.me>
Sun, 30 Aug 2020 05:33:35 +0000 (14:33 +0900)
committerKazuhiro Fujieda <fujieda@users.osdn.me>
Sun, 30 Aug 2020 05:58:24 +0000 (14:58 +0900)
KancolleSniffer.Test/BattleTest.cs
KancolleSniffer.Test/logs
KancolleSniffer/Model/BattleInfo.cs

index 8163f51..e4b4e0d 100644 (file)
@@ -301,6 +301,19 @@ namespace KancolleSniffer.Test
         }\r
 \r
         /// <summary>\r
+        /// 連合艦隊時の僚艦夜戦突撃に対応する\r
+        /// </summary>\r
+        [TestMethod]\r
+        public void KongoSpecial()\r
+        {\r
+            var sniffer = new Sniffer();\r
+            SniffLogFile(sniffer, "kongospecial_001");\r
+            PAssert.That(() => !sniffer.IsBattleResultError);\r
+            PAssert.That(() => sniffer.Battle.Result.Friend.Guard[0].SpecialAttack == ShipStatus.Attack.Fire);\r
+            PAssert.That(() => sniffer.Fleets[1].Ships[0].SpecialAttack == ShipStatus.Attack.Fired);\r
+        }\r
+\r
+        /// <summary>\r
         /// レーダー射撃戦に対応する\r
         /// </summary>\r
         [TestMethod]\r
index dcf8162..7877795 160000 (submodule)
@@ -1 +1 @@
-Subproject commit dcf81623022b0d4f7f3949ee4a2eff1abb0e638e
+Subproject commit 7877795d0035744d2fba262aac91245267b5bd8b
index 7665018..6da3a26 100644 (file)
@@ -562,8 +562,8 @@ namespace KancolleSniffer.Model
                 return;\r
 \r
             var eFlags = (int[])json.api_at_eflag;\r
-            var sources = (int[])json.api_at_list;\r
-            var types = json.api_at_type() ? (int[])json.api_at_type : (int[])json.api_sp_list;\r
+            var night = json.api_sp_list();\r
+            var types = night ? (int[])json.api_sp_list : (int[])json.api_at_type;\r
             var targets = (int[][])json.api_df_list;\r
             var damages = (int[][])json.api_damage;\r
             var records = new BothRecord(_friend, _guard, _enemy, _enemyGuard);\r
@@ -572,7 +572,10 @@ namespace KancolleSniffer.Model
                 if (ignoreFriendDamage && eFlags[turn] == 1)\r
                     continue;\r
                 if (IsSpecialAttack(types[turn]))\r
-                    records.TriggerSpecialAttack(eFlags[turn] ^ 1, sources[turn]);\r
+                {\r
+                    var pos = night && _guard.Length > 0 ? 6 : 0; // 連合第二の僚艦夜戦突撃は6\r
+                    records.TriggerSpecialAttack(1, pos);\r
+                }\r
                 for (var shot = 0; shot < targets[turn].Length; shot++)\r
                 {\r
                     var target = targets[turn][shot];\r
@@ -590,6 +593,7 @@ namespace KancolleSniffer.Model
             // 100: Nelson Touch\r
             // 101: 長門一斉射\r
             // 102: 陸奥一斉射\r
+            // 104: 金剛僚艦夜戦突撃\r
             // 200: 瑞雲一体攻撃\r
             // 201: 海陸立体攻撃\r
             return type >= 100 && type < 200;\r