- 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:EnemyShipListKai"
Jump to navigation
Jump to search
com>Ckwng |
com>Ckwng |
||
Line 1: | Line 1: | ||
local BaseTable = require('Module:BaseTable') | local BaseTable = require('Module:BaseTable') | ||
− | |||
local EnemyShip = require('Module:EnemyShip') | local EnemyShip = require('Module:EnemyShip') | ||
local Formatting = require('Module:Formatting') | local Formatting = require('Module:Formatting') | ||
Line 19: | Line 18: | ||
! style="width: 30px; text-align: center; vertical-align: middle; background-color: #F2E279;" | ${armor} | ! style="width: 30px; text-align: center; vertical-align: middle; background-color: #F2E279;" | ${armor} | ||
! style="width: 30px; text-align: center; vertical-align: middle; background-color: violet;" | ${evasion} | ! style="width: 30px; text-align: center; vertical-align: middle; background-color: violet;" | ${evasion} | ||
− | ! style=" | + | ! style="text-align: center; vertical-align: middle;" | Equipment |
! style="text-align:left;" | Notes]], | ! style="text-align:left;" | Notes]], | ||
_columns = { | _columns = { | ||
Line 36: | Line 35: | ||
}, | }, | ||
_column_cell_templates = { | _column_cell_templates = { | ||
− | card = [[| style="text-align: ${text_align}; padding:5px 5px 5px 5px; background-color: ${bg_color}; | + | card = [[| style="text-align: ${text_align}; padding:5px 5px 5px 5px; background-color: ${bg_color};" |${value}]], |
}, | }, | ||
_cell = [[| style="text-align: ${text_align}; padding:5px 5px 5px 5px;" |${value}]], | _cell = [[| style="text-align: ${text_align}; padding:5px 5px 5px 5px;" |${value}]], | ||
Line 45: | Line 44: | ||
function EnemyShipListKai:name(ship) | function EnemyShipListKai:name(ship) | ||
− | local | + | local name = ship:name() |
− | local value = { | + | local value = {name} |
local japanese_name = ship:japanese_name() | local japanese_name = ship:japanese_name() | ||
− | if japanese_name and | + | if japanese_name and name ~= japanese_name then |
− | table.insert(value, Formatting:format_stat( | + | table.insert(value, Formatting:format_stat(japanese_name)) |
end | end | ||
return {value = Formatting:id_span(tostring(ship:api_id() or mw.ustring.lower(mw.ustring.gsub(ship:name(), "%s+"))), self._fragment_prefix, table.concat(value, "<br />")), text_align = self._start_align} | return {value = Formatting:id_span(tostring(ship:api_id() or mw.ustring.lower(mw.ustring.gsub(ship:name(), "%s+"))), self._fragment_prefix, table.concat(value, "<br />")), text_align = self._start_align} | ||
Line 56: | Line 55: | ||
function EnemyShipListKai:card(ship) | function EnemyShipListKai:card(ship) | ||
local value | local value | ||
− | local bg_color | + | local bg_color = Formatting:format_ship_back(ship:back()) |
if ship == false then | if ship == false then | ||
value = Formatting:format_image{self._blank, size = self._size} | value = Formatting:format_image{self._blank, size = self._size} | ||
Line 62: | Line 61: | ||
value = ShipBattleCardKai:get{ship = ship, size = self._size, link = ship:link(), caption = ship:name()} | value = ShipBattleCardKai:get{ship = ship, size = self._size, link = ship:link(), caption = ship:name()} | ||
end | end | ||
− | return {value = value, bg_color = bg_color | + | return {value = value, bg_color = bg_color, text_align = self._center_align} |
end | end | ||
Line 117: | Line 116: | ||
table.insert(icons, icon) | table.insert(icons, icon) | ||
end | end | ||
− | return {value = table.concat(icons | + | return {value = table.concat(icons), text_align = self._start_align} |
end | end | ||
Revision as of 08:23, 10 February 2016
Documentation for this module may be created at Module:EnemyShipListKai/doc
local BaseTable = require('Module:BaseTable')
local EnemyShip = require('Module:EnemyShip')
local Formatting = require('Module:Formatting')
local ShipBattleCardKai = require('Module:ShipBattleCardKai')
local StatIcons = require('Module:StatIcons')
local format = require('Module:StringInterpolation').format
local EnemyShipListKai = BaseTable{
_header_template = [[! style="min-width: 180px;" | Card
! style="min-width: 75px;" | Name
! Type
! style="width: 30px; text-align: center; vertical-align: middle; background-color: pink;" | ${hp}
! style="width: 30px; text-align: center; vertical-align: middle; background-color: lightcoral;" | ${firepower}
! style="width: 30px; text-align: center; vertical-align: middle; background-color: lightskyblue;" | ${torpedo}
! style="width: 30px; text-align: center; vertical-align: middle; background-color: sandybrown;" | ${aa}
! style="width: 30px; text-align: center; vertical-align: middle; background-color: #9C8FEE;" | ${asw}
! style="width: 30px; text-align: center; vertical-align: middle; background-color: #F2E279;" | ${armor}
! style="width: 30px; text-align: center; vertical-align: middle; background-color: violet;" | ${evasion}
! style="text-align: center; vertical-align: middle;" | Equipment
! style="text-align:left;" | Notes]],
_columns = {
"card",
"name",
"type",
"hp",
"firepower",
"torpedo",
"aa",
"asw",
"armor",
"evasion",
"equipment",
"notes",
},
_column_cell_templates = {
card = [[| style="text-align: ${text_align}; padding:5px 5px 5px 5px; background-color: ${bg_color};" |${value}]],
},
_cell = [[| style="text-align: ${text_align}; padding:5px 5px 5px 5px;" |${value}]],
_item_class = function(item_key) return EnemyShip(item_key) end,
_fragment_prefix = "enemyshiplistkai",
_icon_caption_template = "${equipment} ${equipment_type}",
}
function EnemyShipListKai:name(ship)
local name = ship:name()
local value = {name}
local japanese_name = ship:japanese_name()
if japanese_name and name ~= japanese_name then
table.insert(value, Formatting:format_stat(japanese_name))
end
return {value = Formatting:id_span(tostring(ship:api_id() or mw.ustring.lower(mw.ustring.gsub(ship:name(), "%s+"))), self._fragment_prefix, table.concat(value, "<br />")), text_align = self._start_align}
end
function EnemyShipListKai:card(ship)
local value
local bg_color = Formatting:format_ship_back(ship:back())
if ship == false then
value = Formatting:format_image{self._blank, size = self._size}
else
value = ShipBattleCardKai:get{ship = ship, size = self._size, link = ship:link(), caption = ship:name()}
end
return {value = value, bg_color = bg_color, text_align = self._center_align}
end
function EnemyShipListKai:type(ship)
return {value = Formatting:format_ship_code(ship:type()), text_align = self._start_align}
end
function EnemyShipListKai:firepower(ship)
return {value = Formatting:format_stat(ship:firepower()), text_align = self._center_align}
end
function EnemyShipListKai:torpedo(ship)
return {value = Formatting:format_stat(ship:torpedo()), text_align = self._center_align}
end
function EnemyShipListKai:aa(ship)
return {value = Formatting:format_stat(ship:aa()), text_align = self._center_align}
end
function EnemyShipListKai:asw(ship)
return {value = Formatting:format_stat(ship:asw()), text_align = self._center_align}
end
function EnemyShipListKai:hp(ship)
return {value = Formatting:format_stat(ship:hp()), text_align = self._center_align}
end
function EnemyShipListKai:armor(ship)
return {value = Formatting:format_stat(ship:armor()), text_align = self._center_align}
end
function EnemyShipListKai:evasion(ship)
return {value = Formatting:format_stat(ship:evasion()), text_align = self._center_align}
end
function EnemyShipListKai:equipment(ship)
local icons = {}
for i = 1, ship:slots_length() do
local equipment, size, estimation, icon, equipment_type, equipment_link = ship:slot(i)
if equipment then
icon = equipment:icon()
equipment_type = equipment:type()
equipment_link, equipment = Formatting:format_link(equipment:link())
equipment = equipment or equipment_link
else
icon = disabled and "" or false
equipment = equipment == false and (disabled and "- Locked -" or "- Unequipped -") or Formatting:format_stat(equipment)
equipment_link = false
equipment_type = false
end
if icon ~= "" then
icon = Formatting:format_image{Formatting:format_equipment_icon(icon), link = equipment_link, caption = format{self._icon_caption_template, equipment_type = Formatting:format_equipment_type(equipment_type), equipment = equipment}}
end
table.insert(icons, icon)
end
return {value = table.concat(icons), text_align = self._start_align}
end
function EnemyShipListKai:notes(ship)
local note = self._notes[ship]
if note then
return {value = note.note or "", text_align = self._start_align}
end
return {value = "", text_align = self._start_align}
end
EnemyShipListKai.process_item_key = EnemyShip.process_item_key
EnemyShipListKai.build_rows = EnemyShipListKai.build_rows_breaks_as_empty_rows
function EnemyShipListKai:create_header()
local header_icons = {
firepower = StatIcons.firepower,
torpedo = StatIcons.torpedo,
aa = StatIcons.aa,
asw = StatIcons.asw,
hp = StatIcons.hp,
armor = StatIcons.armor,
evasion = StatIcons.evasion,
}
for key, value in pairs(header_icons) do
header_icons[key] = Formatting:format_image{value, caption = Formatting:format_stat_name(key)}
end
self._header = format(self._header_template, header_icons)
end
function EnemyShipListKai.Invoke(frame)
local args = require('Module:GetArgs'){frame = frame:getParent()}
return EnemyShipListKai:Table(args)
end
return EnemyShipListKai