Changeset View
Changeset View
Standalone View
Standalone View
binaries/data/mods/public/gui/common/tooltips.js
var g_TooltipTextFormats = { | var g_TooltipTextFormats = { | ||||
"unit": { "font": "sans-10", "color": "orange" }, | "unit": { "font": "sans-10", "color": "orange" }, | ||||
"header": { "font": "sans-bold-13" }, | "header": { "font": "sans-bold-13" }, | ||||
"body": { "font": "sans-13" }, | "body": { "font": "sans-13" }, | ||||
"comma": { "font": "sans-12" }, | "comma": { "font": "sans-12" }, | ||||
"nameSpecificBig": { "font": "sans-bold-16" }, | "nameSpecificBig": { "font": "sans-bold-16" }, | ||||
"nameSpecificSmall": { "font": "sans-bold-12" }, | "nameSpecificSmall": { "font": "sans-bold-12" }, | ||||
"nameGeneric": { "font": "sans-bold-16" } | "nameGeneric": { "font": "sans-bold-16" }, | ||||
"insufficient": { "font": "sans-bold-13", "color": "red" }, | |||||
"armour": { "font": "sans-10" }, | |||||
"warning": { "color": "orange" } | |||||
}; | }; | ||||
function getCostTypes() | function getCostTypes() | ||||
{ | { | ||||
return g_ResourceData.GetCodes().concat(["population", "populationBonus", "time"]); | return g_ResourceData.GetCodes().concat(["population", "populationBonus", "time"]); | ||||
} | } | ||||
/** | /** | ||||
▲ Show 20 Lines • Show All 151 Lines • ▼ Show 20 Lines | function getArmorTooltip(template) | ||||
return sprintf(translate("%(label)s %(details)s"), { | return sprintf(translate("%(label)s %(details)s"), { | ||||
"label": headerFont(translate("Armor:")), | "label": headerFont(translate("Armor:")), | ||||
"details": | "details": | ||||
Object.keys(template.armour).map( | Object.keys(template.armour).map( | ||||
dmgType => sprintf(translate("%(damage)s %(damageType)s %(armorPercentage)s"), { | dmgType => sprintf(translate("%(damage)s %(damageType)s %(armorPercentage)s"), { | ||||
"damage": template.armour[dmgType].toFixed(1), | "damage": template.armour[dmgType].toFixed(1), | ||||
"damageType": unitFont(translateWithContext("damage type", dmgType)), | "damageType": unitFont(translateWithContext("damage type", dmgType)), | ||||
"armorPercentage": | "armorPercentage": setStringTags(sprintf(translate("(%(armorPercentage)s)"), { | ||||
'[font="sans-10"]' + | |||||
sprintf(translate("(%(armorPercentage)s)"), { | |||||
"armorPercentage": armorLevelToPercentageString(template.armour[dmgType]) | "armorPercentage": armorLevelToPercentageString(template.armour[dmgType]) | ||||
}) + '[/font]' | }), g_TooltipTextFormats.armour) | ||||
}) | }) | ||||
).join(commaFont(translate(", "))) | ).join(commaFont(translate(", "))) | ||||
}); | }); | ||||
} | } | ||||
function attackRateDetails(interval, projectiles) | function attackRateDetails(interval, projectiles) | ||||
{ | { | ||||
if (!interval) | if (!interval) | ||||
▲ Show 20 Lines • Show All 60 Lines • ▼ Show 20 Lines | "rangeUnit": | ||||
// Translation: For example "0.5 to 1 meters", "1 (+1) meters" or "1 to 2 (+3) meters" | // Translation: For example "0.5 to 1 meters", "1 (+1) meters" or "1 to 2 (+3) meters" | ||||
translate("meters") : | translate("meters") : | ||||
translatePlural("meter", "meters", maxRange)) | translatePlural("meter", "meters", maxRange)) | ||||
}); | }); | ||||
} | } | ||||
function damageDetails(damageTemplate) | function damageDetails(damageTemplate) | ||||
{ | { | ||||
if (!damageTemplate) | if (!damageTemplate) | ||||
return ""; | return ""; | ||||
elexis: (hunk was removed in rP22866) | |||||
return Object.keys(damageTemplate).filter(dmgType => damageTemplate[dmgType]).map( | return Object.keys(damageTemplate).filter(dmgType => damageTemplate[dmgType]).map( | ||||
dmgType => sprintf(translate("%(damage)s %(damageType)s"), { | dmgType => sprintf(translate("%(damage)s %(damageType)s"), { | ||||
"damage": (+damageTemplate[dmgType]).toFixed(1), | "damage": (+damageTemplate[dmgType]).toFixed(1), | ||||
"damageType": unitFont(translateWithContext("damage type", dmgType)) | "damageType": unitFont(translateWithContext("damage type", dmgType)) | ||||
})).join(commaFont(translate(", "))); | })).join(commaFont(translate(", "))); | ||||
} | } | ||||
▲ Show 20 Lines • Show All 439 Lines • ▼ Show 20 Lines | |||||
function getNeededResourcesTooltip(resources) | function getNeededResourcesTooltip(resources) | ||||
{ | { | ||||
if (!resources) | if (!resources) | ||||
return ""; | return ""; | ||||
let formatted = []; | let formatted = []; | ||||
for (let resource in resources) | for (let resource in resources) | ||||
formatted.push(sprintf(translate("%(component)s %(cost)s"), { | formatted.push(sprintf(translate("%(component)s %(cost)s"), { | ||||
"component": '[font="sans-12"]' + resourceIcon(resource) + '[/font]', | "component": resourceIcon(resource), | ||||
"cost": resources[resource] | "cost": resources[resource] | ||||
})); | })); | ||||
return coloredText( | return setStringTags(translate("Insufficient resources:"), g_TooltipTextFormats.insufficient) + " " + | ||||
'[font="sans-bold-13"]' + translate("Insufficient resources:") + '[/font]', | |||||
"red") + " " + | |||||
formatted.join(" "); | formatted.join(" "); | ||||
} | } | ||||
function getSpeedTooltip(template) | function getSpeedTooltip(template) | ||||
{ | { | ||||
if (!template.speed) | if (!template.speed) | ||||
return ""; | return ""; | ||||
▲ Show 20 Lines • Show All 89 Lines • ▼ Show 20 Lines | |||||
} | } | ||||
function getEntityNamesFormatted(template) | function getEntityNamesFormatted(template) | ||||
{ | { | ||||
if (!template.name.specific) | if (!template.name.specific) | ||||
return setStringTags(template.name.generic, g_TooltipTextFormats.nameSpecificBig); | return setStringTags(template.name.generic, g_TooltipTextFormats.nameSpecificBig); | ||||
// Translation: Example: "Epibátēs Athēnaîos [font="sans-bold-16"](Athenian Marine)[/font]" | // Translation: Example: "Epibátēs Athēnaîos [font="sans-bold-16"](Athenian Marine)[/font]" | ||||
return sprintf(translate("%(specificName)s %(fontStart)s(%(genericName)s)%(fontEnd)s"), { | return sprintf(translate("%(specificName)s (%(genericName)s)"), { | ||||
"specificName": | "specificName": | ||||
setStringTags(template.name.specific[0], g_TooltipTextFormats.nameSpecificBig) + | setStringTags(template.name.specific[0], g_TooltipTextFormats.nameSpecificBig) + | ||||
setStringTags(template.name.specific.slice(1).toUpperCase(), g_TooltipTextFormats.nameSpecificSmall), | setStringTags(template.name.specific.slice(1).toUpperCase(), g_TooltipTextFormats.nameSpecificSmall), | ||||
"genericName": template.name.generic, | "genericName": setStringTags(template.name.generic, g_TooltipTextFormats.nameGeneric) | ||||
"fontStart": '[font="' + g_TooltipTextFormats.nameGeneric.font + '"]', | |||||
"fontEnd": '[/font]' | |||||
}); | }); | ||||
} | } | ||||
function getVisibleEntityClassesFormatted(template) | function getVisibleEntityClassesFormatted(template) | ||||
{ | { | ||||
if (!template.visibleIdentityClasses || !template.visibleIdentityClasses.length) | if (!template.visibleIdentityClasses || !template.visibleIdentityClasses.length) | ||||
return ""; | return ""; | ||||
▲ Show 20 Lines • Show All 53 Lines • Show Last 20 Lines |
Wildfire Games · Phabricator
(hunk was removed in rP22866)