• 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
Second attempt at hiding node xp
Line 11: Line 11:  
     _header_template = [[!#
 
     _header_template = [[!#
 
     !Formation
 
     !Formation
!Base EXP
   
     !${node_type}
 
     !${node_type}
 
     !AD/AP<br>AS/AS+]],
 
     !AD/AP<br>AS/AS+]],
 
     _header_template_simple = [[!#
 
     _header_template_simple = [[!#
 
     !colspan="3"|${node_type}]],
 
     !colspan="3"|${node_type}]],
 +
_header_template_basexp = [[!#
 +
    !Enemy<br>Form.
 +
!Base EXP
 +
    !${node_type}
 +
    !AD/AP<br>AS/AS+]],
 
     _column_cell_templates = {
 
     _column_cell_templates = {
 +
        node = [[| colspan="${colspan}" rowspan="${rowspan}" style="text-align: center; color: ${color}; background-color: ${bg_color};" |${values.node}]],
 +
        formation = [[| style="text-align: center; background-color: ${bg_color}; color: ${color};" |${values.formation}]],
 +
fleet = [[| style="width: 490px; background-color: ${bg_color};" |${values.fleet}]],
 +
        as = [[| style="text-align: center; background-color: ${bg_color}; color: ${color};" |${values.as}]],
 +
    },
 +
_column_cell_templates_basexp = {
 
         node = [[| colspan="${colspan}" rowspan="${rowspan}" style="text-align: center; color: ${color}; background-color: ${bg_color};" |${values.node}]],
 
         node = [[| colspan="${colspan}" rowspan="${rowspan}" style="text-align: center; color: ${color}; background-color: ${bg_color};" |${values.node}]],
 
         formation = [[| style="text-align: center; background-color: ${bg_color}; color: ${color};" |${values.formation}]],
 
         formation = [[| style="text-align: center; background-color: ${bg_color}; color: ${color};" |${values.formation}]],
Line 33: Line 43:  
     _collapser_end = [[</div>]],
 
     _collapser_end = [[</div>]],
 
     _columns = {
 
     _columns = {
 +
        "node",
 +
        "formation",
 +
        "fleet",
 +
        "as",
 +
    },
 +
_columns_basexp = {
 
         "node",
 
         "node",
 
         "formation",
 
         "formation",
Line 88: Line 104:  
     return { values = { formation = row.formation }, color = color }
 
     return { values = { formation = row.formation }, color = color }
 
end
 
end
 
+
 
function NodeInfo:basexp(row)
 
function NodeInfo:basexp(row)
 
return { values = { basexp = row.basexp } }
 
return { values = { basexp = row.basexp } }
Line 136: Line 152:  
     end
 
     end
 
     local air_string = air_denial_string .. "/" .. air_parity_string .. "<br>" .. air_superiority_string .. "/" .. air_supremacy_string
 
     local air_string = air_denial_string .. "/" .. air_parity_string .. "<br>" .. air_superiority_string .. "/" .. air_supremacy_string
    table.insert(self._items, {
+
if self._is_basexp then
        node = node,
+
table.insert(self._items, {
        formation = formation,
+
node = node,
basexp = basexp,
+
formation = formation,
        fleet = fleet,
+
basexp = basexp,
        as = air_string,
+
fleet = fleet,
        tags = tags,
+
as = air_string,
    })
+
tags = tags,
 +
})
 +
else
 +
table.insert(self._items, {
 +
node = node,
 +
formation = formation,
 +
fleet = fleet,
 +
as = air_string,
 +
tags = tags,
 +
})
 +
end
 
end
 
end
 
   
 
   
Line 163: Line 189:  
     local tags = {}
 
     local tags = {}
 
     local resource
 
     local resource
 +
self._is_basexp = false
 +
 
for index, item_key in ipairs(self._args) do
 
for index, item_key in ipairs(self._args) do
 
if item_key == "-" then
 
if item_key == "-" then
Line 180: Line 208:  
    mode = 2
 
    mode = 2
 
elseif mode == 2 then
 
elseif mode == 2 then
    self._node_type = string.lower(string.match(item_key, "(.-)/") or item_key)
+
-- underscores should be exclusive to modifier specification during mode 2
 +
if mw.ustring.find(item_key, '_') then
 +
-- capture modifiers here, then trim them off the node type
 +
if mw.ustring.find(item_key, 'BaseEXP') then
 +
self._is_basexp = true
 +
end
 +
local nodetypesolo = mw.ustring.sub(item_key, 1, mw.ustring.find(item_key, '_') - 1)
 +
self._node_type = string.lower(string.match(nodetypesolo, "(.-)/") or nodetypesolo)
 +
item_key = nodetypesolo;
 +
else
 +
self._node_type = string.lower(string.match(item_key, "(.-)/") or item_key)
 +
end
 
    if mw.ustring.find(string.lower(item_key), "resource") or string.lower(item_key) == "storm" then
 
    if mw.ustring.find(string.lower(item_key), "resource") or string.lower(item_key) == "storm" then
 
        local split = mw.ustring.find(item_key, '/')
 
        local split = mw.ustring.find(item_key, '/')
Line 198: Line 237:  
        while mw.ustring.find(item_key, '/') do
 
        while mw.ustring.find(item_key, '/') do
 
            local split = mw.ustring.find(item_key, '/')
 
            local split = mw.ustring.find(item_key, '/')
            tags[string.lower(mw.ustring.sub(item_key, 1, split - 1))] = true
+
tags[string.lower(mw.ustring.sub(item_key, 1, split - 1))] = true
 
            item_key = mw.ustring.sub(item_key, split + 1)
 
            item_key = mw.ustring.sub(item_key, split + 1)
 
        end
 
        end
Line 220: Line 259:  
        mode = 6
 
        mode = 6
 
    else
 
    else
if mode == 6 and tonumber(item_key) then
+
if mode == 6 and self._is_basexp then
 
basexp = item_key
 
basexp = item_key
 
else
 
else
Line 233: Line 272:  
ship_suffix = ""
 
ship_suffix = ""
 
end
 
end
 
+
 
local ship = EnemyShip(ship_name, ship_suffix)
 
local ship = EnemyShip(ship_name, ship_suffix)
 
local ship_air_power = ship:air_power(tags.raid)
 
local ship_air_power = ship:air_power(tags.raid)
 
+
 
local ship_caption =
 
local ship_caption =
 
(ship:name() or "?")
 
(ship:name() or "?")
Line 242: Line 281:  
.. (ship:armor() or "?") .. " Armor, " .. (ship:hp() or "?") .. " HP"
 
.. (ship:armor() or "?") .. " Armor, " .. (ship:hp() or "?") .. " HP"
 
.. (ship_air_power ~= 0 and ", " .. (ship_air_power or "?") .. " AP" or "")
 
.. (ship_air_power ~= 0 and ", " .. (ship_air_power or "?") .. " AP" or "")
 
+
 
table.insert(fleet, ShipBattleCardKai:get{
 
table.insert(fleet, ShipBattleCardKai:get{
 
ship = ship,
 
ship = ship,
Line 249: Line 288:  
flagship = #fleet == 0
 
flagship = #fleet == 0
 
})
 
})
 
+
 
if ship_air_power then
 
if ship_air_power then
 
as_rating = as_rating + ship_air_power
 
as_rating = as_rating + ship_air_power
Line 274: Line 313:  
row_values = item
 
row_values = item
 
else
 
else
 +
local columnuse = nil
 +
if self._is_basexp then
 +
columnuse = self._columns
 +
else
 +
columnuse = self._columns_basexp
 +
end
 +
 
row_values = {}
 
row_values = {}
for _, column in ipairs(self._columns) do
+
for _, column in ipairs(columnuse) do
 
row_values[column] = self[column](self, item)
 
row_values[column] = self[column](self, item)
 
end
 
end
 
if index > 1 then
 
if index > 1 then
    for _, column in ipairs(self._columns) do
+
    for _, column in ipairs(columnuse) do
 
    for i = index - 1, 1, -1 do
 
    for i = index - 1, 1, -1 do
 
        if column == "node" then
 
        if column == "node" then
Line 297: Line 343:  
        end
 
        end
 
    else
 
    else
for _, column in ipairs(self._columns) do
+
for _, column in ipairs(columnuse) do
 
    row_values[column].rowspan = 1
 
    row_values[column].rowspan = 1
 
    row_values[column].colspan = 1
 
    row_values[column].colspan = 1
Line 326: Line 372:  
function NodeInfo:is_simple_node_type()
 
function NodeInfo:is_simple_node_type()
 
     return self._node_type == 'resource' or self._node_type == 'storm' or self._node_type == 'empty' or self._node_type == 'select'
 
     return self._node_type == 'resource' or self._node_type == 'storm' or self._node_type == 'empty' or self._node_type == 'select'
 +
end
 +
 +
function NodeInfo:is_basexp()
 +
return self._is_basexp
 
end
 
end
 
   
 
   
 
function NodeInfo:create_header()
 
function NodeInfo:create_header()
    local header_string = format{
+
local header_string = nil
        self:is_simple_node_type() and self._header_template_simple or self._header_template,
+
if self:is_simple_node_type() then
        node_type = self:format_node_type()
+
header_string = format{
    }
+
self._header_template_simple,
 +
node_type = self:format_node_type()
 +
}
 +
elseif self:is_basexp() then
 +
header_string = format{
 +
self._header_template_basexp,
 +
node_type = self:format_node_type()
 +
}
 +
else
 +
header_string = format{
 +
self._header_template,
 +
node_type = self:format_node_type()
 +
}
 +
end
 
     self._header = header_string
 
     self._header = header_string
 
     self._header_bottom = header_string
 
     self._header_bottom = header_string
Line 385: Line 448:  
        bg_color = "initial"
 
        bg_color = "initial"
 
    end
 
    end
for _, column in ipairs(self._columns) do
+
if self._is_basexp then
        if row_values[column] then
+
for _, column in ipairs(self._columns_basexp) do
        row_values[column].bg_color = bg_color
+
if row_values[column] then
    end
+
row_values[column].bg_color = bg_color
if row_values[column] then
+
end
table.insert(self._rows, format(self._column_cell_templates[column] or self._cell, row_values[column]))
+
if row_values[column] then
 +
table.insert(self._rows, format(self._column_cell_templates_basexp[column] or self._cell, row_values[column]))
 +
end
 
end
 
end
    end
+
else
 +
for _, column in ipairs(self._columns) do
 +
if row_values[column] then
 +
row_values[column].bg_color = bg_color
 +
end
 +
if row_values[column] then
 +
table.insert(self._rows, format(self._column_cell_templates[column] or self._cell, row_values[column]))
 +
end
 +
end
 +
end
 
     elseif mw.ustring.find(row_values, '/') then
 
     elseif mw.ustring.find(row_values, '/') then
 
             --node/resource/amount/boss
 
             --node/resource/amount/boss

Navigation menu