Module:Abilities/card: Difference between revisions

upgrade boxes text scaling
m Reverted edit by Monster Domosed (talk) to last revision by Gammaton32
Tag: Rollback
Line 333: Line 333:
local props = ability.Upgrades
local props = ability.Upgrades
    local upgrade_boxes = {}
local upgrade_boxes = {}
    for k, prop in pairs(props) do
for k, prop in pairs(props) do
        local description = lang.get_string(prop.DescKey)
local description = lang.get_string(prop.DescKey)
       
        -- Generate description if no localized string
-- Generate a description if there is no localized string
        if (description == nil or description == '') then
if (description == nil or description == '') then
            description = create_description(prop, frame)  
description = create_description(prop, frame)
        end
end
       
        -- Improved font size scaling
-- Vary the font size based on the number of characters to prevent overflow
        local fontsize = '1rem'
local fontsize = '1rem'
        local line_height = '1.2'
if #description > 60 and #description < 71 then
        local max_chars = 60
fontsize = '0.95rem'
       
elseif #description > 70 and #description < 91 then
        if #description > max_chars then
fontsize = '0.875rem'
            -- Calculate reduced font size based on length
elseif #description > 90 then
            local overflow_ratio = math.min(#description / max_chars, 2) -- Cap at 2x
fontsize = '0.8rem'
            fontsize = string.format('%.2frem', 1 / overflow_ratio)
end
           
            -- Adjust line height for better readability
local upgrade_box = frame:expandTemplate{
            line_height = '1.1'
title = "Ability_card_v2/Card/UpgradeBox",
        end
args = {
       
  cost = UPGRADE_COST_MAP[k],
        local upgrade_box = frame:expandTemplate{
  description = frame:preprocess(description),
            title = "Ability_card_v2/Card/UpgradeBox",
  scale_value = prop.Scale and commonutils.round_to_sig_fig(prop.Scale.Value, 3),
            args = {
  scale_type =  prop.Scale and prop.Scale.Type,
              cost = UPGRADE_COST_MAP[k],  
  fontsize = fontsize
              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,
table.insert(upgrade_boxes, upgrade_box)
              fontsize = fontsize,
end
              line_height = line_height
            }
return upgrade_boxes
        }
        table.insert(upgrade_boxes, upgrade_box)
    end
   
    return upgrade_boxes
end
end