From f26be04d99bbb16d729ea59070e5da5deb78f00f Mon Sep 17 00:00:00 2001 From: Kazuhiro Fujieda Date: Sun, 30 Aug 2020 14:33:35 +0900 Subject: [PATCH] =?utf8?q?=E9=80=A3=E5=90=88=E8=89=A6=E9=9A=8A=E6=99=82?= =?utf8?q?=E3=81=AE=E5=83=9A=E8=89=A6=E5=A4=9C=E6=88=A6=E7=AA=81=E6=92=83?= =?utf8?q?=E3=81=A7=E7=AC=AC=E4=B8=80=E6=97=97=E8=89=A6=E3=81=AB=E7=99=BA?= =?utf8?q?=E5=8B=95=E3=83=9E=E3=83=BC=E3=82=AF=E3=81=8C=E4=BB=98=E3=81=8F?= =?utf8?q?=E3=81=AE=E3=82=92=E7=9B=B4=E3=81=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- KancolleSniffer.Test/BattleTest.cs | 13 +++++++++++++ KancolleSniffer.Test/logs | 2 +- KancolleSniffer/Model/BattleInfo.cs | 10 +++++++--- 3 files changed, 21 insertions(+), 4 deletions(-) diff --git a/KancolleSniffer.Test/BattleTest.cs b/KancolleSniffer.Test/BattleTest.cs index 8163f51..e4b4e0d 100644 --- a/KancolleSniffer.Test/BattleTest.cs +++ b/KancolleSniffer.Test/BattleTest.cs @@ -301,6 +301,19 @@ namespace KancolleSniffer.Test } /// + /// 連合艦隊時の僚艦夜戦突撃に対応する + /// + [TestMethod] + public void KongoSpecial() + { + var sniffer = new Sniffer(); + SniffLogFile(sniffer, "kongospecial_001"); + PAssert.That(() => !sniffer.IsBattleResultError); + PAssert.That(() => sniffer.Battle.Result.Friend.Guard[0].SpecialAttack == ShipStatus.Attack.Fire); + PAssert.That(() => sniffer.Fleets[1].Ships[0].SpecialAttack == ShipStatus.Attack.Fired); + } + + /// /// レーダー射撃戦に対応する /// [TestMethod] diff --git a/KancolleSniffer.Test/logs b/KancolleSniffer.Test/logs index dcf8162..7877795 160000 --- a/KancolleSniffer.Test/logs +++ b/KancolleSniffer.Test/logs @@ -1 +1 @@ -Subproject commit dcf81623022b0d4f7f3949ee4a2eff1abb0e638e +Subproject commit 7877795d0035744d2fba262aac91245267b5bd8b diff --git a/KancolleSniffer/Model/BattleInfo.cs b/KancolleSniffer/Model/BattleInfo.cs index 7665018..6da3a26 100644 --- a/KancolleSniffer/Model/BattleInfo.cs +++ b/KancolleSniffer/Model/BattleInfo.cs @@ -562,8 +562,8 @@ namespace KancolleSniffer.Model return; var eFlags = (int[])json.api_at_eflag; - var sources = (int[])json.api_at_list; - var types = json.api_at_type() ? (int[])json.api_at_type : (int[])json.api_sp_list; + var night = json.api_sp_list(); + var types = night ? (int[])json.api_sp_list : (int[])json.api_at_type; var targets = (int[][])json.api_df_list; var damages = (int[][])json.api_damage; var records = new BothRecord(_friend, _guard, _enemy, _enemyGuard); @@ -572,7 +572,10 @@ namespace KancolleSniffer.Model if (ignoreFriendDamage && eFlags[turn] == 1) continue; if (IsSpecialAttack(types[turn])) - records.TriggerSpecialAttack(eFlags[turn] ^ 1, sources[turn]); + { + var pos = night && _guard.Length > 0 ? 6 : 0; // 連合第二の僚艦夜戦突撃は6 + records.TriggerSpecialAttack(1, pos); + } for (var shot = 0; shot < targets[turn].Length; shot++) { var target = targets[turn][shot]; @@ -590,6 +593,7 @@ namespace KancolleSniffer.Model // 100: Nelson Touch // 101: 長門一斉射 // 102: 陸奥一斉射 + // 104: 金剛僚艦夜戦突撃 // 200: 瑞雲一体攻撃 // 201: 海陸立体攻撃 return type >= 100 && type < 200; -- 2.11.0