Jump to content

Module:AbilityData/hero: Difference between revisions

From Deadlock Wiki
Sur (talk | contribs)
m notes logic outsourced to Abilities/utils.get_notes_source_page_name; write_hero_abilities removed; write_hero_abilities2 renamed to write_hero_abilities
Sur (talk | contribs)
m notes_source_page passed to get_ability_card_from_key
 
Line 31: Line 31:
ability_num,  
ability_num,  
'true',
'true',
frame:preprocess(notes_content)
frame:preprocess(notes_content),
notes_source_page
)
)

Latest revision as of 05:31, 28 November 2024

Documentation for this module may be created at Module:AbilityData/hero/doc

local ability_module = require("Module:Abilities/card")
local dictionary_module = require("Module:Dictionary")
local lang_module = require("Module:Lang")
local util_module = require("Module:Utilities")
local ability_util_module = require("Module:Abilities/utils")
local heroes_data = mw.loadJsonData("Data:HeroData.json")

local p = {}

--collapsible list
function p.write_hero_abilities(frame)
	local hero_key = frame.args[1]
	
	--Determine the hero's abilities
	local hero_data = heroes_data[hero_key]
	if (hero_data==nil) then return "Hero key "..hero_key.." not found" end
	local abilities_data = hero_data["BoundAbilities"]
	if (abilities_data==nil) then return "Hero key"..hero_key.." has no BoundAbilities" end
	
	local ret = ""
	for ability_num, ability_data in pairs(abilities_data) do
		local ability_key = ability_data["Key"]
		local ability_name_localized = lang_module.get_string(ability_key)
		local tab_name = "<h3>" .. ability_name_localized .. "</h3>\n"
		local notes_source_page = ability_util_module.get_notes_source_page_name(ability_key)
		
		--Determine tab content
		local notes_content = '{{'..notes_source_page..'}}'
		local tab_content = ability_module.get_ability_card_from_key(
			hero_key, 
			ability_num, 
			'true',
			frame:preprocess(notes_content),
			notes_source_page
			)
			
		ret = ret .. tab_name .. tab_content .. '\n'
	end

	return frame:preprocess(ret)
end

return p