From: TheSaminator Date: Mon, 4 Jul 2022 22:59:46 +0000 (-0400) Subject: Add fleet strength labels X-Git-Url: https://gitweb.starshipfights.net/?a=commitdiff_plain;h=b9ead6ae225ec47488c30c425b5cf32394b1f700;p=starship-fights Add fleet strength labels --- diff --git a/src/jsMain/kotlin/net/starshipfights/campaign/campaign_ui.kt b/src/jsMain/kotlin/net/starshipfights/campaign/campaign_ui.kt index 92bf62e..b8f182c 100644 --- a/src/jsMain/kotlin/net/starshipfights/campaign/campaign_ui.kt +++ b/src/jsMain/kotlin/net/starshipfights/campaign/campaign_ui.kt @@ -131,11 +131,23 @@ object CampaignUI { val fleetRender = fleetRenders .children.single { it.isStarSystemFleets(systemId) } - for (fleetId in system.fleets.keys) { + for ((fleetId, fleet) in system.fleets) { val fleetPtr = FleetPresencePointer(systemId, fleetId) + val fleetWithPtr = FleetPresenceWithPointer(fleetPtr, fleet) val currFleetRender = fleetRender .children.single { it.fleetPresenceRender == fleetPtr } + systemsOverlayScene.add(CSS3DSprite(document.create.div { + drawFleetLabel(fleetWithPtr) + }).apply { + scale.setScalar(0.125) + + element.style.asDynamic().pointerEvents = "none" + + position.copy(currFleetRender.position) + position.y = 32 + }) + selectedFleetIndicators[fleetPtr] = CSS3DSprite(document.create.img(src = "/static/game/images/crosshair.svg")).apply { scale.setScalar(0.00875) @@ -153,6 +165,7 @@ object CampaignUI { fun fitLabels() { if (labelsFit) return textFit(document.getElementsByClassName("system-label")) + textFit(document.getElementsByClassName("fleet-label")) labelsFit = true } @@ -205,7 +218,10 @@ object CampaignUI { } p { style = "text-align:center" - +when (system.bodies.values.filterIsInstance().size) { + val stars = system.bodies.values.filterIsInstance() + +if (stars.any { it.type == StarType.X }) + "Veil rift" + else when (system.bodies.values.filterIsInstance().size) { 1 -> "Unary star system" 2 -> "Binary star system" 3 -> "Trinary star system" @@ -304,6 +320,19 @@ object CampaignUI { errorMessages.textContent = "" } + private fun DIV.drawFleetLabel(fleet: FleetPresenceWithPointer) { + id = "fleet-overlay-${fleet.id.fleetPresence}" + classes = setOf("fleet-overlay") + style = "background-color:${fleet.fleetPresence.owner.mapColor};width:160px;height:75px;opacity:0.8;font-size:2em;text-align:center;vertical-align:middle" + attributes["data-fleet-id"] = fleet.id.fleetPresence.toString() + attributes["data-system-id"] = fleet.id.starSystem.toString() + + p(classes = "fleet-label") { + style = "color:#fff;margin:0;white-space:nowrap;width:160px;height:75px" + +"${fleet.fleetPresence.pointValue}" + } + } + private fun DIV.drawSystemLabel(system: StarSystemWithId) { id = "system-overlay-${system.id}" classes = setOf("system-overlay")