Module:Abilities/card: Difference between revisionsGive feedback
Removed unused functions |
m moved WIP functions to bottom of file |
||
| Line 52: | Line 52: | ||
return build_ability_card(hero_key, ability_num, add_link, notes) | return build_ability_card(hero_key, ability_num, add_link, notes) | ||
end | end | ||
| Line 234: | Line 175: | ||
return commonutils.round_to_sig_fig(scale.Value, 3) | return commonutils.round_to_sig_fig(scale.Value, 3) | ||
end | end | ||
| Line 479: | Line 388: | ||
end | end | ||
return nil | return nil | ||
end | |||
--for use from an ability page (ability pages are WIP), not hero pages | |||
function p.write_ability_card_from_ability_key(frame) | |||
local ability_key = frame.args[1] | |||
if ability_key == nil then return "ability_key '" .. ability_key "' not provided" end | |||
-- Determine the hero and ability number | |||
local found_hero_key | |||
local found_ability_num | |||
for hero_key, card_data in pairs(data) do | |||
if found_hero_key == nil or found_ability_num == nil then | |||
for ability_num, ability_data in pairs(card_data) do | |||
if ability_num ~= "Name" then | |||
if ability_data['Key'] == ability_key then | |||
found_hero_key = hero_key | |||
found_ability_num = ability_num | |||
break | |||
end -- hero_key and ability_num found | |||
end | |||
end | |||
end | |||
end | |||
if found_ability_num == nil or found_hero_key == nil then return "ability_key " .. ability_key .. " is not used by any heroes" end | |||
-- Get notes for this ability | |||
local notes_source_page_name = utils.get_notes_source_page_name(ability_key) | |||
local notes_str = frame:preprocess("{{"..notes_source_page_name.."}}") | |||
-- Create the ability card | |||
return p.get_ability_card_from_key(found_hero_key, found_ability_num, true, notes_str, notes_source_page_name) | |||
end | |||
--from hero key* | |||
--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) | |||
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 = "Template: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 | end | ||
return p | return p | ||