buildFleetsElosText = (viewFleet = PlayerManager.fleets[0], escortFleet = undefined, maxCn = 4, altHqMod = 0.35) => {
        const isCombined = escortFleet instanceof KC3Fleet;
        const containerStyles = {
            "font-size":"11px",
            "display":"grid",
            "grid-template-columns":"auto auto auto",
            "column-gap":"10px", "grid-column-gap":"10px",
            "white-space":"nowrap",
        };
        const rnd = v => Math.qckInt("floor", v, 1);
        const accumulateValuesTo = (arrTo, arrFrom) => {
            Object.keys(arrTo).forEach(idx => {
                arrTo[idx] += arrFrom[idx] || 0;
            });
        };
        const f33CnVals = Array.numbers(1, maxCn).map(cn => viewFleet.eLos4(cn));
        const f33CnAltHq = Array.numbers(1, maxCn).map(cn => viewFleet.eLos4(cn, altHqMod));
        if(isCombined) {
            const escortF33CnVals = Array.numbers(1, maxCn).map(cn => escortFleet.eLos4(cn));
            const escortF33CnAltHq = Array.numbers(1, maxCn).map(cn => escortFleet.eLos4(cn, altHqMod));
            accumulateValuesTo(f33CnVals, escortF33CnVals);
            accumulateValuesTo(f33CnAltHq, escortF33CnAltHq);
        }
        const rowTemplate = "<div>{0}</div><div>{1}</div><div>{2}</div>";
        let text = rowTemplate.format(
            KC3Meta.term("PanelElosHqModifier"), "x0.4", altHqMod ? "x{0}".format(altHqMod) : ""
        );
        Array.numbers(1, maxCn).forEach((cn, idx) => {
           text += rowTemplate.format(KC3Meta.term("PanelElosNodeFactor").format(cn),
               rnd(f33CnVals[idx]).toLocaleString(undefined, KC3Meta.formatDecimalOptions(1, false)),
               altHqMod ? rnd(f33CnAltHq[idx]).toLocaleString(undefined, KC3Meta.formatDecimalOptions(1, false)) : "");
        });
        if(!isCombined) {
            const airReconnScore = rnd(viewFleet.airReconnScore()).toLocaleString(undefined, KC3Meta.formatDecimalOptions(1, false));
            const airReconnResult = viewFleet.estimateAirReconnResult();
            text += rowTemplate.format(KC3Meta.term("PanelAirReconnScore"), airReconnScore, "");
            if(airReconnScore > 0) {
                text += rowTemplate.format(
                    KC3Meta.term("PanelAirReconnNodes"),
                    KC3Meta.term("PanelAirReconn" + airReconnResult.W63G.result),
                    KC3Meta.term("PanelAirReconn" + airReconnResult.W63H.result)
                );
            }
        }
        return $("<div></div>")
            .css(containerStyles)
            .html(text)
            .prop("outerHTML");
    }
Build effective LoS tooltip text for single or combined fleet.
@param {Object} viewFleet - Fleet object currently being viewed, default 1st fleet.
@param {Object} escortFleet - Fleet object of escort for Combined Fleet, keep undefined for single fleet.
@param {number} maxCn - max amount of node factors to be listed, 4 by default.
@param {number} altHqMod - alternative HQ level modifier, 0.35 by default.
@return built html string.
@see Fleet.eLos4