• 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:NanaminFleet"

From Kancolle Wiki
Jump to navigation Jump to search
m
m
Line 13: Line 13:
 
     _column_cell_templates = {
 
     _column_cell_templates = {
 
         ship = [[| rowspan="4" style="background: transparent;" |${values.ship_card}]],
 
         ship = [[| rowspan="4" style="background: transparent;" |${values.ship_card}]],
         equips = [[| style="background: whitesmoke;" |${values.equips}]],
+
         equips = [[| style="background: whitesmoke;" |${values.equips1}
 +
        | style="background: whitesmoke;" |${values.equips2}
 +
        | style="background: whitesmoke;" |${values.equips3}
 +
        | style="background: whitesmoke;" |${values.equips4}]],
 
         ship2 = [[| rowspan="4" style="background: transparent;" |${values.ship_card}]],
 
         ship2 = [[| rowspan="4" style="background: transparent;" |${values.ship_card}]],
         equips2 = [[| style="background: whitesmoke;" |${values.equips}]]
+
         equips2 = [[| style="background: whitesmoke;" |${values.equips1}
 +
        | style="background: whitesmoke;" |${values.equips2}
 +
        | style="background: whitesmoke;" |${values.equips3}
 +
        | style="background: whitesmoke;" |${values.equips4}]]
 
     },
 
     },
 
     _columns = {
 
     _columns = {
Line 47: Line 53:
  
 
function NanaminFleet:equips(row)
 
function NanaminFleet:equips(row)
     local value = "Lol|-|Lol2|-|Lol3|-|Lol4"
+
     local value1 = "Lol"
     return {values = {equips = value}, bg_color = self._equip_bg, text_align = self._center_align}
+
    local value2 = "Lol2"
 +
    local value3 = "Lol3"
 +
    local value4 = "Lol4"
 +
     return {values = {equips1 = value1, equips2 = value2, equips3 = value3, equips4 = value4}, bg_color = self._equip_bg, text_align = self._center_align}
 
end
 
end
  

Revision as of 00:26, 9 April 2015

Documentation for this module may be created at Module:NanaminFleet/doc

local BaseTable = require('Module:BaseTable')
local Ship = require('Module:Ship')
local ShipCardKai = require('Module:ShipCardKai')
local Equipment = require('Module:Equipment')
local Formatting = require('Module:Formatting')
local format = require('Module:StringInterpolation').format

local NanaminFleet = BaseTable({
    _item_class = Ship,
    _equip_class = Equipment,
    _equip_bg = "whitesmoke",
    _header_template = nil,
    _column_cell_templates = {
        ship = [[| rowspan="4" style="background: transparent;" |${values.ship_card}]],
        equips = [[| style="background: whitesmoke;" |${values.equips1}
        | style="background: whitesmoke;" |${values.equips2}
        | style="background: whitesmoke;" |${values.equips3}
        | style="background: whitesmoke;" |${values.equips4}]],
        ship2 = [[| rowspan="4" style="background: transparent;" |${values.ship_card}]],
        equips2 = [[| style="background: whitesmoke;" |${values.equips1}
        | style="background: whitesmoke;" |${values.equips2}
        | style="background: whitesmoke;" |${values.equips3}
        | style="background: whitesmoke;" |${values.equips4}]]
    },
    _columns = {
        "ship",
        "equips",
        "ship2",
        "equips2"
    },
    _blank = "blank.png",
    _default_size = ShipCardKai._card_size
})

function NanaminFleet:create_table_prep()
    self._size = self._args.image_size or self._default_size
end

function NanaminFleet:ship(row)
    local value
    if row[1] == false then
        value = Formatting:format_image{self._blank, size = self._size}
    else
        value = ShipCardKai:card{ship = row[1], size = self._size, link = row[1]:link(), caption = row[1]:name()}
    end
    return {values = {ship_card = value}, bg_color = self._transparent, text_align = self._center_align}
end

function NanaminFleet:ship2(row)
    row = {row[3], row[4]}
    return self:ship(row)
end

function NanaminFleet:equips(row)
    local value1 = "Lol"
    local value2 = "Lol2"
    local value3 = "Lol3"
    local value4 = "Lol4"
    return {values = {equips1 = value1, equips2 = value2, equips3 = value3, equips4 = value4}, bg_color = self._equip_bg, text_align = self._center_align}
end

function NanaminFleet:equips2(row)
    return self:equips(row)
end

function NanaminFleet:process_item_key(item_key)
    local split = mw.ustring.find(item_key, '/')
    if split == nil then
        return item_key
    else
        ship_name = mw.ustring.sub(item_key, 1, split - 1)
        ship_suffix = mw.ustring.sub(item_key, split + 1, -1)
        if ship_suffix == "Regular" then
            ship_suffix = nil
        end
        return ship_name, ship_suffix
    end
end

function NanaminFleet:create_items()
    local count = 0
    local row = {}
    for index, item_key in ipairs(self._args) do
        count = count + 1
        local item
        if item_key == "-" then
            item = false
        else
            if mw.ustring.find(item_key, '/') then
                item = self._item_class(self:process_item_key(item_key))
            else
                item = self._equip_class(self:process_item_key(item_key))
            end
        end
        if count % 5 == 1 or count % 5 == 2 then
            table.insert(row, item)
        end
        if count % 10 == 0 then
            table.insert(self._items, row)
            row = {}
        end
    end
end

function NanaminFleet:create_data_rows()
    for _, item in ipairs(self._items) do
        local row_values = {}
        for _, column in ipairs(self._columns) do
            row_values[column] = self[column](self, item)
            row_values[column].rowspan = item.class ~= nil and 4 or 1
            row_values[column].colspan = 1
        end
        table.insert(self._data_rows, row_values)
    end
end

function NanaminFleet:create_header()
    self._header = format(self._header_template, {})
end

return NanaminFleet