Home
Random
Log in
Settings
About the Deadlock Wiki
Search
Editing
Module
:
Patch Formatter
Give feedback
Warning:
You are not logged in. Once you make an edit, a temporary account will be created for you.
Learn more
.
Log in
or
create an account
to continue receiving notifications after this account expires, and to access other features.
Anti-spam check. Do
not
fill this in!
local p = {} local items_data = mw.loadJsonData("Data:ItemData.json") local heroes_data = mw.loadJsonData('Data:HeroData.json') local heroes_data_release = require('Module:HeroData/release') function p.get_all_released_item_names(frame) local item_names = {} -- Collect all the names of the items for item_key, item_data in pairs(items_data) do if item_data["Name"] and item_data["IsDisabled"] == false then table.insert(item_names, item_data["Name"]) end end -- Sort alphabetically table.sort(item_names) -- Merge with commas return table.concat(item_names, ", ") end -- Function to get the list of all released heroes function p.get_released_heroes_list() local released_heroes = {} for hero_key, hero_data in pairs(heroes_data) do if heroes_data_release.get_hero_release_status(hero_key) == "Released" then table.insert(released_heroes, hero_data['Name']) end end -- Sort hero names alphabetically table.sort(released_heroes) -- Combine into a comma-separated string return table.concat(released_heroes, ", ") end -- Function to get all abilities of released heroes function p.get_all_released_abilities_list() local abilities = {} for hero_key, hero_data in pairs(heroes_data) do -- Check if the hero is released if heroes_data_release.get_hero_release_status(hero_key) == "Released" then -- Check if the hero has BoundAbilities if hero_data['BoundAbilities'] then for _, ability_data in pairs(hero_data['BoundAbilities']) do if ability_data['Name'] then table.insert(abilities, ability_data['Name']) end end end end end -- Remove duplicate abilities local unique_abilities = {} for _, ability in ipairs(abilities) do unique_abilities[ability] = true end -- Collect unique abilities back into a table local result = {} for ability, _ in pairs(unique_abilities) do table.insert(result, ability) end -- Sort alphabetically table.sort(result) -- Join with commas return table.concat(result, ", ") end -- Function to get all released items with Activation not equal to Passive function p.get_active_released_items(frame) local active_items = {} for item_key, item_data in pairs(items_data) do -- Check if item is released and not passive if item_data["Name"] and item_data["IsDisabled"] == false and item_data["Activation"] and item_data["Activation"] ~= "Passive" then table.insert(active_items, item_data["Name"]) end end -- Sort alphabetically table.sort(active_items) -- Merge with commas return table.concat(active_items, ", ") end function p.generate_active_items_table(frame) local active_items = {} -- 1. Collect active items for item_key, item_data in pairs(items_data) do if item_data["Name"] and item_data["IsDisabled"] == false and item_data["Activation"] and item_data["Activation"] ~= "Passive" then table.insert(active_items, { name = item_data["Name"], key = item_key, slot = item_data["Slot"] or "Weapon", has_active_desc = item_data["ActiveDescription"] ~= nil }) end end -- 2. Sort by name table.sort(active_items, function(a, b) return a.name < b.name end) -- 3. Generate wiki markup local wikitext = [=[ {| class="wikitable sortable" style="width:100%" |+{{#invoke:Dictionary|translate|Active Items}} ! colspan="2" | {{#invoke:Lang|get_string|Citadel_HeroBuilds_CategoryNameLabel}} ! {{#invoke:Lang|get_string|Citadel_UserFeedback_TypeLabel}} ! {{Souls|{{#invoke:Dictionary|translate|Cost}}}} ! {{#invoke:Lang|get_string|Citadel_Mod_Tooltip_Active}} ! {{#invoke:Lang|get_string|AbilityCooldown_label}} ]=] -- 4. Add rows for each item for _, item in ipairs(active_items) do -- Determine background color and item type local bg_color, item_type if item.slot == "Armor" then bg_color = "#86C921" item_type = "Armor" elseif item.slot == "Tech" then bg_color = "#DE9CFF" item_type = "Tech" else bg_color = "#FCAC4D" item_type = "Weapon" end wikitext = wikitext .. "\n" .. string.format([=[ |- ! style="background-color:%s" | [[File:%s.png|64x64px]] ! [[%s{{If_lang}}|{{#invoke:Lang|get_string|%s}}]] | style="text-align:center;font-weight:bold" | {{ItemType|%s|{{#invoke:Lang|get_string|CitadelCategory%s}}}} | style="text-align:center;font-size:15px" | {{Souls|{{#invoke:ItemData|get_cost|%s}}}} | {{#invoke:Utilities|process_variables|%s_active_desc|%s}}{{#invoke:Utilities|process_variables|%s_desc|%s}}{{#invoke:Utilities|process_variables|%s_active|%s}} | style="text-align:center;font-size:16px" | {{#invoke:ItemData|get_prop|%s|AbilityCooldown}}s ]=], bg_color, item.name, item.name, item.key, item_type, item_type, item.name, item.key, item.name, item.key, item.name, item.key, item.name, item.name) end wikitext = wikitext .. "\n|}" return frame:preprocess(wikitext) end return p
Summary:
Please note that all contributions to The Deadlock Wiki are considered to be released under the Creative Commons Attribution-NonCommercial-ShareAlike (see
Deadlock:Copyrights
for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource.
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Preview page with this template
Page included on this page:
Module:Patch Formatter/doc
(
view source
)