Module:Abilities/card: Difference between revisions

m Created initial function for using new "manual" ability card template
m Added remaining attributes to get_ability_card_test function
Line 127: Line 127:


-- Function for sandboxing workshopping potential update of entire ability card generation
-- Function for sandboxing workshopping potential update of entire ability card generation
-- Pulls data from Data:AbilityCards.json for a defined hero and ability index
function get_ability_card_test(hero_key, ability_num, add_link, notes, notes_source_page)
function get_ability_card_test(hero_key, ability_num, add_link, notes, notes_source_page)
local ability = utils.get_ability_card_data(hero_key, ability_num)
local ability = utils.get_ability_card_data(hero_key, ability_num)
Line 148: Line 149:
end
end
local main_boxes = get_main_boxes(hero_key, ability_num, 1)
local frame = mw.getCurrentFrame()
local alt_boxes = get_alt_boxes(hero_key, ability_num, 1)
local info1_desc = get_info_desc(hero_key, ability_num, 1)
local info1_main_boxes = get_main_boxes(hero_key, ability_num, 1)
local info1_alt_boxes = get_alt_boxes(hero_key, ability_num, 1)
local info2_desc = get_info_desc(hero_key, ability_num, 2)
local info2_main_boxes = get_main_boxes(hero_key, ability_num, 2)
local info2_alt_boxes = get_alt_boxes(hero_key, ability_num, 2)
local upgrades = get_upgrade_boxes(hero_key, ability_num)
local upgrades = get_upgrade_boxes(hero_key, ability_num)
return mw.getCurrentFrame():expandTemplate{
return frame:expandTemplate{
title = "User:Saag/Sandbox/Ability card v2/manual card",
title = "User:Saag/Sandbox/Ability card v2/manual card",
args = {
args = {
name = 'Some Ability',
hero_key = hero_key,
icon = 'Catalyst.png',
ability_num = ability_num,
range = 99,
radius = 99,
-- Header info defined in various attributes
duration = 99,
name = ability_name_localized,
num_of_charges = 99,
name_link = name_link,
charge_cooldown = 99,
icon = lang.get_string(ability.Key, 'en') .. '.png',
cooldown = 99,
radius = ability.Radius and ability.Radius.Value,
duration = 99,
radius_ss = get_attr_ss(ability.Radius),
info1_desc = 'This ability does something',
range = ability.AbilityCastRange and ability.AbilityCastRange.Value,
info1_mainbox1 = main_boxes[1],
range_ss = get_attr_ss(ability.AbilityCastRange),
info1_mainbox2 = main_boxes[2],
duration = ability.AbilityDuration and ability.AbilityDuration.Value,
info1_mainbox3 = main_boxes[3],
duration_ss = get_attr_ss(ability.AbilityDuration),
info1_altbox1 =  alt_boxes[1],
-- ability_width = format_value_with_prepost(width_key, ability[width_key]),
info1_altbox2 =  alt_boxes[2],
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,
-- Info section #1 defined in "Info1" attribute
info1_desc = info1_desc,
info1_mainbox1 = info1_main_boxes[1],
info1_mainbox2 = info1_main_boxes[2],
info1_mainbox3 = info1_main_boxes[3],
info1_altbox1 =  info1_alt_boxes[1],
info1_altbox2 =  info1_alt_boxes[2],
info1_altbox3 =  info1_alt_boxes[3],
info1_altbox4 =  info1_alt_boxes[4],
info1_altbox5 =  info1_alt_boxes[5],
info1_altbox6 =  info1_alt_boxes[6],
 
-- Info section #2 defined in "Info2" attribute
info2_desc = info2_desc,
info2_mainbox1 = info2_main_boxes[1],
info2_mainbox2 = info2_main_boxes[2],
info2_mainbox3 = info2_main_boxes[3],
info2_altbox1 =  info2_alt_boxes[1],
info2_altbox2 =  info2_alt_boxes[2],
info2_altbox3 =  info2_alt_boxes[3],
info2_altbox4 =  info2_alt_boxes[4],
info2_altbox5 =  info2_alt_boxes[5],
info2_altbox6 =  info2_alt_boxes[6],
-- Ability upgrades defined in "Upgrades" attribute
upgrade1 = upgrades[1],
upgrade1 = upgrades[1],
upgrade2 = upgrades[2],
upgrade2 = upgrades[2],
upgrade3 = upgrades[3]
upgrade3 = upgrades[3],
-- User-created ability notes
notes = notes,
notes_source_page = notes_source_page
}
}
}
}
Line 277: Line 320:
end
end
return frame:preprocess(lang.get_string(info_section.DescKey))
end
function get_info_desc(hero_key, ability_num, info_section_num)
local ability = utils.get_ability_card_data(hero_key, ability_num)
if(ability == nil) then return "Ability Not Found" end
local info_section = ability['Info'..info_section_num]
-- some abilities have no info sections
if info_section == nil then return '' end
if info_section.DescKey == nil then
return ''
end
local frame = mw.getCurrentFrame()
return frame:preprocess(lang.get_string(info_section.DescKey))
return frame:preprocess(lang.get_string(info_section.DescKey))
end
end