Editing
Module:HeroData/nav
Jump to navigation
Jump to search
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 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 this_in_herolabs = hero_data['InHeroLabs'] if this_in_herolabs == nil then this_in_herolabs = false end if ((in_herolabs == 'true' and this_in_herolabs) or (in_herolabs == 'false' and not hero_data['IsDisabled'] and not hero_data['InDevelopment'] and not this_in_herolabs)) 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:Lang
(
edit
)
Module:Utilities
(
edit
)
Navigation menu
Personal tools
English
Not logged in
Talk
Contributions
Create account
Log in
Namespaces
Module
Discussion
English
Views
Read
Edit source
View history
More
Search
Navigation
Main page
Discord community
Recent changes
Random page
Tools
What links here
Related changes
Special pages
Page information
Languages