Module:HeroData: Difference between revisions

Jump to navigation Jump to search
Sur (talk | contribs)
m stat infobox now hyperlinks except it doesnt work yet
Sur (talk | contribs)
m get_list_elem initial and get_localized removed
Line 28: Line 28:




--{{#invoke:HeroData|get_hero_var|HERO_NAME|STAT_NAME|sig_figs}}--
--{{#invoke:HeroData|get_hero_var|HERO_NAME|STAT_NAME|sig_figs_or_localize}}--
--sig_figs optional for rounding floats
--sig_figs optional for rounding floats
p.get_hero_var = function(frame)
p.get_hero_var = function(frame)
local hero_name = frame.args[1]
local hero_name = frame.args[1]
local hero_stat_key = frame.args[2]
local hero_stat_key = frame.args[2]
local sig_figs = frame.args[3]
local sig_figs_or_localize = frame.args[3]
local hero = p.get_json_item(hero_name)
local hero = p.get_json_item(hero_name)
Line 45: Line 45:
var_value = util_module.round_to_sig_fig(var_value, sig_figs)
var_value = util_module.round_to_sig_fig(var_value, sig_figs)
if (var_value == nil) then return "get_hero_var() error with rounding" end
if (var_value == nil) then return "get_hero_var() error with rounding" end
end
--localize
if (sig_figs_or_localize == "true") then
return lang_module._get_string(var_value)
end
end


Line 50: Line 55:
end
end


 
--{{#invoke:HeroData|get_list_elem|HERO_NAME|VAR|NUMBER|LOCALIZE}}
--{{#invoke:HeroData|get_localized_var|HERO_NAME|HERO_VAR}}--
p.get_list_elem = function(frame)
--i.e. |Abrams|Role -> hero_atlas_role -> Charges into close combat
p.get_localized_var = function(frame)
local hero_name = frame.args[1]
local hero_name = frame.args[1]
local unlocalized_var = frame.args[2]
local var = frame.args[2]
lore_key = p.get_json_item(hero_name)[unlocalized_var]
local number = tonumber(frame.args[3])
if (lore_key ~= nil) then
local localize = frame.args[4]
return lang_module._get_string(lore_key)
local hero = p.get_json_item(hero_name)
else
if (hero == nil) then return "Hero " .. hero_name .. " not found" end
return "Hero does not have " .. unlocalized_var .. " in their data"
local list = hero[var]
if (list == nil) then return "Hero does not have " .. var .. " variable" end
local element = list[1]
if (element == nil) then return "Hero does not have a number " .. number .. " " .. var end
if localize=="true" then
element = lang_module._get_string(element)
end
end
return element
end
end