addDestroyerSpAttacksToId = (diff) => {
						if(hasCapableRadar && smallMainGunCnt >= 1)
							results.push(KC3Ship.specialAttackTypeNight(7 + diff, null, 1.3 * modelDSmallGunModifier));
						if(hasCapableRadar && hasSkilledLookouts && (!targetShipType.isLand || smallMainGunCnt >= 1))
							results.push(KC3Ship.specialAttackTypeNight(8 + diff, null, 1.2 * modelDSmallGunModifier));
						// special cutins for Torpedo Squadron SLO since 2021-04-30
						// no D gun modifier: https://twitter.com/yukicacoon/status/1388100262938562563
						if(torpedoCnt >= 2 && hasTsSkilledLookouts && (!targetShipType.isLand || smallMainGunCnt >= 1))
							results.push(KC3Ship.specialAttackTypeNight(9 + diff));
						if(hasDrumCanister && hasTsSkilledLookouts && (!targetShipType.isLand || smallMainGunCnt >= 1))
							results.push(KC3Ship.specialAttackTypeNight(10 + diff));
					}
Estimate night battle attack type of this ship.
Also just give possible attack type, no responsibility to check can do attack at night,
or that ship can be targeted or not, etc.
@param {number} targetShipMasterId - a Master ID of being attacked ship.
@param {boolean} trySpTypeFirst - specify true if want to estimate special attack type.
@param {boolean} returnFirstOnly - specify false if want all possible attack types instead of most possible.
@return {Array} night battle attack type constants tuple: [name, cutin id, cutin name, modifier].
        cutin id is partially from `api_hougeki.api_sp_list` which indicates the special attacks.
@see BattleMain.swf#battle.models.attack.AttackData#setOptionsAtNight - client side codes of night attack type.
@see BattleMain.swf#battle.phase.night.PhaseAttack - client side hints of special cutin attack type.
@see main.js#PhaseHougekiBase.prototype._getNormalAttackType - since Phase 2
@see specialAttackTypeNight
@see estimateDayAttackType
@see canDoNightAttack