private Record[] _enemy;\r
private Record[] _enemyGuard;\r
private readonly List<int> _escapingShips = new List<int>();\r
- private bool _lastCell;\r
+ private bool _safeCell;\r
\r
public BattleState BattleState { get; set; }\r
public int[] Formation { get; private set; }\r
public void Port()\r
{\r
CleanupResult();\r
- _lastCell = false;\r
+ _safeCell = false;\r
BattleState = BattleState.None;\r
}\r
\r
\r
public void InspectMapNext(dynamic json)\r
{\r
- _lastCell = (int)json.api_next == 0;\r
+ SetSafeCell(json);\r
BattleState = BattleState.None;\r
if (!json.api_destruction_battle())\r
return;\r
InspectAirRaidBattle((int)json.api_maparea_id, json.api_destruction_battle);\r
}\r
\r
+ private void SetSafeCell(dynamic json)\r
+ {\r
+ var map = (int)json.api_maparea_id * 1000 + (int)json.api_mapinfo_no * 100 + (int)json.api_no;\r
+ _safeCell =\r
+ (int)json.api_next == 0 || // last cell\r
+ map switch\r
+ {\r
+ 1613 => true, // 1-6-B\r
+ 1611 => true, // 1-6-D\r
+ 1616 => true, // 1-6-D\r
+ 2202 => true, // 2-2-B\r
+ 3102 => true, // 3-1-B\r
+ 3201 => true, // 3-2-A\r
+ 4206 => true, // 4-2-F\r
+ 5302 => true, // 5-3-B\r
+ _ => false\r
+ };\r
+ }\r
+\r
public void InspectAirRaidBattle(int areaId, dynamic json)\r
{\r
SetFormation(json);\r
if (_friend == null)\r
return;\r
ShowResult();\r
- if (!_lastCell)\r
- SetDamagedShipWarning();\r
+ SetDamagedShipWarning();\r
_shipInfo.SaveBattleResult();\r
_shipInfo.DropShipId = json.api_get_ship() ? (int)json.api_get_ship.api_ship_id : -1;\r
VerifyResultRank(json);\r
\r
private void SetDamagedShipWarning()\r
{\r
+ if (_safeCell)\r
+ return;\r
_shipInfo.SetBadlyDamagedShips();\r
}\r
\r