pushRocketAttackIfNecessary = (normalAttack) => {
			// is target installation, Rocket equipped and base not AirAttack,
			// see `main.js#PhaseHougeki.prototype._hasRocketEffect`
			if(targetShipType.isLand && hasRocketLauncher && normalAttack[1] !== 1) {
				// no such ID -1, just mean higher priority
				results.push(["RocketAttack", -1]);
			// is target installation, army gears equppiped and base is SingleAttack,
			// see `main.js#PhaseHougeki.prototype._normal`
			} else if(targetShipType.isLand && landingAttackType > 100 && normalAttack[1] === 0) {
				results.push(["AshoreAttack", landingAttackType]);
			} else {
				results.push(normalAttack);
			}
		}
Estimate day time attack type of this ship.
Only according ship type and equipment, ignoring factors such as ship status, target-able.
@param {number} targetShipMasterId - a Master ID of being attacked ship, used to indicate some
       special attack types. eg: attacking a submarine, landing attack an installation.
       The ID can be just an example to represent this type of target.
@param {boolean} trySpTypeFirst - specify true if want to estimate special attack type.
@param {number} airBattleId - air battle result id, to indicate if special attacks can be triggered,
       special attacks require AS / AS +, default is AS+.
@param {boolean} returnFirstOnly - specify false if want all possible attack types instead of most possible.
@return {Array} day time attack type constants tuple:
        [name, regular attack id / cutin id / landing id, cutin name, modifier].
        cutin id is from `api_hougeki?.api_at_type` which indicates the special attacks.
        NOTE: Not take 'can not be targeted' into account yet,
        such as: CV/CVB against submarine; submarine against land installation;
        asw aircraft all lost against submarine; torpedo bomber only against land,
        should not pass targetShipMasterId at all for these scenes.
@see https://github.com/andanteyk/ElectronicObserver/blob/master/ElectronicObserver/Other/Information/kcmemo.md#%E6%94%BB%E6%92%83%E7%A8%AE%E5%88%A5
@see BattleMain.swf#battle.models.attack.AttackData#setOptionsAtHougeki - client side codes of day attack type.
@see BattleMain.swf#battle.phase.hougeki.PhaseHougekiBase - client side hints of special cutin attack type.
@see main.js#PhaseHougeki.prototype._getNormalAttackType - since Phase 2
@see specialAttackTypeDay
@see estimateNightAttackType
@see canDoOpeningTorpedo
@see canDoDayShellingAttack
@see canDoASW
@see canDoClosingTorpedo