• Welcome to the Kancolle Wiki!
  • If you have any questions regarding site content, account registration, etc., please visit the KanColle Wiki Discord

Changes

Jump to navigation Jump to search
no edit summary
Line 1: Line 1: −
local Utils = require('Module:Utils')
+
local U = require('Module:Core')
local format = require('Module:StringInterpolation').format
   
local NodeInfo = require('Module:NodeInfo')
 
local NodeInfo = require('Module:NodeInfo')
   −
local title_template_simple = [[<div id="${map} ${node} ${diff}" style="width:700px;text-align:center;">${map} ${node}: ${name}</div>
+
local templates = {
]]
+
    title = '<div id="${map} ${node}">${map} ${node}${nameSuffix} ([https://db.kcwiki.moe/drop/map/${world_number}${map_number}/${node}-SAB.html PoiDB])</div>\n',
 +
    title_simple = '<div id="${map} ${node}">${map} ${node}${nameSuffix}</div>\n',
 +
    event_title = '<div id="${map} ${node} ${diff}">${map} ${diff} ${node}${nameSuffix} ([https://db.kcwiki.moe/drop/map/${world_number}${map_number}/${diff_number}/${node}-SAB.html PoiDB])</div>\n',
 +
    event_title_simple = '<div id="${map} ${node} ${diff}">${map} ${diff} ${node}${nameSuffix}</div>\n',
 +
}
   −
local title_template = [[<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 world_numbers = {
]]
+
     ["World 1"] = 1,
 
+
     ["World 2"] = 2,
local event_numbers = {
+
     ["World 3"] = 3,
     ["World 1: 鎮守府海域"] = 1,
+
     ["World 4"] = 4,
     ["World 2: 南西諸島海域"] = 2,
+
     ["World 5"] = 5,
     ["World 3: 北方海域"] = 3,
+
     ["World 6"] = 6,
     ["World 4: 西方海域"] = 4,
+
    ["World 7"] = 7,
     ["World 5: 南方海域"] = 5,
  −
     ["World 6: 中部海域"] = 6,
   
     ["Winter 2016 Event"] = 33,
 
     ["Winter 2016 Event"] = 33,
 
     ["Spring 2016 Event"] = 34,
 
     ["Spring 2016 Event"] = 34,
Line 25: Line 26:  
     ["Fall 2017 Event"] = 40,
 
     ["Fall 2017 Event"] = 40,
 
     ["Winter 2018 Event"] = 41,
 
     ["Winter 2018 Event"] = 41,
 +
    ["Early Fall 2018 Event"] = 42,
 +
    ["Winter 2019 Event"] = 43,
 +
    ["Spring 2019 Event"] = 44,
 +
    ["Summer 2019 Event"] = 45,
 +
    ["Fall 2019 Event"] = 46,
 +
    ["Hinamatsuri 2020 Mini-Event"] = 47,
 +
    ["Rainy-Summer 2020 Event"] = 48,
 +
    ["Fall 2020 Event"] = 49,
 +
    ["Spring 2021 Event"] = 50,
 +
    ["Summer 2021 Event"] = 51,
 +
    ["Fall 2021 Event"] = 52,
 +
    ["Winter 2022 Event"] = 53,
 +
    ["Spring 2022 Event"] = 54,
 +
    ["Summer 2022 Event"] = 55,
 +
    ["Early Spring 2023 Event"] = 56,
 +
    ["Summer 2023 Event"] = 57,
 +
    ["Early Spring 2024 Event"] = 58,
 
}
 
}
   −
local diff_numbers = {
+
local diff_numbers_legacy = {
 +
    ["Regular"] = 0,
 
     ["Easy"] = 1,
 
     ["Easy"] = 1,
 
     ["Normal"] = 2,
 
     ["Normal"] = 2,
Line 34: Line 53:  
}
 
}
   −
local diff_numbers2 = {
+
local diff_numbers = {
 +
    ["Regular"] = 0,
 
     ["Casual"] = 1,
 
     ["Casual"] = 1,
 
     ["Easy"] = 2,
 
     ["Easy"] = 2,
Line 40: Line 60:  
     ["Hard"] = 4,
 
     ["Hard"] = 4,
 
}
 
}
 +
 +
local simple_node_types = { "Resource", "Storm", "Empty", "Select", "Raid", "Landing", "Repair" }
    
function formatTitle(pagename, args)
 
function formatTitle(pagename, args)
   −
     local event, map = string.match(pagename, "([^/]+)/([^/]+)")
+
     local world, map = string.match(pagename, "([^/]+)/([^/]+)")
     event = event or "?"
+
     world = args.world or world or '??'
     map = map or "E-?"
+
     map = args.map or map or '??'
   −
     local event_number = event_numbers[event] or "?"
+
     local world_number = world_numbers[world] or "??"
 +
    local map_number = string.match(map:sub(3, 4), "%d") or "??"
   −
     local node = args[1] or "?"
+
     local node = args[1] or "??"
      
+
     local node_type = args[2] or "??"
     local name = args.name or "?"
+
     local is_simple_node_type = node_type == "??" or U.ifind(simple_node_types, node_type)
   −
   
+
     local diffs = (world_number == "??" or world_number >= 41) and diff_numbers or diff_numbers_legacy
     local map_number = string.match(map, "%d") or "?"
+
    local diff = diffs[args.diff] and args.diff
   
+
    local diff_number = diffs[diff] or "??"
    if not diffs then
+
    local is_event_diff = diff and diff ~= 'Regular'
        title_template_simple = [[<div id="${map} ${node}" style="width:700px;text-align:center;">${map} ${node}: ${name}</div>
  −
]]
  −
        title_template = [[<div id="${map} ${node}" style="width:700px;text-align:center;">${map} ${node}: ${name} ([http://db.kcwiki.moe/drop/map/${event_number}${map_number}/${node}-SAB.html PoiDB])</div>
  −
]]
  −
        return format{
  −
            node == "AB" and title_template_simple or title_template,
  −
            map = map,
  −
            node = node,
  −
            name = name,
  −
            event_number = event_number,
  −
            map_number = map_number,
  −
        }
  −
    else
  −
        local diffs = (event_number == "?" or event_number >= 41) and diff_numbers2 or diff_numbers
  −
        local diff_number = diffs[diff] or "?"
  −
        local diff = diffs[args.diff] and args.diff or "?"
  −
        return format{
  −
            node == "AB" and title_template_simple or title_template,
  −
            map = map,
  −
            node = node,
  −
            diff = diff,
  −
            name = name,
  −
            event_number = event_number,
  −
            map_number = map_number,
  −
            diff_number = diff_number,
  −
        }
  −
        end
  −
end
     −
local NodeInfoInvoke = {}
+
    local nameSuffix = args.name and ": " .. args.name or ""
   −
function NodeInfoInvoke.Table(frame)
+
    return U.format{
    local args = Utils.getTemplateArgs(frame)
+
        (is_simple_node_type and
    local table_string = NodeInfo:Table(args.explicit)
+
            (is_event_diff and templates.event_title_simple or templates.title_simple) or
    if args.explicit.diff then
+
            (is_event_diff and templates.event_title or templates.title)),
         return formatTitle(args.implicit.pagename, args.explicit) .. table_string
+
        map = map,
    else
+
        node = node,
         return table_string
+
        diff = diff,
     end
+
         nameSuffix = nameSuffix,
 +
        world_number = world_number,
 +
        map_number = map_number,
 +
         diff_number = diff_number,
 +
     }
 
end
 
end
   −
return NodeInfoInvoke
+
return {
 +
    Table = function(frame)
 +
        local args = U.getTemplateArgs(frame)
 +
        local world, map = string.match(args.implicit.pagename, "([^/]+)/([^/]+)")
 +
        args.implicit.world = args.explicit.world or world or '??'
 +
        args.implicit.map = args.explicit.map or map or '??'
 +
        local table_string = NodeInfo:Table(args.explicit, args.implicit)
 +
        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
 +
}
cssedit, gkautomate
6,928

edits

Navigation menu