}\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
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
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
// 100: Nelson Touch\r
// 101: 長門一斉射\r
// 102: 陸奥一斉射\r
+ // 104: 金剛僚艦夜戦突撃\r
// 200: 瑞雲一体攻撃\r
// 201: 海陸立体攻撃\r
return type >= 100 && type < 200;\r