Documentation Module:Focus/doc
Implements
- 重定向 Template:Tlx.
Submodules
The following modules are used as needed.
| Submodule | Tags |
|---|---|
| Module:Focus/generic | GENERIC, WARLORD, HOA |
| Module:Focus/tfv | AST, CAN, SAF, NZL |
| Module:Focus/dod | CZE, HUN, ROM, YUG |
| Module:Focus/wtt | GER, JAP, CHI, PRC, MAN, CHISHARED |
| Module:Focus/mtg | ENG, USA, HOL, MEX, |
| Module:Focus/lar | FRA, FRE, VIC, POR, SPR, SPA |
| Module:Focus/bftb | BUL, GRE, TUR |
| Module:Focus/nsb | SOV, POL, EST, LAT, LIT, BALTIC |
| Module:Focus/bba | ITA, ETH, SWI |
| Module:Focus/aat | DEN, FIN, ICE, NOR, SWE, NORDIC |
| Module:Focus/toa | ARG, BRA, CHL, PRU, URG, GUAY, SMB |
| Module:Focus/gtd | AUS, BEL, COG, BELCOG, HUN2, HABSBURG |
| Module:Focus/goe | AFG, IRQ, RAJ2, PER |
Adding/editing focuses
First, go to the appropriate subpage for the country you want to edit.
- Add
To keep the order, find focus above/below the one you want to add.
To add a focus, start with the country tag followed by the focus ID in square brackets, example: sov['sov_infrastructure_effort_nsb'] = { }
Then, based on the parameters listed below, add an entry.
- Edit
To edit the focus, find it and simply edit it.
Parameters
| Parameter | Required | Type | Example | Note |
|---|---|---|---|---|
| name | Yes | String | "Army Effort" |
Focus name from localization file. |
| icon | Yes | String Table |
"goal_generic_allies_build_infantry" |
Focus icon. Focus icons. [1] is default. |
| suffix | No | String | "C" |
Should be used only if 2 or more focuses have the same name. Remember to update Template:Focus/doc. |
| linkName | No | String | "Develop Capital" |
In case when anchor name in nf page is different than localization name. |
| page | No | String | "ger" |
Set focus page. See: Module:Focus/Config (cfg.pages) |
| continuous | No | Bool | true |
If focus is from continuous focus file. |
Example entry: fra['fra_autoroutes'] = { name = "Autoroutes", icon = "goal_generic_construct_infrastructure" }
The national focus page should be placed at the end of the module, right after the loops.
-------------------------------------------------------------------------------
--
-- Module:Focus
--
-- This module implements Template:Focus.
-------------------------------------------------------------------------------
local p = {};
local tagSet = {
generic = {dlc = "generic"}, warlord = {dlc = "generic"}, hoa = {dlc = "generic"},
ast = {dlc = "tfv"}, can = {dlc = "tfv"}, saf = {dlc = "tfv"}, raj = {dlc = "tfv"}, nzl = {dlc = "tfv"},
cze = {dlc = "dod"}, hun = {dlc = "dod"}, yug = {dlc = "dod"}, rom = {dlc = "dod"},
ger = {dlc = "wtt"}, jap = {dlc = "wtt"}, chi = {dlc = "wtt"}, prc = {dlc = "wtt"}, man = {dlc = "wtt"},
usa = {dlc = "mtg"}, eng = {dlc = "mtg"}, hol = {dlc = "mtg"}, mex = {dlc = "mtg"},
fra = {dlc = "lar"}, spr = {dlc = "lar"}, spa = {dlc = "lar"}, por = {dlc = "lar"}, vic = {dlc = "lar"}, fre = {dlc = "lar"},
tur = {dlc = "bftb"}, gre = {dlc = "bftb"}, bul = {dlc = "bftb"},
sov = {dlc = "nsb"}, pol = {dlc = "nsb"}, est = {dlc = "nsb"}, lat = {dlc = "nsb"}, lit = {dlc = "nsb"}, baltic = {dlc = "nsb"},
ita = {dlc = "bba"}, swi = {dlc = "bba"}, eth = {dlc = "bba"},
den = {dlc = "aat"}, swe = {dlc = "aat"}, nor = {dlc = "aat"}, fin = {dlc = "aat"}, ice = {dlc = "aat"}, nordic = {dlc = "aat"},
arg = {dlc = "toa"}, bra = {dlc = "toa"}, chl = {dlc = "toa"}, par = {dlc = "toa"}, urg = {dlc = "toa"}, smb = {dlc = "toa"}, guay = {dlc = "toa"},
};
local chinese_warlords = {
gxc = {}, shx = {}, sik = {}, xsm = {}, yun = {},
};
local hoa_nations = {
afa = {}, beg = {}, gba = {}, har = {}, oro = {}, gem = {}, sid = {}, tig = {},
};
function p.main(frame)
local args = frame.args
local aTag = args['tag']
--Check tag
if chinese_warlords[aTag] then --Set chinese warlords tag to "warlord"
aTag = "warlord"
elseif hoa_nations[aTag] then --Set horn of africa countries tag to "hoa"
aTag = "hoa"
elseif not tagSet[aTag] then
return "<span style=\"color: red; font-size: 11px;\">(unrecognized TAG \"" .. aTag .. "\" for [[Template:Focus]])</span>[[Category:Pages with unrecognized focus strings]]"
end
--Load only 1 module at a time (One page per dlc)
local dlcPage = "Module:Focus/" .. tagSet[aTag].dlc
local tag = mw.loadData(dlcPage)[aTag]
--Check id
if not tag[args['id']] then
return "<span style=\"color: red; font-size: 11px;\">(unrecognized id \"" .. args['id'] .. "\" in TAG \"" .. aTag .. "\" for [[Template:Focus]])</span>[[Category:Pages with unrecognized focus strings]]"
end
local id = tag[args['id']]
local page = ""
if id.continuous then
page = "Continuous focus"
elseif id.shared then
page = tag.shared_page
elseif id.joint then
page = tag.joint_page
else
page = tag.page
end
--icon
local icon = ""
if args.icon ~= nil and args.icon ~= "" then
icon = args.icon
elseif type(id.icon) == "table" then
args.iconid = tonumber(args.iconid)
if id.icon[args.iconid] then
icon = id.icon[args.iconid]
else --Fallback value (default) if out of range
icon = id.icon[1]
end
else
icon = id.icon
end
local ic = string.format("[[File:%s.png|%s|%s|link=", icon, id.name, args['size'])
if args['link'] == "yes" then
ic = ic .. page
if id.subtree ~= nil then
ic = ic .. id.subtree
end
end
if id.replaceName == nil then
ic = ic .. "#" .. id.name
else
ic = ic .. "#" .. id.replaceName
end
if id.dup_name ~= nil then
ic = ic .. " " .. id.dup_name
end
ic = ic .. "]]"
--text
local name = ""
if args.text ~= nil and args.text ~= "" then
name = args.text
else
name = id.name
end
local tx = name
if args['link'] == "yes" then
tx = "[[" .. page
if id.subtree ~= nil then
tx = tx .. id.subtree
end
if id.replaceName == nil then
tx = tx .. "#" .. id.name
else
tx = tx .. "#" .. id.replaceName
end
if id.dup_name ~= nil then
tx = tx .. " " .. id.dup_name
end
tx = tx .. "|" .. name .. "]]"
end
return ic .. tx
end
return p