Home
Random
Log in
Settings
About the Deadlock Wiki
Search
Editing
Module:HeroData/nav
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
local p = {} local heroes_data = mw.loadJsonData("Data:HeroData.json") local hero_release_module = require('Module:HeroData/release') local lang_module = require('Module:Lang') -- for [[Template:Deadlock_Wiki/Heroes]] on home page, i.e. [[Template:Hero card2]] function p.get_hero_nav_cards(frame) local in_herolabs = frame.args['in_herolabs'] --true or false local text_size = frame.args['text_size'] local card_size = frame.args['card_size'] local sticker_size = frame.args['sticker_size'] local herolabs_text_size = frame.args['herolabs_text_size'] local debug_mode = frame.args['debug_mode'] -- Turn debug_mode from string to bool, default to false if debug_mode == nil then debug_mode = false elseif debug_mode == 'true' then debug_mode = true elseif debug_mode == 'false' then debug_mode = false end if in_herolabs ~= 'true' and in_herolabs ~= 'false' then return 'in_herolabs must be either true or false' end --Iterate heroes local heroes = {} for hero_key, hero_data in pairs(heroes_data) do if hero_data["Name"] ~= nil then -- if herolabs is requested, only needs to have herolabs=true -- otherwise, needs to be not disabled, in development, nd herolabs is nil or false local this_hero_status = hero_release_module.get_hero_release_status(hero_key) if this_in_herolabs == nil then this_in_herolabs = false end if ((in_herolabs == 'true' and this_hero_status == 'HeroLabs') or (in_herolabs == 'false' and this_hero_status == 'Released')) then local is_recommended = hero_data['IsRecommended'] if is_recommended == nil then is_recommended = false end local hero_str = '|name=' .. lang_module.get_string(hero_key, nil, 'en') .. '|link=' .. lang_module.get_string(hero_key, 'en') .. '|recommended=' .. tostring(is_recommended) table.insert(heroes, hero_str) end end end --Order list alphabetically table.sort(heroes) --O(nlogn) --Add each item to output local ret = '' for index, hero_name in ipairs(heroes) do ret = ret .. '{{Hero card2' .. hero_name ret = ret .. '|text_size=' .. text_size ret = ret .. '|herolabs=' .. in_herolabs ret = ret .. '|card_size=' .. card_size ret = ret .. '|sticker_size=' .. sticker_size ret = ret .. '|herolabs_text_size=' .. herolabs_text_size ret = ret .. '}} ' end --Remove the last space ret = string.sub(ret, 1, -(string.len(' '))-1) if debug_mode then return ret else -- evaluate wikitext if not in debug mode return frame:preprocess(ret) end end return p
Summary:
Please note that all contributions to 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
Templates used on this page:
Data:Dictionary
(
edit
)
Data:HeroData.json
(
edit
)
Data:LangCodes.json
(
edit
)
Data:Lang en.json
(
edit
)
Template:Hero card2
(
edit
)
Module:Dictionary
(
edit
)
Module:HeroData/nav
(
edit
)
Module:HeroData/nav/doc
(
edit
)
Module:HeroData/release
(
edit
)
Module:Lang
(
edit
)
Module:Utilities
(
edit
)