Module:AbilityData: Difference between revisions
Jump to navigation
Jump to search
initial sandbox |
m Fixed get_ability_name |
||
(103 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
local data = mw.loadJsonData("Data:AbilityCards.json") | |||
local data = mw.loadJsonData("Data: | |||
local p = {} | |||
-- returns the table of a specific item | -- returns the table of a specific item | ||
function | function get_ability(hero_key, ability_num) | ||
for | local ui_data = data[hero_key] | ||
if ( | if(ui_data == nil) then return "Hero Not Found" end | ||
return ui_data[tonumber(ability_num)] | |||
end | |||
--{{#invoke:AbilityData|get_ability_name|HERO_NAME|ABILITY_NUM}}-- | |||
p.get_ability_name = function(frame) | |||
local hero_name = frame.args[1] | |||
local ability_num = frame.args[2] | |||
local ability = get_ability(hero_name, ability_num) | |||
if(ability == nil) then return "Ability Not Found" end | |||
return ability.Name | |||
end | |||
--Write's an ability link for a given ability name in english | |||
--Siphon Life --> Abrams#(1)_Siphon_Life | |||
function ability_to_hyperlink(ability_name_to_search) | |||
if (ability_name_to_search == nil) then return "No ability name provided" end | |||
local hero_name | |||
local ability_name | |||
-- Iterate heros | |||
for hero_key, hero_data in pairs(data) do | |||
-- Iterate abilities | |||
hero_name = hero_data["Name"] | |||
for ability_num, ability_data in pairs(hero_data) do | |||
if (ability_num ~= "Name") then | |||
ability_name = ability_data["Name"] | |||
if (ability_name == ability_name_to_search) then | |||
-- Ability number and hero found | |||
-- "Siphon Life" > "Siphon_Life" | |||
ability_name = ability_name:gsub(" ", "_") | |||
return hero_name .. "#(" .. ability_num .. ")_" .. ability_name | |||
end | |||
end | |||
end | end | ||
end | end | ||
return nil | return nil | ||
end | end | ||
-- | --Writes an ability's icon from its name | ||
p. | --Shoulder Charge --> [[File:Shoulder Charge.png|link=Abrams#(1)_Shoulder_Charge|size=20px]] [[Abrams...|Shoulder Charge]] | ||
local | p.write_ability_icon = function(frame) | ||
local | local ability_name = frame.args[1] | ||
local custom_display_text = frame.args[2] | |||
return | if (custom_display_text == nil or custom_display_text == "") then custom_display_text = ability_name end | ||
local size = 20 | |||
local hyperlink = ability_to_hyperlink(ability_name) | |||
if (hyperlink == nil) then return "Ability " .. ability_name .. " not found" end | |||
local icon = "[[File:" .. ability_name .. ".png|link=" .. hyperlink .. "|" .. size .. "px]]" | |||
icon = '<span style="position: relative; bottom: 2px; filter: brightness(0) saturate(100%);">' .. icon .. '</span>' | |||
local link = "[[" .. hyperlink .. "|" .. custom_display_text .. "]]" | |||
return icon .. " " .. link | |||
end | end | ||
return p | return p |
Latest revision as of 17:25, 26 October 2024
Deprecated[edit source]
This module is being replaced by multiple modules in Module:Abilities. Any new functions should be created there
local data = mw.loadJsonData("Data:AbilityCards.json")
local p = {}
-- returns the table of a specific item
function get_ability(hero_key, ability_num)
local ui_data = data[hero_key]
if(ui_data == nil) then return "Hero Not Found" end
return ui_data[tonumber(ability_num)]
end
--{{#invoke:AbilityData|get_ability_name|HERO_NAME|ABILITY_NUM}}--
p.get_ability_name = function(frame)
local hero_name = frame.args[1]
local ability_num = frame.args[2]
local ability = get_ability(hero_name, ability_num)
if(ability == nil) then return "Ability Not Found" end
return ability.Name
end
--Write's an ability link for a given ability name in english
--Siphon Life --> Abrams#(1)_Siphon_Life
function ability_to_hyperlink(ability_name_to_search)
if (ability_name_to_search == nil) then return "No ability name provided" end
local hero_name
local ability_name
-- Iterate heros
for hero_key, hero_data in pairs(data) do
-- Iterate abilities
hero_name = hero_data["Name"]
for ability_num, ability_data in pairs(hero_data) do
if (ability_num ~= "Name") then
ability_name = ability_data["Name"]
if (ability_name == ability_name_to_search) then
-- Ability number and hero found
-- "Siphon Life" > "Siphon_Life"
ability_name = ability_name:gsub(" ", "_")
return hero_name .. "#(" .. ability_num .. ")_" .. ability_name
end
end
end
end
return nil
end
--Writes an ability's icon from its name
--Shoulder Charge --> [[File:Shoulder Charge.png|link=Abrams#(1)_Shoulder_Charge|size=20px]] [[Abrams...|Shoulder Charge]]
p.write_ability_icon = function(frame)
local ability_name = frame.args[1]
local custom_display_text = frame.args[2]
if (custom_display_text == nil or custom_display_text == "") then custom_display_text = ability_name end
local size = 20
local hyperlink = ability_to_hyperlink(ability_name)
if (hyperlink == nil) then return "Ability " .. ability_name .. " not found" end
local icon = "[[File:" .. ability_name .. ".png|link=" .. hyperlink .. "|" .. size .. "px]]"
icon = '<span style="position: relative; bottom: 2px; filter: brightness(0) saturate(100%);">' .. icon .. '</span>'
local link = "[[" .. hyperlink .. "|" .. custom_display_text .. "]]"
return icon .. " " .. link
end
return p