getAverageProficiencyAccuracyBonus = (allowedSlotType) => {
					let profBonus = 0, expSum = 0, expCnt = 0;
					let criticalBonus = 0;
					this.equipment().forEach((g, i) => {
						if(this.slots[i] > 0 && g.exists()
							&& allowedSlotType.includes(g.master().api_type[2])) {
							const aceLevel = g.ace || 0;
							const internalExpHigh = KC3Meta.airPowerInternalExpBounds(aceLevel)[1];
							expSum += internalExpHigh;
							expCnt += 1;
							criticalBonus += (internalExpHigh >= 70 ? 8 : 10) * (i > 0 ? 0.6 : 0.8);
						}
					});
					const avgExp = expCnt > 0 ? Math.floor(expSum / expCnt) : 0;
					if(avgExp >= 10) profBonus += Math.floor(Math.sqrt(avgExp * 0.1));
					if(avgExp >= 25) profBonus += 1;
					if(avgExp >= 40) profBonus += 1;
					if(avgExp >= 55) profBonus += 1;
					if(avgExp >= 70) profBonus += 1;
					if(avgExp >= 80) profBonus += 2;
					if(avgExp >= 100) profBonus += 3;
					// critical bonus only used by critical rolling?
					return [profBonus, Math.floor(criticalBonus)];
				}
Get current day shelling attack accuracy related info of this ship.
NOTE: Only attacker accuracy part, not take defender evasion part into account at all, not final hit/critical rate.
@param {number} formationModifier - see #estimateShellingFormationModifier.
@param {boolean} applySpAttackModifiers - if special equipment and attack modifiers should be applied.
@param {number} playerCombinedFleetType - 0=single, 1=CTF, 2=STF, 3=TCF.
@param {boolean} isPlayerMainFleet - if attacker ship is in CF main fleet or escort.
@param {boolean} isEnemyCombined - if defender side is combined fleet.
@param {boolean} isAirAttack - if bonus applied from aircraft proficiency.
@return {Object} accuracy factors of this ship.
@see http://kancolle.wikia.com/wiki/Combat/Accuracy_and_Evasion
@see https://en.kancollewiki.net/Accuracy,_Evasion_and_Criticals
@see http://wikiwiki.jp/kancolle/?%CC%BF%C3%E6%A4%C8%B2%F3%C8%F2%A4%CB%A4%C4%A4%A4%A4%C6
@see https://twitter.com/Nishisonic/status/890202416112480256