Changeset View
Changeset View
Standalone View
Standalone View
binaries/data/mods/public/gui/session/selection_details.js
Show First 20 Lines • Show All 338 Lines • ▼ Show 20 Lines | |||||
{ | { | ||||
let averageHealth = 0; | let averageHealth = 0; | ||||
let maxHealth = 0; | let maxHealth = 0; | ||||
let maxCapturePoints = 0; | let maxCapturePoints = 0; | ||||
let capturePoints = (new Array(g_MaxPlayers + 1)).fill(0); | let capturePoints = (new Array(g_MaxPlayers + 1)).fill(0); | ||||
let playerID = 0; | let playerID = 0; | ||||
let totalCarrying = {}; | let totalCarrying = {}; | ||||
let totalLoot = {}; | let totalLoot = {}; | ||||
let garrisonSize = 0; | |||||
for (let entState of entStates) | for (let entState of entStates) | ||||
{ | { | ||||
playerID = entState.player; // trust that all selected entities have the same owner | playerID = entState.player; // trust that all selected entities have the same owner | ||||
if (entState.hitpoints) | if (entState.hitpoints) | ||||
{ | { | ||||
averageHealth += entState.hitpoints; | averageHealth += entState.hitpoints; | ||||
maxHealth += entState.maxHitpoints; | maxHealth += entState.maxHitpoints; | ||||
Show All 13 Lines | if (entState.loot) | ||||
for (let type in entState.loot) | for (let type in entState.loot) | ||||
totalLoot[type] = (totalLoot[type] || 0) + entState.loot[type]; | totalLoot[type] = (totalLoot[type] || 0) + entState.loot[type]; | ||||
for (let type in carrying) | for (let type in carrying) | ||||
{ | { | ||||
totalCarrying[type] = (totalCarrying[type] || 0) + carrying[type]; | totalCarrying[type] = (totalCarrying[type] || 0) + carrying[type]; | ||||
totalLoot[type] = (totalLoot[type] || 0) + carrying[type]; | totalLoot[type] = (totalLoot[type] || 0) + carrying[type]; | ||||
} | } | ||||
if (entState.garrisonHolder) | |||||
garrisonSize += entState.garrisonHolder.garrisonedSlots; | |||||
if (entState.garrisonable) | |||||
garrisonSize += entState.garrisonable.size; | |||||
} | } | ||||
Engine.GetGUIObjectByName("healthMultiple").hidden = averageHealth <= 0; | Engine.GetGUIObjectByName("healthMultiple").hidden = averageHealth <= 0; | ||||
if (averageHealth > 0) | if (averageHealth > 0) | ||||
{ | { | ||||
let unitHealthBar = Engine.GetGUIObjectByName("healthBarMultiple"); | let unitHealthBar = Engine.GetGUIObjectByName("healthBarMultiple"); | ||||
let healthSize = unitHealthBar.size; | let healthSize = unitHealthBar.size; | ||||
healthSize.rtop = 100 - 100 * Math.max(0, Math.min(1, averageHealth / maxHealth)); | healthSize.rtop = 100 - 100 * Math.max(0, Math.min(1, averageHealth / maxHealth)); | ||||
Show All 37 Lines | Engine.GetGUIObjectByName("captureMultiple").tooltip = getCurrentHealthTooltip( | ||||
}, | }, | ||||
translate("Capture Points:")); | translate("Capture Points:")); | ||||
} | } | ||||
let numberOfUnits = Engine.GetGUIObjectByName("numberOfUnits"); | let numberOfUnits = Engine.GetGUIObjectByName("numberOfUnits"); | ||||
numberOfUnits.caption = entStates.length; | numberOfUnits.caption = entStates.length; | ||||
numberOfUnits.tooltip = ""; | numberOfUnits.tooltip = ""; | ||||
if (garrisonSize) | |||||
numberOfUnits.tooltip = sprintf(translate("%(label)s: %(details)s\n"), { | |||||
"label": headerFont(translate("Garrison Size")), | |||||
"details": bodyFont(garrisonSize) | |||||
}); | |||||
if (Object.keys(totalCarrying).length) | if (Object.keys(totalCarrying).length) | ||||
numberOfUnits.tooltip = sprintf(translate("%(label)s %(details)s\n"), { | numberOfUnits.tooltip = sprintf(translate("%(label)s %(details)s\n"), { | ||||
"label": headerFont(translate("Carrying:")), | "label": headerFont(translate("Carrying:")), | ||||
"details": bodyFont(Object.keys(totalCarrying).filter( | "details": bodyFont(Object.keys(totalCarrying).filter( | ||||
res => totalCarrying[res] != 0).map( | res => totalCarrying[res] != 0).map( | ||||
res => sprintf(translate("%(type)s %(amount)s"), | res => sprintf(translate("%(type)s %(amount)s"), | ||||
{ "type": resourceIcon(res), "amount": totalCarrying[res] })).join(" ")) | { "type": resourceIcon(res), "amount": totalCarrying[res] })).join(" ")) | ||||
}); | }); | ||||
▲ Show 20 Lines • Show All 100 Lines • Show Last 20 Lines |
Wildfire Games · Phabricator