Line 2: |
Line 2: |
| | | |
| local Ship = require('Module:Ship') | | local Ship = require('Module:Ship') |
| + | local ShipBattleCardKai = require('Module:ShipBattleCardKai') |
| local ShipCardKai = require('Module:ShipCardKai') | | local ShipCardKai = require('Module:ShipCardKai') |
| local Equipment = require('Module:Equipment') | | local Equipment = require('Module:Equipment') |
| | | |
| local Formatting = require('Module:Formatting') | | local Formatting = require('Module:Formatting') |
− | local format = require('Module:StringInterpolation').format | + | local format = require('Module:Core').format |
| | | |
| local Functions = require('Module:NanaminFunctions') | | local Functions = require('Module:NanaminFunctions') |
Line 18: |
Line 19: |
| _collapse_div_end = [[</div>]], | | _collapse_div_end = [[</div>]], |
| | | |
− | _table_start = [[{|]], | + | _table_start = [[<table class="nanaminfleetkai">]], |
− | _table_end = [[|}]], | + | _table_end = [[</table>]], |
− | _row_starter = "|-", | + | _row_starter = [[</tr><tr>]], |
− | _added_cell_template = [[| colspan="6" style="background: ${bg_color}; text-align: center; font-weight: bold;" |${content}]], | + | _added_cell_template = [[<td colspan="6" style="background-color:${bg_color};">'''${content}'''</td>]], |
− | _ship_template = [[| rowspan="4" style="background: ${bg_color};" |${ship_card}]], | + | _ship_template = [[<td rowspan="4">${ship_card}</td>]], |
− | _ship_text_template = [[| rowspan="4" style="background: ${bg_color}; text-align: center; width: 165px;" |${ship_name}]],
| + | _equip_template = [[<td>${equip_icon}</td><td style="${style}">${equip_link}</td>]], |
− | _equip_template = [[| style="background-color: ${icon_bg_color}; width: 15px;" |${equip_icon} | + | _blank_entry = [[<td style="display:none;"></td>]], |
− | | style="background-color: ${equip_bg_color}; width: 175px; text-align: center;" |${equip_link}]],
| |
− | _equip_text_template = [[| style="background-color: ${icon_bg_color}; width: 15px; text-align: center;" | - | |
− | | style="background-color: ${equip_bg_color}; width: 175px; text-align: center;" |${equip_link}]],
| |
| | | |
| _header_bg = "#98D2F0", | | _header_bg = "#98D2F0", |
− | _ship_card_bg = "transparent",
| |
− | _equip_icon_bg = "#8DCDEE",
| |
− | _equip_bg = "#E4F3FB",
| |
| _equip_locked_bg = "#CDDBE2", | | _equip_locked_bg = "#CDDBE2", |
| _extra_cells_bg = "#98D2F0", | | _extra_cells_bg = "#98D2F0", |
Line 58: |
Line 53: |
| math.randomseed(os.time()) | | math.randomseed(os.time()) |
| math.random(); math.random(); math.random() | | math.random(); math.random(); math.random() |
− | self._id = self._args["route"]:gsub("[^%w]", "") .. self._args["hq"] .. tostring(math.random(1000000,9999999)) | + | self._id = self._args["route"]:gsub("[^%w]", "") .. (self._args["hq"] or "0") .. tostring(math.random(1000000,9999999)) |
| end | | end |
| | | |
Line 110: |
Line 105: |
| function NanaminFleetKai:insert_ship_row(ship) | | function NanaminFleetKai:insert_ship_row(ship) |
| local ship_card | | local ship_card |
− | if ship and ship:name() then | + | if self._args["text_only"] then |
− | ship_card = ShipCardKai:card{ship = ship, size = self._size, link = ship:link(), caption = ship:name()} | + | ship_card = ship and ship:name() or "Invalid Ship Name" |
| + | elseif ship and ship:name() then |
| + | ship_card = ShipCardKai:get{ship = ship, size = self._size, link = ship:link(), caption = ship:name()} |
| else | | else |
| ship_card = Formatting:format_image{self._blank, size = self._size} | | ship_card = Formatting:format_image{self._blank, size = self._size} |
| end | | end |
− | if self._args["text_only"] then | + | table.insert(self._rows, format{self._ship_template, ship_card = ship_card}) |
− | table.insert(self._rows, format{self._ship_text_template,
| |
− | bg_color = self._equip_bg,
| |
− | ship_name = ship:name() or "No Name Given",
| |
− | })
| |
− | else
| |
− | table.insert(self._rows, format{self._ship_template,
| |
− | bg_color = self._ship_card_bg,
| |
− | ship_card = ship_card,
| |
− | })
| |
− | end
| |
| end | | end |
| | | |
| function NanaminFleetKai:insert_equip_row(ship, entry, slot) | | function NanaminFleetKai:insert_equip_row(ship, entry, slot) |
| local slots = ship and ship:slots() or 0 | | local slots = ship and ship:slots() or 0 |
− | local equip_icon, equip_bg_color, equip_link | + | local equip_icon, equip_link, style |
| if slot > slots then | | if slot > slots then |
− | equip_icon = ""
| |
− | equip_bg_color = self._equip_locked_bg
| |
| equip_link = "- Locked -" | | equip_link = "- Locked -" |
| + | style = "background-color:" .. self._equip_locked_bg .. ";" |
| elseif entry[slot + 3] == nil then | | elseif entry[slot + 3] == nil then |
− | equip_icon = ""
| |
− | equip_bg_color = self._equip_locked_bg
| |
| equip_link = "- Unequipped -" | | equip_link = "- Unequipped -" |
| + | style = "background-color:" .. self._equip_locked_bg .. ";" |
| else | | else |
| local equip = Equipment(Functions.process_legacy_name(entry[slot + 3])) | | local equip = Equipment(Functions.process_legacy_name(entry[slot + 3])) |
| self:process_equipment(equip, select(2, ship:slot(slot))) | | self:process_equipment(equip, select(2, ship:slot(slot))) |
− | equip_icon = Formatting:format_image{ Formatting:format_equipment_icon(equip:icon()), size = "22x22px", link = "" } | + | if self._args["text_only"] then |
− | equip_bg_color = self._equip_bg
| + | equip_link = Functions.shorten_name("", equip:name()) |
− | equip_link = Formatting:format_link(equip:link())
| + | else |
− | end
| + | equip_icon = Formatting:format_image{ Formatting:format_equipment_icon(equip:icon()), size = "22x22px", link = "" } |
− | if self._args["text_only"] then
| + | equip_link = Formatting:format_link(Functions.shorten_name(equip:link())) |
− | table.insert(self._rows, format{self._equip_text_template,
| + | end |
− | icon_bg_color = self._equip_icon_bg,
| |
− | equip_bg_color = equip_bg_color,
| |
− | equip_link = equip_link,
| |
− | })
| |
− | else
| |
− | table.insert(self._rows, format{self._equip_template, | |
− | icon_bg_color = self._equip_icon_bg,
| |
− | equip_icon = equip_icon,
| |
− | equip_bg_color = equip_bg_color,
| |
− | equip_link = equip_link,
| |
− | })
| |
| end | | end |
| + | table.insert(self._rows, format{self._equip_template, |
| + | equip_icon = equip_icon or "", |
| + | style = style or "", |
| + | equip_link = equip_link, |
| + | }) |
| end | | end |
| | | |
Line 170: |
Line 149: |
| function NanaminFleetKai:build_table() | | function NanaminFleetKai:build_table() |
| local i = 1 | | local i = 1 |
− | while i < #self._items do | + | while i <= #self._items do |
| if type(self._items[i]) == "string" then | | if type(self._items[i]) == "string" then |
| self:add_header(self._items[i]) | | self:add_header(self._items[i]) |
Line 196: |
Line 175: |
| for j = 2, 4 do | | for j = 2, 4 do |
| table.insert(self._rows, self._row_starter) | | table.insert(self._rows, self._row_starter) |
| + | table.insert(self._rows, self._blank_entry) |
| self:insert_equip_row(ship1, self._items[i], j) | | self:insert_equip_row(ship1, self._items[i], j) |
| if self._items[i + 1] then | | if self._items[i + 1] then |
| + | table.insert(self._rows, self._blank_entry) |
| self:insert_equip_row(ship2, self._items[i + 1], j) | | self:insert_equip_row(ship2, self._items[i + 1], j) |
| else | | else |
| + | table.insert(self._rows, self._blank_entry) |
| self:insert_equip_row(nil, nil, 1) | | self:insert_equip_row(nil, nil, 1) |
| end | | end |
Line 215: |
Line 197: |
| function NanaminFleetKai:add_extras() | | function NanaminFleetKai:add_extras() |
| local elos = string.format("%.2f", self._elos - (self._hq_lvl * 0.61)) | | local elos = string.format("%.2f", self._elos - (self._hq_lvl * 0.61)) |
| + | if not self._args["hq"] then elos = elos .. " #ERROR:MissingHQ" end |
| local content = "Effective Line of Sight: " .. elos .. " // Fighter Power: " .. tostring(self._fighter_power) | | local content = "Effective Line of Sight: " .. elos .. " // Fighter Power: " .. tostring(self._fighter_power) |
| self:insert_extra(content) | | self:insert_extra(content) |
Line 230: |
Line 213: |
| for i = 1, #drops do | | for i = 1, #drops do |
| local ship = Ship(drops[i], "") | | local ship = Ship(drops[i], "") |
− | local card = ShipCardKai:battle_card{ship = ship, link = ship:link(), caption = ship:name()} | + | local card = ShipBattleCardKai:get{ship = ship, link = ship:link(), caption = ship:name()} |
| if self._args["text_only"] then | | if self._args["text_only"] then |
| card = ship:name() | | card = ship:name() |
Line 253: |
Line 236: |
| table.insert(self._rows, format{self._collapse_div_start, id = self._id}) | | table.insert(self._rows, format{self._collapse_div_start, id = self._id}) |
| table.insert(self._rows, self._table_start) | | table.insert(self._rows, self._table_start) |
| + | table.insert(self._rows, "<tr>") |
| self:build_table() | | self:build_table() |
| self:add_extras() | | self:add_extras() |
| + | table.insert(self._rows, "</tr>") |
| table.insert(self._rows, self._table_end) | | table.insert(self._rows, self._table_end) |
| table.insert(self._rows, self._collapse_div_end) | | table.insert(self._rows, self._collapse_div_end) |