var sniffer = new Sniffer();\r
SniffLogFile(sniffer, "battle_002");\r
AssertEqualBattleResult(sniffer, new[] {28, 1, 13});\r
- PAssert.That(() => sniffer.BadlyDamagedShips.Any());\r
}\r
\r
private void AssertEqualBattleResult(Sniffer sniffer, IEnumerable<int> expected, string msg = null)\r
var sniffer = new Sniffer();\r
SniffLogFile(sniffer, "combined_surface_001");\r
AssertEauqlCombinedResult(sniffer, new[] {40, 77, 77, 33, 51, 47}, new[] {39, 35, 11, 39, 37, 40});\r
- PAssert.That(() => !sniffer.BadlyDamagedShips.Any());\r
\r
SniffLogFile(sniffer, "combined_surface_002");\r
AssertEauqlCombinedResult(sniffer, new[] {40, 77, 77, 33, 15, 6}, new[] {39, 35, 4, 3, 14, 40});\r
- PAssert.That(() => sniffer.BadlyDamagedShips.Any());\r
}\r
\r
private void AssertEauqlCombinedResult(Sniffer sniffer, IEnumerable<int> expected0, IEnumerable<int> expected1,\r
{\r
var sniffer = new Sniffer();\r
SniffLogFile(sniffer, "sunk_001");\r
- PAssert.That(() => sniffer.BadlyDamagedShips.SequenceEqual(new[] {"磯波"}));\r
+ AssertEqualBattleResult(sniffer, new[]{26, 0, 1, 3});\r
+ PAssert.That(() => sniffer.BadlyDamagedShips.SequenceEqual(new[] {"菊月", "雪風"}));\r
}\r
\r
/// <summary>\r
}\r
\r
/// <summary>\r
+ /// 最終セルで大破警告を出さない\r
+ /// </summary>\r
+ [TestMethod]\r
+ public void NotWarnDamagedShipInLastCell()\r
+ {\r
+ var sniffer = new Sniffer();\r
+ SniffLogFile(sniffer, "taiha_001");\r
+ PAssert.That(() => sniffer.GetShipStatuses(0)[2].NowHp == 2);\r
+ PAssert.That(() => !sniffer.BadlyDamagedShips.Any());\r
+ }\r
+\r
+ /// <summary>\r
+ /// 道中で大破警告を出す\r
+ /// </summary>\r
+ [TestMethod]\r
+ public void WarnDamagedShip()\r
+ {\r
+ var sniffer = new Sniffer();\r
+ SniffLogFile(sniffer, "taiha_002");\r
+ PAssert.That(() => sniffer.GetShipStatuses(0)[2].NowHp == 1);\r
+ PAssert.That(() => sniffer.BadlyDamagedShips.Any());\r
+ }\r
+\r
+ /// <summary>\r
/// 熟練度込みの制空値を正しく計算する\r
/// </summary>\r
[TestMethod]\r
private int[] _enemyGuardStartHp;\r
private readonly List<int> _escapingShips = new List<int>();\r
private int _flagshipRecoveryType;\r
+ private bool _lastCell;\r
\r
public BattleState BattleState { get; set; }\r
public string Formation { get; private set; }\r
public ShipStatus[] EnemyResultStatus { get; private set; }\r
public List<AirBattleResult> AirBattleResults { get; } = new List<AirBattleResult>();\r
\r
-\r
public BattleInfo(ShipInfo shipInfo, ItemInfo itemInfo)\r
{\r
_shipInfo = shipInfo;\r
public void CleanupResult()\r
{\r
_friend = null;\r
+ _lastCell = false;\r
}\r
\r
private int CheckAirControlLevel(dynamic json)\r
}\r
}\r
\r
+ public void InspectMapStart(dynamic json)\r
+ {\r
+ InspectMapNext(json);\r
+ }\r
+\r
+ public void InspectMapNext(dynamic json)\r
+ {\r
+ _lastCell = (int)json.api_next == 0;\r
+ }\r
+\r
public void InspectBattleResult(dynamic json)\r
{\r
BattleState = BattleState.Result;\r
- ShowResult();\r
+ ShowResult(!_lastCell);\r
CleanupResult();\r
SetEscapeShips(json);\r
}\r
_shipInfo.InspectMapStart(request); // 出撃中判定が必要なので_conditionTimerより前\r
_conditionTimer.InvalidateCond();\r
_exMapInfo.InspectMapStart(data);\r
+ _battleInfo.InspectMapStart(data);\r
_logger.InspectMapStart(data);\r
_miscTextInfo.ClearFlag = true;\r
return Update.Timer | Update.Ship;\r
{\r
_battleInfo.InspectMapNext(request);\r
_exMapInfo.InspectMapNext(data);\r
+ _battleInfo.InspectMapNext(data);\r
_logger.InspectMapNext(data);\r
return Update.None;\r
}\r