var fp = sniffer.Battle.EnemyFighterPower;\r
PAssert.That(() => fp.AirCombat == 209 && fp.Interception == 212);\r
}\r
+\r
+ /// <summary>\r
+ /// ダメコン進撃する\r
+ /// </summary>\r
+ [TestMethod]\r
+ public void NotWarnDamagedShipWithDamageControl()\r
+ {\r
+ var sniffer = new Sniffer();\r
+ SniffLogFile(sniffer, "damecon_advance_001");\r
+ PAssert.That(() => sniffer.BadlyDamagedShips.Length == 0);\r
+ }\r
}\r
}
\ No newline at end of file
{\r
_shipMaster = shipMaster;\r
_shipInventory = shipInventory;\r
- _fleets = Enumerable.Range(0, FleetCount).Select((x, i) => new Fleet(_shipInventory, i, () => _hqLevel)).ToArray();\r
+ _fleets = Enumerable.Range(0, FleetCount).Select((x, i) => new Fleet(_shipInventory, i, () => _hqLevel))\r
+ .ToArray();\r
_itemInventory = itemInventory;\r
Counter = new AlarmCounter(() => _shipInventory.Count) {Margin = 5};\r
}\r
public void SetBadlyDamagedShips()\r
{\r
BadlyDamagedShips =\r
- (from s in _fleets.Where(fleet => fleet.State == FleetState.Sortie)\r
- .SelectMany(fleet => fleet.CombinedType != 0 && fleet.Number == 1\r
- ? fleet.ActualShips.Skip(1) // 第二艦隊の旗艦を除く\r
- : fleet.ActualShips)\r
- where !s.Escaped && s.DamageLevel == ShipStatus.Damage.Badly\r
- select s.Name).ToArray();\r
+ (from s in ShipsInSortie\r
+ where !s.Escaped && s.PreparedDamageControl == -1 && s.DamageLevel == ShipStatus.Damage.Badly\r
+ select s.Name).ToArray();\r
}\r
\r
+ private IEnumerable<ShipStatus> ShipsInSortie =>\r
+ _fleets.Where(fleet => fleet.State == FleetState.Sortie)\r
+ .SelectMany(fleet => fleet.CombinedType != 0 && fleet.Number == 1\r
+ ? fleet.ActualShips.Skip(1) // 連合艦隊の護衛の旗艦をのぞく\r
+ : fleet.ActualShips);\r
+\r
public void ClearBadlyDamagedShips()\r
{\r
BadlyDamagedShips = new string[0];\r