getRetreatableShipId = (escapeIdx) => {
					if (!escapeIdx || !escapeIdx[0]) { return 0; }
					// Although there may be more elements in escape array, but only 1st element used
					// since only 1 ship (topmost one) can be retreated per battle
					const shipIndex = escapeIdx[0];
					// If combined fleets sent, index > 6 belongs to escort fleet
					if (this.isCombinedSortie() && shipIndex > 6) {
						return PlayerManager.fleets[1].ship(shipIndex - 7).rosterId;
					}
					return PlayerManager.fleets[this.fleetSent - 1].ship(shipIndex - 1).rosterId;
				}
@param node - current battle node instance by default.
@param position - 0-based index of ship position, ranged in [0, 6].
@param isOnEscortFleet - if ship is on escort fleet of combined fleet.
@return true if ship at specified position is not taken any damage in any wave of opening airstrike,
        will return undefined if bombing phase not occur or no data for specified ship.
@see Node.js#takenAirBombingDamages - contains all waves of opening airstrike damages dealt to player fleets,
     for now excluding LBAS battle (no damage can be taken), jet assaults (PvP ignored).
@see main.js#TaskAircraftFlightBase.prototype._antiAircraft
@see main.js#TaskAirWarAntiAircraft.prototype._start
     in-game `12cm 30tube Rocket Launcher Kai Ni` animation will show the text banner if damage <= 0.
@see main.js#TaskAirWarDamageNumber.prototype._createParallel
     in-game damage number (the text 'miss' on 0 damage) will not be shown if RosaK2 anim conditions true and damage <= 0. Therefore, conditions of AARB actually triggering are at least: be targeted (fbak/frai flag 1) and no damage shown. neither the text banner nor AA-related animations.