OSDN Git Service

夜戦でNelson Touchが識別されないのを直す
authorKazuhiro Fujieda <fujieda@users.osdn.me>
Sun, 21 Oct 2018 12:59:41 +0000 (21:59 +0900)
committerKazuhiro Fujieda <fujieda@users.osdn.me>
Fri, 26 Oct 2018 14:12:52 +0000 (23:12 +0900)
KancolleSniffer.Test/BattleTest.cs
KancolleSniffer/Model/BattleInfo.cs

index 9137bd1..d8fe2be 100644 (file)
@@ -261,6 +261,10 @@ namespace KancolleSniffer.Test
             // ship_deckでフラグを引き継ぐ\r
             SniffLogFile(sniffer, "nelsontouch_002");\r
             PAssert.That(() => sniffer.Fleets[0].Ships[0].SpecialAttack == ShipStatus.Attack.Fired);\r
+            // 夜戦\r
+            var night = new Sniffer();\r
+            SniffLogFile(night, "nelsontouch_003");\r
+            PAssert.That(() => night.Battle.Result.Friend.Main[0].SpecialAttack == ShipStatus.Attack.Fire);\r
         }\r
     }\r
 }
\ No newline at end of file
index 5fea3f2..b127553 100644 (file)
@@ -449,7 +449,7 @@ namespace KancolleSniffer.Model
 \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 : null;\r
+            var types = json.api_at_type() ? (int[])json.api_at_type : (int[])json.api_sp_list;\r
             var targets = (int[][])json.api_df_list;\r
             var damages = (int[][])json.api_damage;\r
             var records = new[] {new Record[12], new Record[12]};\r
@@ -461,7 +461,7 @@ namespace KancolleSniffer.Model
             {\r
                 if (ignoreFriendDamage && eFlags[turn] == 1)\r
                     continue;\r
-                if (types != null && types[turn] == 100) // Nelson Touch\r
+                if (types[turn] == 100) // Nelson Touch\r
                     records[eFlags[turn] ^ 1][sources[turn]].TriggerSpecialAttack();\r
                 for (var shot = 0; shot < targets[turn].Length; shot++)\r
                 {\r