Module:Abilities/card: Difference between revisionsGive feedback
Jump to navigation
Jump to search
Gammaton32 (talk | contribs) remove duplicated strings |
upgrade boxes text scaling |
||
| Line 333: | Line 333: | ||
local props = ability.Upgrades | local props = ability.Upgrades | ||
local upgrade_boxes = {} | |||
for k, prop in pairs(props) do | |||
local description = lang.get_string(prop.DescKey) | |||
-- Generate description if no localized string | |||
if (description == nil or description == '') then | |||
description = create_description(prop, frame) | |||
end | |||
-- Improved font size scaling | |||
local fontsize = '1rem' | |||
local line_height = '1.2' | |||
local max_chars = 60 | |||
if #description > max_chars then | |||
-- Calculate reduced font size based on length | |||
local overflow_ratio = math.min(#description / max_chars, 2) -- Cap at 2x | |||
fontsize = string.format('%.2frem', 1 / overflow_ratio) | |||
-- Adjust line height for better readability | |||
line_height = '1.1' | |||
end | |||
local upgrade_box = frame:expandTemplate{ | |||
title = "Ability_card_v2/Card/UpgradeBox", | |||
args = { | |||
cost = UPGRADE_COST_MAP[k], | |||
description = frame:preprocess(description), | |||
scale_value = prop.Scale and commonutils.round_to_sig_fig(prop.Scale.Value, 3), | |||
scale_type = prop.Scale and prop.Scale.Type, | |||
fontsize = fontsize, | |||
line_height = line_height | |||
} | |||
} | |||
table.insert(upgrade_boxes, upgrade_box) | |||
end | |||
return upgrade_boxes | |||
end | end | ||