• 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 4: Line 4:  
-- Remi_Scarlet
 
-- Remi_Scarlet
 
-- I fucking hate lua.
 
-- I fucking hate lua.
 
+
 
-- 10/24/15 Added colorful blue button as per Wsewo's request.
 
-- 10/24/15 Added colorful blue button as per Wsewo's request.
    +
-- 11/22/17 Modified by がか
 +
 
-- checks if data is in the array as a key
 
-- checks if data is in the array as a key
 
+
 
function valid(data, array)
 
function valid(data, array)
 
     local valid = {}
 
     local valid = {}
Line 22: Line 24:  
     end
 
     end
 
end
 
end
 
+
 
-- returns a string representation of a table.
 
-- returns a string representation of a table.
 
-- cannot do recursive tables. Eg, only single dimensional tables will work
 
-- cannot do recursive tables. Eg, only single dimensional tables will work
Line 46: Line 48:  
     return final
 
     return final
 
end
 
end
 
+
 
-- takes a string and returns string with first letter capitalized
 
-- takes a string and returns string with first letter capitalized
 
function capitalize(str)
 
function capitalize(str)
 
     return (str:gsub("^%l", string.upper))
 
     return (str:gsub("^%l", string.upper))
 
end
 
end
 
+
 
-- "info" should be higher level table of information with eg  
 
-- "info" should be higher level table of information with eg  
 
-- {["A"] = {["1"] = {["xp"]="120", ["main_info"] = "ta-class etc"}
 
-- {["A"] = {["1"] = {["xp"]="120", ["main_info"] = "ta-class etc"}
Line 73: Line 75:  
         return size
 
         return size
 
     end
 
     end
 
+
 
+
 
     local numCols = 0
 
     local numCols = 0
 
     for _,bool in pairs(headers) do
 
     for _,bool in pairs(headers) do
 
         if bool then numCols = numCols + 1 end
 
         if bool then numCols = numCols + 1 end
 
     end
 
     end
   
+
 
     -- Will be used to uniquely identify each table with the "button" and the "table content". Normally
 
     -- Will be used to uniquely identify each table with the "button" and the "table content". Normally
 
     -- this would be done with like mw-customtoggle-1-1-enemy or whatnot, but since I can't
 
     -- this would be done with like mw-customtoggle-1-1-enemy or whatnot, but since I can't
Line 85: Line 87:  
     -- rendering to replace the map identifier.
 
     -- rendering to replace the map identifier.
 
     local uniqueID = remiLib.timeHash(info)
 
     local uniqueID = remiLib.timeHash(info)
   
+
 
     local classString = "mw-customtoggle-" .. tostring(uniqueID)
 
     local classString = "mw-customtoggle-" .. tostring(uniqueID)
 
     local idString = "mw-customcollapsible-" .. tostring(uniqueID)
 
     local idString = "mw-customcollapsible-" .. tostring(uniqueID)
   
+
 
     local button = mw.html.create('div')
 
     local button = mw.html.create('div')
 
     button
 
     button
Line 94: Line 96:  
     :addClass("globalbutton")
 
     :addClass("globalbutton")
 
     :wikitext("Show/Hide Nodes and Enemy Encounters")
 
     :wikitext("Show/Hide Nodes and Enemy Encounters")
 
+
 
     local encounterTable = mw.html.create("table")
 
     local encounterTable = mw.html.create("table")
 
     encounterTable
 
     encounterTable
Line 151: Line 153:  
                 nodeName = nodeName .. "<br>" .. values["label"]
 
                 nodeName = nodeName .. "<br>" .. values["label"]
 
             end
 
             end
 
+
 
             firstCol
 
             firstCol
 
                     :wikitext(nodeName)
 
                     :wikitext(nodeName)
Line 173: Line 175:  
             end
 
             end
 
             firstRow:node(mw.html.create("td"):wikitext(text)):css("text-align","center")
 
             firstRow:node(mw.html.create("td"):wikitext(text)):css("text-align","center")
           
+
 
             -- since first row with rowspan is handled differently, just
 
             -- since first row with rowspan is handled differently, just
 
             -- do it separately
 
             -- do it separately
Line 286: Line 288:  
                         row:node(td)
 
                         row:node(td)
 
                     end
 
                     end
 
+
 
                     encounterTable:node(row)
 
                     encounterTable:node(row)
 
                 end
 
                 end
Line 294: Line 296:  
     return tostring(button) .. "\n" .. tostring(encounterTable)
 
     return tostring(button) .. "\n" .. tostring(encounterTable)
 
end
 
end
 
+
 
function splitAndCapitalize(s, split, join)
 
function splitAndCapitalize(s, split, join)
 
     split = split or "_"
 
     split = split or "_"
Line 305: Line 307:  
     return table.concat(result, join)
 
     return table.concat(result, join)
 
end
 
end
 
+
 
-- 1.1. new type pattern parameter: <node>-<pattern number>_<parameter name>
 
-- 1.1. new type pattern parameter: <node>-<pattern number>_<parameter name>
 
-- 1.2. old type pattern parameter: <node letter><pattern number>_<parameter name>
 
-- 1.2. old type pattern parameter: <node letter><pattern number>_<parameter name>
Line 311: Line 313:  
-- 3. map parameters: boss_node, final_form, post_final_form, second_phase
 
-- 3. map parameters: boss_node, final_form, post_final_form, second_phase
 
function parseParameter(param)
 
function parseParameter(param)
     local node, pattern, name = param:match('^(%w+)-(%d)_(.+)$')
+
     local node, pattern, name
 +
    node = param:match('^(%w+)_label$')
 +
    if node then
 +
        return { label = true, node = node }
 +
    end
 +
    node, pattern, name = param:match('^(%w+)-(%d)_(.+)$')
 
     if not node then
 
     if not node then
 
         node, pattern, name = param:match('^(%a)(%d)_(.+)$')
 
         node, pattern, name = param:match('^(%a)(%d)_(.+)$')
Line 317: Line 324:  
     if node then
 
     if node then
 
         return { pattern = true, node = node, pattern = tonumber(pattern), name = name, title = splitAndCapitalize(name) }
 
         return { pattern = true, node = node, pattern = tonumber(pattern), name = name, title = splitAndCapitalize(name) }
    end
  −
    node = param:match('^(%w+)_label$')
  −
    if node then
  −
        return { label = true, node = node }
   
     end
 
     end
 
     return { map = true, name = param }
 
     return { map = true, name = param }
 
end
 
end
 
+
 
function parsePattern(param)
 
function parsePattern(param)
 
     local node, number = param:match('^(%w+)-(%d)$')
 
     local node, number = param:match('^(%w+)-(%d)$')
Line 332: Line 335:  
     return node and { node = node, number = tonumber(number) }
 
     return node and { node = node, number = tonumber(number) }
 
end
 
end
 
+
 
function markNodes(mapEncounterTable, list, name)
 
function markNodes(mapEncounterTable, list, name)
 
     if list then
 
     if list then
Line 344: Line 347:  
     end
 
     end
 
end
 
end
 
+
 
function debugPrint(x, i)
 
function debugPrint(x, i)
 
     i = i or 0
 
     i = i or 0
Line 361: Line 364:  
     end
 
     end
 
end
 
end
 
+
 
function p.encounterTemplate(frame)
 
function p.encounterTemplate(frame)
 
+
 
     local bossNode = frame.args.boss_node
 
     local bossNode = frame.args.boss_node
 
     local usedParams = {}
 
     local usedParams = {}
 
     local mapEncounterTable = {}
 
     local mapEncounterTable = {}
 
+
 
     for param, value in pairs(frame.args) do
 
     for param, value in pairs(frame.args) do
 
         if type(param) == "string" then
 
         if type(param) == "string" then
Line 394: Line 397:  
         end
 
         end
 
     end
 
     end
 
+
 
     markNodes(mapEncounterTable, frame.args.final_form, "isFinalForm")
 
     markNodes(mapEncounterTable, frame.args.final_form, "isFinalForm")
 
     markNodes(mapEncounterTable, frame.args.post_final_form, "isPostFinalForm")
 
     markNodes(mapEncounterTable, frame.args.post_final_form, "isPostFinalForm")
 
     markNodes(mapEncounterTable, frame.args.second_phase, "isSecondPhase")
 
     markNodes(mapEncounterTable, frame.args.second_phase, "isSecondPhase")
 
+
 
     if frame.args.map_xp then
 
     if frame.args.map_xp then
 
         mapEncounterTable.map_xp = frame.args.map_xp
 
         mapEncounterTable.map_xp = frame.args.map_xp
 
         usedParams["Xp"] = true
 
         usedParams["Xp"] = true
 
     end
 
     end
 
+
 
     debugPrint(mapEncounterTable)
 
     debugPrint(mapEncounterTable)
 
     debugPrint(usedParams)
 
     debugPrint(usedParams)
 
     debugPrint(bossNode)
 
     debugPrint(bossNode)
 
+
 
     return p.renderEncounterTable(mapEncounterTable, usedParams, bossNode, true)
 
     return p.renderEncounterTable(mapEncounterTable, usedParams, bossNode, true)
 
+
 
end
 
end
 
+
 
function p.replaceWordWithWikicode(str)
 
function p.replaceWordWithWikicode(str)
 
     local nodeInfoImageTable = {
 
     local nodeInfoImageTable = {
Line 586: Line 589:  
         ["entombed_AA_guardian_princess[%s$]"] = '[[File:Seikan1773Banner.png|2|160px|Entombed Anti-Air Guardian Princess|link=Entombed Anti-Air Guardian Princess]]'
 
         ["entombed_AA_guardian_princess[%s$]"] = '[[File:Seikan1773Banner.png|2|160px|Entombed Anti-Air Guardian Princess|link=Entombed Anti-Air Guardian Princess]]'
 
     }
 
     }
 
+
 
     if str ~= nil then
 
     if str ~= nil then
 
+
 
         local originalString = str
 
         local originalString = str
 
         str = string.lower(str)
 
         str = string.lower(str)
 
+
 
         for vesselName,wikicode in pairs(enemyShipTable) do
 
         for vesselName,wikicode in pairs(enemyShipTable) do
 
             str = str:gsub(vesselName,wikicode)
 
             str = str:gsub(vesselName,wikicode)
Line 620: Line 623:  
     end
 
     end
 
end
 
end
 
+
 
function p.test()
 
function p.test()
 
     return p.encounterTemplate({
 
     return p.encounterTemplate({
Line 645: Line 648:  
     })
 
     })
 
end
 
end
 
+
 
function p.test2()
 
function p.test2()
 
     return p.encounterTemplate({
 
     return p.encounterTemplate({
Line 667: Line 670:  
     })
 
     })
 
end
 
end
 
+
 +
function p.test3()
 +
    return p.encounterTemplate({
 +
        args = {
 +
            ["Z1_label"] = "深海任務部隊 艦載機空襲",
 +
            ["Z1-1_node_info"] = "1",
 +
            ["Z1-1_form"] = "diamond",
 +
            ["Z1-1_xp"] = "1",
 +
            ["Z1-1_enemy_air_power"] = "151",
 +
            ["Z1-2_node_info"] = "2",
 +
            ["Z1-2_form"] = "diamond",
 +
            ["Z1-2_xp"] = "1",
 +
            ["Z1-2_enemy_air_power"] = "226",
 +
            ["Z1-3_node_info"] = "3",
 +
            ["Z1-3_form"] = "diamond",
 +
            ["Z1-3_xp"] = "1",
 +
            ["Z1-3_enemy_air_power"] = "123",
 +
            "",
 +
            ["final_form"] = "Z1-3",
 +
            ["boss_node"] = "Z1",
 +
        }
 +
    })
 +
end
 +
 
return p
 
return p
3,663

edits

Navigation menu