Module:Abilities/card: Difference between revisionsGive feedback
Size upgrade descriptions by measuring the rendered text against the box instead of counting bytes of the raw string, fixing punctuation and non-English localisations (with help from vergir-bot LLM) |
m Undo revision 104482 by ~2026-SlotReloadHex823 broke it, revert to investigate Tag: Undo |
||
| Line 3: | Line 3: | ||
local utils = require "Module:Abilities/utils" | local utils = require "Module:Abilities/utils" | ||
local Icon = require"Module:Abilities/icon" | local Icon = require"Module:Abilities/icon" | ||
local p = {} | local p = {} | ||
| Line 416: | Line 415: | ||
local alt_boxes = {} | local alt_boxes = {} | ||
for k, prop in | for k, prop in pairs(props) do | ||
-- Some props don't have values, as those come from upgrades | -- Some props don't have values, as those come from upgrades | ||
-- For now, we will ignore these and only show data for the base ability | -- For now, we will ignore these and only show data for the base ability | ||
| Line 452: | Line 451: | ||
local UPGRADE_COST_MAP = {1, 2, 5} | local UPGRADE_COST_MAP = {1, 2, 5} | ||
function get_upgrade_boxes(hero_key, ability_num) | function get_upgrade_boxes(hero_key, ability_num) | ||
local ability = utils.get_ability_card_data(hero_key, ability_num) | local ability = utils.get_ability_card_data(hero_key, ability_num) | ||
| Line 471: | Line 460: | ||
local upgrade_boxes = {} | local upgrade_boxes = {} | ||
for k, upgrade in | for k, upgrade in pairs(upgrades) do | ||
local description = lang.get_string(upgrade.DescKey) | local description = lang.get_string(upgrade.DescKey) | ||
local desc_length = description and #description or 0 | |||
-- bypass some keys if they are mistakenly left in game files | -- bypass some keys if they are mistakenly left in game files | ||
| Line 492: | Line 482: | ||
end | end | ||
-- | -- Vary the font size based on the number of characters to prevent overflow | ||
local fontsize = '1rem' | |||
local | if desc_length > 30 and desc_length < 51 then | ||
fontsize = '0.9rem' | |||
elseif desc_length > 50 and desc_length < 71 then | |||
fontsize = '0.8rem' | |||
elseif desc_length > 70 then | |||
fontsize = '0.7rem' | |||
end | |||
local upgrade_scale = pick_scale(upgrade) | local upgrade_scale = pick_scale(upgrade) | ||
| Line 508: | Line 498: | ||
index = k, | index = k, | ||
cost = UPGRADE_COST_MAP[k], | cost = UPGRADE_COST_MAP[k], | ||
description = | description = frame:preprocess(description), | ||
scale_value = upgrade_scale and commonutils.round_to_sig_fig(upgrade_scale.Value, 3), | scale_value = upgrade_scale and commonutils.round_to_sig_fig(upgrade_scale.Value, 3), | ||
scale_type = upgrade_scale and upgrade_scale.Type, | scale_type = upgrade_scale and upgrade_scale.Type, | ||
fontsize = fontsize | |||
fontsize = | |||
} | } | ||
} | } | ||