Module:Abilities/card: Difference between revisions
m Map nil to empty string on icon data formatting |
m Added new ability card function for initial testing |
||
Line 58: | Line 58: | ||
--notes parameter will eventually be removed, as notes_source_page would be sufficient or could even be determined from within this function | --notes parameter will eventually be removed, as notes_source_page would be sufficient or could even be determined from within this function | ||
function p.get_ability_card_from_key(hero_key, ability_num, add_link, notes, notes_source_page) | function p.get_ability_card_from_key(hero_key, ability_num, add_link, notes, notes_source_page) | ||
if type(hero_key) == 'table' and hero_key.args then | |||
local frame = hero_key | |||
hero_key = frame.args[1] | |||
ability_num = frame.args[2] | |||
add_link = frame.args[3] | |||
notes = frame.args[4] | |||
notes_source_page = frame.args[5] | |||
end | |||
local ability = utils.get_ability_card_data(hero_key, ability_num) | |||
if(ability == nil) then | |||
return 'Ability data not found for hero ' ..hero_key.. ' and num ' .. ability_num | |||
end | |||
local ability_name_localized = lang.get_string(ability.Key) | |||
local name_link = nil | |||
if add_link == 'true' then | |||
name_link = ability_name_localized | |||
end | |||
if notes_source_page ~= nil and notes ~= "" then | |||
--Notes comes from a /Notes page, and the notes are not blank | |||
-- Confirm the notes source page exists, otherwise, don't display any notes | |||
local title = mw.title.new(notes_source_page) | |||
if not (title and title.exists) then | |||
notes = "" | |||
end | |||
end | |||
return mw.getCurrentFrame():expandTemplate{ | |||
title = "Ability card v2/Card", | |||
args = { | |||
hero_key = hero_key, | |||
ability_num = ability_num, | |||
name = ability_name_localized, | |||
name_link = name_link, | |||
icon = lang.get_string(ability.Key, 'en') .. '.png', | |||
description = mw.getCurrentFrame():preprocess(lang.get_string(ability.DescKey)), | |||
radius = ability.Radius and ability.Radius.Value, | |||
radius_ss = get_attr_ss(ability.Radius), | |||
range = ability.AbilityCastRange and ability.AbilityCastRange.Value, | |||
range_ss = get_attr_ss(ability.AbilityCastRange), | |||
duration = ability.AbilityDuration and ability.AbilityDuration.Value, | |||
duration_ss = get_attr_ss(ability.AbilityDuration), | |||
-- ability_width = format_value_with_prepost(width_key, ability[width_key]), | |||
cooldown =ability.AbilityCooldown and ability.AbilityCooldown.Value, | |||
cooldown_ss = get_attr_ss(ability.AbilityCooldown), | |||
charge_cooldown = ability.AbilityCooldownBetweenCharge and ability.AbilityCooldownBetweenCharge.Value, | |||
charge_cooldown_ss = get_attr_ss(ability.AbilityCooldownBetweenCharge), | |||
num_of_charges = ability.AbilityCharges and ability.AbilityCharges.Value, | |||
notes = notes, | |||
notes_source_page = notes_source_page | |||
} | |||
} | |||
end | |||
-- Function for sandboxing workshopping potential update of entire ability card generation | |||
function p.get_ability_card_test(hero_key, ability_num, add_link, notes, notes_source_page) | |||
if type(hero_key) == 'table' and hero_key.args then | if type(hero_key) == 'table' and hero_key.args then | ||
local frame = hero_key | local frame = hero_key |