Jump to content

The wiki is in the process of updating to the latest major game changes. Any contributions are appreciated!
Start here to learn how to edit and join our Discord server to make suggestions.

Module:AttributeData: Difference between revisions

From The Deadlock Wiki
Sur (talk | contribs)
m template args initialized as dict
Sur (talk | contribs)
m get_category_data() -> p.get_data_data()
(21 intermediate revisions by the same user not shown)
Line 1: Line 1:
local p = {};
local p = {};
local data = mw.loadJsonData("Data:AttributeData.json")
local attributes_data = mw.loadJsonData("Data:AttributeData.json")
local category_data = { --category specific parameters
["Weapon"] = {
unlocalized_name = "CitadelCategoryWeapon",
rgb = "213, 144, 63"
},
["Vitality"] = {
unlocalized_name = "CitadelCategoryArmor",
rgb = "116, 176, 28"
},
["Spirit"] = {
unlocalized_name = "CitadelCategoryTech",
rgb = "194, 136, 240"
},
}
function p.get_category_data()
return category_data
end


-- returns the table of a specific item
-- returns the table of a specific item
function get_json_item(name)
function get_json_item(name)
for i,v in pairs(data) do
for i,v in pairs(attributes_data) do
if (i == name) then
if (i == name) then
return v
return v
Line 12: Line 30:
end
end


--Call {{Lang}} on a given unlocalized string using key (not label)
function call_lang(unlocalized)
local template_title = mw.title.new("Template:Lang")
local template_args = {}
local template_call
template_args["key"] = unlocalized
local template_call = mw.getCurrentFrame():expandTemplate{ title = template_title, args = template_args }
return template_call
end


--{{#invoke:AttributeData|create_stat_boxes|HERO_NAME}}
 
p.create_stat_boxes = function(frame)
 
local hero_name = frame.args[1]
 
if(hero_name == nil) then return "Hero Not Found" end
 
-- Use expandTemplate to evaluate the Infobox_hero template
    local template_title = mw.title.new("Template:StatBox") --name of the template
    local template_calls = "" --all template calls concatenated
    local template_call --current template call
local template_args = {} --current template arguments
local cell_values --current cell values
local cell_value --current cell value
local num --current stat's numerical value
local postfix --current stat's postfix
for category, stats in pairs(data) do
template_args["box_name"] = "CitadelCategoryWeapon"
template_args["box_rgb"] = "213, 144, 63"
template_args["num_cols"] = "2"
cell_values = ""
for stat_name, stat_data in pairs(stats) do
-- get label and postfix
label = stat_data["label"]
postfix = stat_data["postfix"]
num = "5"
if (postfix == nil) then postfix = "" end
-- Set cell value as "Icon NumberPostfix localize(Statname),"
cell_value = "[[File:Bullet damage.png|15px]]]]" .. " " .. num  .. postfix .. " " .. call_lang(unlocalized) .. ","
cell_values = cell_values .. cell_value --add value to values list
end
-- Write current call
template_call = mw.getCurrentFrame():expandTemplate{ title = template_title, args = template_args }
-- Add call to the set of calls
template_calls = template_calls .. "\n" .. template_call
end
return template_calls
end


return p
return p

Revision as of 03:28, 19 September 2024

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

local p = {};
local attributes_data = mw.loadJsonData("Data:AttributeData.json")
local category_data = { --category specific parameters
	["Weapon"] = {
		unlocalized_name = "CitadelCategoryWeapon",
		rgb = "213, 144, 63"
	},
	["Vitality"] = {
		unlocalized_name = "CitadelCategoryArmor",
		rgb = "116, 176, 28"
	},
	["Spirit"] = {
		unlocalized_name = "CitadelCategoryTech",
		rgb = "194, 136, 240"
	},
}
	
function p.get_category_data()
	return category_data
end

-- returns the table of a specific item
function get_json_item(name)
	for i,v in pairs(attributes_data) do
		if (i == name) then
			return v
		end
	end
	return nil
end







return p