- 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:EquipmentListKai"
Jump to navigation
Jump to search
com>Ckwng (Fix missing header cell) |
|||
(75 intermediate revisions by 8 users not shown) | |||
Line 1: | Line 1: | ||
− | local | + | local BaseTable = require('Module:BaseTable') |
local Equipment = require('Module:Equipment') | local Equipment = require('Module:Equipment') | ||
local Formatting = require('Module:Formatting') | local Formatting = require('Module:Formatting') | ||
+ | local StatIcons = require('Module:Data/Asset') | ||
+ | local EquipmentLink = require('Module:EquipmentLink') | ||
− | local format = require('Module: | + | local format = require('Module:Core').format |
− | local EquipmentListKai = | + | -- [[Category:Todo]]: hardcoded iconsClasses |
+ | local EquipmentListKai = BaseTable{ | ||
+ | _item_class = Equipment, | ||
_table_start = [[{| class="wikitable"]], | _table_start = [[{| class="wikitable"]], | ||
− | + | _header_template = [=[! No. | |
− | _header_template = [[!No. | + | ! Rarity |
− | !Rarity | + | ! style="width:240px" | Name |
− | !Name | + | ! style="width:120px" | Equipment Type |
− | !Type | ||
${stat_columns} | ${stat_columns} | ||
− | ! | + | ! style="width:120px" | Refittable Types |
− | !Craftable | + | ! [[File:Icon_Dev.png|20px|Craftable|link=Development]] |
− | ! style="white-space:nowrap | + | ! [[File:Icon_Imp.png|20px|Improvable|link=Improvement]] |
− | + | ! style="white-space:nowrap" | Notes]=], | |
_column_cell_templates = { | _column_cell_templates = { | ||
− | + | id = [[| style="${text_align};background-color:${bg_color}" |${values.value}]], | |
− | + | rarity = [[| rowspan="${rowspan}"style="${text_align};background-color:${bg_color}" |${values.value}]], | |
− | + | name = [[| style="${text_align};background-color:${bg_color}" |${values.name}<br />${values.icon} ${values.japanese_name}]], | |
− | + | equipment_type = [[| rowspan="${rowspan}" style="${text_align};background-color:${bg_color}" |${values.value}]], | |
− | + | stats = [[| style="${text_align};background-color:${bg_color}" |${values.value}]], | |
− | + | compatibility = [[| rowspan="${rowspan}"style="${text_align};background-color:${bg_color}" |${values.value}]], | |
− | + | buildable = [[| rowspan="${rowspan}"style="${text_align};background-color:${bg_color}" |${values.value}]], | |
− | + | improvable = [[| rowspan="${rowspan}" style="${text_align};background-color:${bg_color}" |${values.value}]], | |
− | + | notes = [[| class="${classes}" rowspan="${rowspan}" style="${text_align};background-color:${bg_color}" |${values.value}]] | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
}, | }, | ||
_columns = { | _columns = { | ||
"id", | "id", | ||
− | " | + | "rarity", |
"name", | "name", | ||
"equipment_type", | "equipment_type", | ||
Line 59: | Line 39: | ||
"compatibility", | "compatibility", | ||
"buildable", | "buildable", | ||
+ | "improvable", | ||
"notes", | "notes", | ||
}, | }, | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
_stats_column_label = "Stats", | _stats_column_label = "Stats", | ||
− | |||
} | } | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
function EquipmentListKai:id(equipment) | function EquipmentListKai:id(equipment) | ||
− | return {values = {value = Formatting:format_stat(equipment:id())}, bg_color = self._transparent} | + | return {values = {value = Formatting:format_stat(equipment:id())}, bg_color = self._transparent, text_align = ""} |
end | end | ||
− | function EquipmentListKai: | + | function EquipmentListKai:rarity(equipment) |
− | return {values = {value = Formatting:format_stars(equipment:stars())}, bg_color = self._transparent} | + | return {values = {value = Formatting:tooltip(Formatting:format_stars(equipment:stars()), Formatting:format_equipment_rarity(equipment:rarity()), nil, Formatting._display_inline_block_css)}, bg_color = self._transparent, text_align = ""} |
end | end | ||
function EquipmentListKai:name(equipment) | function EquipmentListKai:name(equipment) | ||
− | return {values = {name = | + | return {values = { |
+ | name = EquipmentLink.format(nil, { equipment:name() }), | ||
icon = Formatting:format_image{Formatting:format_equipment_icon(equipment:icon())}, | icon = Formatting:format_image{Formatting:format_equipment_icon(equipment:icon())}, | ||
japanese_name = Formatting:format_stat(equipment:japanese_name()) | japanese_name = Formatting:format_stat(equipment:japanese_name()) | ||
}, | }, | ||
bg_color = self._transparent, | bg_color = self._transparent, | ||
+ | text_align = "text-align: " .. self._start_align, | ||
} | } | ||
end | end | ||
function EquipmentListKai:equipment_type(equipment) | function EquipmentListKai:equipment_type(equipment) | ||
− | + | return {values = {value = Formatting:format_equipment_type(equipment:type())}, bg_color = self._transparent, text_align = ""} | |
end | end | ||
function EquipmentListKai:stats(equipment) | function EquipmentListKai:stats(equipment) | ||
− | return {values = {value = Formatting: | + | local stats = { |
+ | firepower = equipment:firepower(), | ||
+ | bombing = equipment:bombing(), | ||
+ | torpedo = equipment:torpedo(), | ||
+ | aa = equipment:aa(), | ||
+ | armor = equipment:armor(), | ||
+ | asw = equipment:asw(), | ||
+ | shelling_accuracy = equipment:shelling_accuracy(), | ||
+ | torpedo_accuracy = equipment:torpedo_accuracy(), | ||
+ | evasion = equipment:evasion(), | ||
+ | los = equipment:los(), | ||
+ | speed = Formatting:format_speed(equipment:speed()), | ||
+ | luck = equipment:luck(), | ||
+ | range = Formatting:format_range(equipment:range()), | ||
+ | special = false, | ||
+ | } | ||
+ | return {values = {value = equipment:type() == 48 and Formatting:format_stat_bonuses_interceptor(stats, "<br />") or Formatting:format_stat_bonuses(stats, "<br />"), | ||
+ | }, | ||
+ | bg_color = self._transparent, | ||
+ | text_align = "text-align: " .. self._start_align, | ||
+ | } | ||
end | end | ||
function EquipmentListKai:compatibility(equipment) | function EquipmentListKai:compatibility(equipment) | ||
− | return {values = {value = | + | local value = Formatting:format_ship_compatibility(equipment:equippable()) |
+ | if equipment:is_lbas_plane() then | ||
+ | value = value == "" and "LBAS" or value .. "; LBAS" | ||
+ | end | ||
+ | return {values = {value = value}, bg_color = self._transparent, text_align = "text-align: " .. self._start_align} | ||
end | end | ||
function EquipmentListKai:buildable(equipment) | function EquipmentListKai:buildable(equipment) | ||
− | return {values = {value = Formatting: | + | return {values = {value = Formatting:format_boolean_short(equipment:buildable())}, bg_color = self._transparent, text_align = ""} |
end | end | ||
− | function EquipmentListKai: | + | function EquipmentListKai:improvable(equipment) |
− | return {values = {value = | + | return {values = {value = Formatting:format_boolean_short(equipment:improvable())}, bg_color = self._transparent, text_align = ""} |
end | end | ||
− | function EquipmentListKai: | + | function EquipmentListKai:notes(equipment) |
− | + | local note = self._notes[equipment] | |
− | + | if note then | |
− | + | return {values = {value = note.note or ""}, bg_color = self._transparent, text_align = "text-align: " .. self._start_align} | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | if | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
end | end | ||
− | + | return {values = {value = ""}, bg_color = self._transparent, text_align = "text-align: " .. self._start_align} | |
− | |||
− | |||
− | |||
end | end | ||
− | function EquipmentListKai | + | function EquipmentListKai:create_header() |
− | + | self._header = format{self._header_template, stat_columns = format{self._column_header_cell_template, value = self._stats_column_label}} | |
− | |||
− | |||
end | end | ||
return EquipmentListKai | return EquipmentListKai |
Latest revision as of 20:11, 6 April 2024
Documentation for this module may be created at Module:EquipmentListKai/doc
local BaseTable = require('Module:BaseTable')
local Equipment = require('Module:Equipment')
local Formatting = require('Module:Formatting')
local StatIcons = require('Module:Data/Asset')
local EquipmentLink = require('Module:EquipmentLink')
local format = require('Module:Core').format
-- [[Category:Todo]]: hardcoded iconsClasses
local EquipmentListKai = BaseTable{
_item_class = Equipment,
_table_start = [[{| class="wikitable"]],
_header_template = [=[! No.
! Rarity
! style="width:240px" | Name
! style="width:120px" | Equipment Type
${stat_columns}
! style="width:120px" | Refittable Types
! [[File:Icon_Dev.png|20px|Craftable|link=Development]]
! [[File:Icon_Imp.png|20px|Improvable|link=Improvement]]
! style="white-space:nowrap" | Notes]=],
_column_cell_templates = {
id = [[| style="${text_align};background-color:${bg_color}" |${values.value}]],
rarity = [[| rowspan="${rowspan}"style="${text_align};background-color:${bg_color}" |${values.value}]],
name = [[| style="${text_align};background-color:${bg_color}" |${values.name}<br />${values.icon} ${values.japanese_name}]],
equipment_type = [[| rowspan="${rowspan}" style="${text_align};background-color:${bg_color}" |${values.value}]],
stats = [[| style="${text_align};background-color:${bg_color}" |${values.value}]],
compatibility = [[| rowspan="${rowspan}"style="${text_align};background-color:${bg_color}" |${values.value}]],
buildable = [[| rowspan="${rowspan}"style="${text_align};background-color:${bg_color}" |${values.value}]],
improvable = [[| rowspan="${rowspan}" style="${text_align};background-color:${bg_color}" |${values.value}]],
notes = [[| class="${classes}" rowspan="${rowspan}" style="${text_align};background-color:${bg_color}" |${values.value}]]
},
_columns = {
"id",
"rarity",
"name",
"equipment_type",
"stats",
"compatibility",
"buildable",
"improvable",
"notes",
},
_stats_column_label = "Stats",
}
function EquipmentListKai:id(equipment)
return {values = {value = Formatting:format_stat(equipment:id())}, bg_color = self._transparent, text_align = ""}
end
function EquipmentListKai:rarity(equipment)
return {values = {value = Formatting:tooltip(Formatting:format_stars(equipment:stars()), Formatting:format_equipment_rarity(equipment:rarity()), nil, Formatting._display_inline_block_css)}, bg_color = self._transparent, text_align = ""}
end
function EquipmentListKai:name(equipment)
return {values = {
name = EquipmentLink.format(nil, { equipment:name() }),
icon = Formatting:format_image{Formatting:format_equipment_icon(equipment:icon())},
japanese_name = Formatting:format_stat(equipment:japanese_name())
},
bg_color = self._transparent,
text_align = "text-align: " .. self._start_align,
}
end
function EquipmentListKai:equipment_type(equipment)
return {values = {value = Formatting:format_equipment_type(equipment:type())}, bg_color = self._transparent, text_align = ""}
end
function EquipmentListKai:stats(equipment)
local stats = {
firepower = equipment:firepower(),
bombing = equipment:bombing(),
torpedo = equipment:torpedo(),
aa = equipment:aa(),
armor = equipment:armor(),
asw = equipment:asw(),
shelling_accuracy = equipment:shelling_accuracy(),
torpedo_accuracy = equipment:torpedo_accuracy(),
evasion = equipment:evasion(),
los = equipment:los(),
speed = Formatting:format_speed(equipment:speed()),
luck = equipment:luck(),
range = Formatting:format_range(equipment:range()),
special = false,
}
return {values = {value = equipment:type() == 48 and Formatting:format_stat_bonuses_interceptor(stats, "<br />") or Formatting:format_stat_bonuses(stats, "<br />"),
},
bg_color = self._transparent,
text_align = "text-align: " .. self._start_align,
}
end
function EquipmentListKai:compatibility(equipment)
local value = Formatting:format_ship_compatibility(equipment:equippable())
if equipment:is_lbas_plane() then
value = value == "" and "LBAS" or value .. "; LBAS"
end
return {values = {value = value}, bg_color = self._transparent, text_align = "text-align: " .. self._start_align}
end
function EquipmentListKai:buildable(equipment)
return {values = {value = Formatting:format_boolean_short(equipment:buildable())}, bg_color = self._transparent, text_align = ""}
end
function EquipmentListKai:improvable(equipment)
return {values = {value = Formatting:format_boolean_short(equipment:improvable())}, bg_color = self._transparent, text_align = ""}
end
function EquipmentListKai:notes(equipment)
local note = self._notes[equipment]
if note then
return {values = {value = note.note or ""}, bg_color = self._transparent, text_align = "text-align: " .. self._start_align}
end
return {values = {value = ""}, bg_color = self._transparent, text_align = "text-align: " .. self._start_align}
end
function EquipmentListKai:create_header()
self._header = format{self._header_template, stat_columns = format{self._column_header_cell_template, value = self._stats_column_label}}
end
return EquipmentListKai