- Welcome to the Kancolle Wiki!
- If you have any questions regarding site content, account registration, etc., please visit the KanColle Wiki Discord
Difference between revisions of "Module:NodeInfoInvoke"
Jump to navigation
Jump to search
(Implemented a more permanent solution to the node type differences) |
|||
Line 3: | Line 3: | ||
local NodeInfo = require('Module:NodeInfo') | local NodeInfo = require('Module:NodeInfo') | ||
− | local title_template_simple_event = [[<div id="${map} ${node} ${diff}" style="width:700px;text-align:center;">${map} ${node} | + | local title_template_simple_event = [[<div id="${map} ${node} ${diff}" style="width:700px;text-align:center;">${map} ${node}${name}</div> |
]] | ]] | ||
− | local title_template_event = [[<div id="${map} ${node} ${diff}" style="width:700px;text-align:center;">${map} ${node} | + | local title_template_event = [[<div id="${map} ${node} ${diff}" style="width:700px;text-align:center;">${map} ${node}${name} ([http://db.kcwiki.moe/drop/map/${event_number}${map_number}/${diff_number}/${node}-SAB.html PoiDB])</div> |
]] | ]] | ||
− | local title_template_simple = [[<div id="${map} ${node}" style="width:700px;text-align:center;">${map} ${node} | + | local title_template_simple = [[<div id="${map} ${node}" style="width:700px;text-align:center;">${map} ${node}${name}</div> |
]] | ]] | ||
− | local title_template = [[<div id="${map} ${node}" style="width:700px;text-align:center;">${map} ${node} | + | local title_template = [[<div id="${map} ${node}" style="width:700px;text-align:center;">${map} ${node}${name} ([http://db.kcwiki.moe/drop/map/${world_number}${map_number}/${node}-SAB.html PoiDB])</div> |
]] | ]] | ||
Line 45: | Line 45: | ||
["Medium"] = 3, | ["Medium"] = 3, | ||
["Hard"] = 4, | ["Hard"] = 4, | ||
+ | } | ||
+ | |||
+ | local node_types = { | ||
+ | ["Normal"] = true, | ||
+ | ["Boss"] = true, | ||
+ | ["Resource"] = false, | ||
+ | ["Storm"] = false, | ||
+ | ["Empty"] = false, | ||
+ | ["Select"] = false, | ||
+ | ["Night"] = true, | ||
+ | ["Aerial"] = true, | ||
+ | ["Defense"] = false, | ||
+ | ["Raid"] = true, | ||
} | } | ||
Line 59: | Line 72: | ||
local node = args[1] or "?" | local node = args[1] or "?" | ||
local diff = diffs[args.diff] and args.diff | local diff = diffs[args.diff] and args.diff | ||
− | local name = args.name or " | + | local name = ": "+args.name or "" |
local map_number = string.match(map:sub(3, 4), "%d") or "?" | local map_number = string.match(map:sub(3, 4), "%d") or "?" | ||
local diff_number = diffs[diff] | local diff_number = diffs[diff] | ||
− | + | ||
return diff and format{ | return diff and format{ | ||
− | + | node_types[args[2]] and title_template_simple_event or title_template_event, | |
map = map, | map = map, | ||
node = node, | node = node, | ||
Line 74: | Line 87: | ||
diff_number = diff_number, | diff_number = diff_number, | ||
} or format{ | } or format{ | ||
− | + | node_types[args[2]] and title_template_simple or title_template, | |
map = map, | map = map, | ||
node = node, | node = node, |
Revision as of 07:27, 9 April 2018
Documentation for this module may be created at Module:NodeInfoInvoke/doc
local Utils = require('Module:Utils')
local format = require('Module:StringInterpolation').format
local NodeInfo = require('Module:NodeInfo')
local title_template_simple_event = [[<div id="${map} ${node} ${diff}" style="width:700px;text-align:center;">${map} ${node}${name}</div>
]]
local title_template_event = [[<div id="${map} ${node} ${diff}" style="width:700px;text-align:center;">${map} ${node}${name} ([http://db.kcwiki.moe/drop/map/${event_number}${map_number}/${diff_number}/${node}-SAB.html PoiDB])</div>
]]
local title_template_simple = [[<div id="${map} ${node}" style="width:700px;text-align:center;">${map} ${node}${name}</div>
]]
local title_template = [[<div id="${map} ${node}" style="width:700px;text-align:center;">${map} ${node}${name} ([http://db.kcwiki.moe/drop/map/${world_number}${map_number}/${node}-SAB.html PoiDB])</div>
]]
local event_numbers = {
["World 1"] = 1,
["World 2"] = 2,
["World 3"] = 3,
["World 4"] = 4,
["World 5"] = 5,
["World 6"] = 6,
["Winter 2016 Event"] = 33,
["Spring 2016 Event"] = 34,
["Summer 2016 Event"] = 35,
["Fall 2016 Event"] = 36,
["Winter 2017 Event"] = 37,
["Spring 2017 Event"] = 38,
["Summer 2017 Event"] = 39,
["Fall 2017 Event"] = 40,
["Winter 2018 Event"] = 41,
}
local diff_numbers = {
["Easy"] = 1,
["Normal"] = 2,
["Medium"] = 2,
["Hard"] = 3,
}
local diff_numbers2 = {
["Casual"] = 1,
["Easy"] = 2,
["Medium"] = 3,
["Hard"] = 4,
}
local node_types = {
["Normal"] = true,
["Boss"] = true,
["Resource"] = false,
["Storm"] = false,
["Empty"] = false,
["Select"] = false,
["Night"] = true,
["Aerial"] = true,
["Defense"] = false,
["Raid"] = true,
}
function formatTitle(pagename, args)
local event, map = string.match(pagename, "([^/]+)/([^/]+)")
event = event or "?"
map = map or "E-?"
local event_number = event_numbers[event] or "?"
local diffs = (event_number == "?" or event_number >= 41) and diff_numbers2 or diff_numbers
local node = args[1] or "?"
local diff = diffs[args.diff] and args.diff
local name = ": "+args.name or ""
local map_number = string.match(map:sub(3, 4), "%d") or "?"
local diff_number = diffs[diff]
return diff and format{
node_types[args[2]] and title_template_simple_event or title_template_event,
map = map,
node = node,
diff = diff,
name = name,
event_number = event_number,
map_number = map_number,
diff_number = diff_number,
} or format{
node_types[args[2]] and title_template_simple or title_template,
map = map,
node = node,
name = name,
world_number = event_number,
map_number = map_number,
}
end
local NodeInfoInvoke = {}
function NodeInfoInvoke.Table(frame)
local args = Utils.getTemplateArgs(frame)
local table_string = NodeInfo:Table(args.explicit)
if args.explicit.diff or args.implicit.pagename and args.implicit.pagename:sub(1, 5) == "World" then
return formatTitle(args.implicit.pagename, args.explicit) .. table_string
else
return table_string
end
end
return NodeInfoInvoke