Module:Sandbox/LVL: Difference between revisionsGive feedback
No edit summary |
No edit summary |
||
| Line 188: | Line 188: | ||
--{{#invoke:HeroData|get_hero_scalar|HERO_NAME|SCALING_TYPE|STAT_NAME|sig_figs_or_localize}}-- | --{{#invoke:HeroData|get_hero_scalar|HERO_NAME|SCALING_TYPE|STAT_NAME|sig_figs_or_localize}}-- | ||
p.get_hero_scalar = function(frame) | p.get_hero_scalar = function(frame) | ||
local hero_key = frame.args[1] | |||
local scaling_type = frame.args[2] | |||
local stat_key = frame.args[3] | |||
if not hero_key or not scaling_type or not stat_key then return "" end | |||
local hero_data = heroes_data[hero_key] | |||
if not hero_data then return "" end | |||
local scaling_data = hero_data[scaling_type .. "Scaling"] | |||
if not scaling_data then return "" end | |||
local scaling_value = scaling_data[stat_key] | |||
if not scaling_value or scaling_value == 0 then return "" end | |||
-- Round to 3 sig figs | |||
scaling_value = tonumber(string.format("%.3g", scaling_value)) | |||
-- Return template (PI for Level, Ss for Spirit) | |||
local template_name = (scaling_type == "Level") and "PI" or "Ss" | |||
local template_args = { ["1"] = scaling_value } | |||
return mw.getCurrentFrame():expandTemplate{ title = "Template:" .. template_name, args = template_args } | |||
end | end | ||
| Line 275: | Line 269: | ||
local hero_data = heroes_data[hero_key] | local hero_data = heroes_data[hero_key] | ||
if hero_data | if not hero_data then return "" end | ||
if | |||
-- Check base value (direct, not nested) | |||
local base_value = hero_data[stat_key] | |||
if base_value and tonumber(base_value) and tonumber(base_value) ~= 0 then | |||
return "1" | |||
end | |||
-- Check | -- Check LevelScaling (direct) | ||
if hero_data.LevelScaling and hero_data.LevelScaling[stat_key] and hero_data.LevelScaling[stat_key] ~= 0 then | |||
return "1" | |||
return "1" | |||
end | end | ||
-- Check | -- Check SpiritScaling (direct) | ||
if hero_data.SpiritScaling and hero_data.SpiritScaling[stat_key] and hero_data.SpiritScaling[stat_key] ~= 0 then | |||
return "1" | |||
return "1" | |||
end | end | ||
return "" | return "" | ||
end | end | ||