- 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
Line 7:
Line 7:
− _table_start = [[{| class="wikitable"]], +
− _row_starter = "|-",
Line 20:
Line 19:
− _comparison_columns = { +
− "id",
− "stars",
− "name",
− "equipment_type",
− "firepower",
− "torpedo",
− "bombing",
− "aa",
− "asw",
− "los",
− "luck",
− "armor",
− "shelling_accuracy",
− "evasion",
− "speed",
− "range",
− "compatibility",
− "buildable",
− "notes",
− },
− _stat_columns = {
− "firepower",
− "torpedo",
− "bombing",
− "aa",
− "asw",
− "los",
− "luck",
− "armor",
− "shelling_accuracy",
− "evasion",
− "speed",
− "range",
− },
− _list_columns = {
Line 111:
Line 75:
− end
−
− function EquipmentListKai:firepower(equipment)
− local firepower = equipment:firepower()
− if firepower ~= false then
− self._shown_stats.firepower = true
− else
− firepower = 0
− end
− return {values = {value = Formatting:format_stat(firepower)}, bg_color = self:get_bg_color(self._cell_color.firepower, firepower, self._args.firepower_operator, self._args.firepower_outstanding, self._args.firepower_good), text_align = self._center_align}
− end
−
− function EquipmentListKai:torpedo(equipment)
− local torpedo = equipment:torpedo()
− if torpedo ~= false then
− self._shown_stats.torpedo = true
− else
− torpedo = 0
− end
− return {values = {value = Formatting:format_stat(torpedo)}, bg_color = self:get_bg_color(self._cell_color.torpedo, torpedo, self._args.torpedo_operator, self._args.torpedo_outstanding, self._args.torpedo_good), text_align = self._center_align}
− end
−
− function EquipmentListKai:bombing(equipment)
− local bombing = equipment:bombing()
− if bombing ~= false then
− self._shown_stats.bombing = true
− else
− bombing = 0
− end
− return {values = {value = Formatting:format_stat(bombing)}, bg_color = self:get_bg_color(self._cell_color.bombing, bombing, self._args.bombing_operator, self._args.bombing_outstanding, self._args.bombing_good), text_align = self._center_align}
− end
−
− function EquipmentListKai:aa(equipment)
− local aa = equipment:aa()
− if aa ~= false then
− self._shown_stats.aa = true
− else
− aa = 0
− end
− return {values = {value = Formatting:format_stat(aa)}, bg_color = self:get_bg_color(self._cell_color.aa, aa, self._args.aa_operator, self._args.aa_outstanding, self._args.aa_good), text_align = self._center_align}
− end
−
− function EquipmentListKai:asw(equipment)
− local asw = equipment:asw()
− if asw ~= false then
− self._shown_stats.asw = true
− else
− asw = 0
− end
− return {values = {value = Formatting:format_stat(asw)}, bg_color = self:get_bg_color(self._cell_color.asw, asw, self._args.asw_operator, self._args.asw_outstanding, self._args.asw_good), text_align = self._center_align}
− end
−
− function EquipmentListKai:los(equipment)
− local los = equipment:los()
− if los ~= false then
− self._shown_stats.los = true
− else
− los = 0
− end
− return {values = {value = Formatting:format_stat(los)}, bg_color = self:get_bg_color(self._cell_color.los, los, self._args.los_operator, self._args.los_outstanding, self._args.los_good), text_align = self._center_align}
− end
−
− function EquipmentListKai:luck(equipment)
− local luck = equipment:luck()
− if luck ~= false then
− self._shown_stats.luck = true
− else
− luck = 0
− end
− return {values = {value = Formatting:format_stat(luck)}, bg_color = self:get_bg_color(self._cell_color.luck, luck, self._args.luck_operator, self._args.luck_outstanding, self._args.luck_good), text_align = self._center_align}
− end
−
− function EquipmentListKai:armor(equipment)
− local armor = equipment:armor()
− if armor ~= false then
− self._shown_stats.armor = true
− else
− armor = 0
− end
− return {values = {value = Formatting:format_stat(armor)}, bg_color = self:get_bg_color(self._cell_color.armor, armor, self._args.armor_operator, self._args.armor_outstanding, self._args.armor_good), text_align = self._center_align}
− end
−
− function EquipmentListKai:shelling_accuracy(equipment)
− local shelling_accuracy = equipment:shelling_accuracy()
− if shelling_accuracy ~= false then
− self._shown_stats.shelling_accuracy = true
− else
− shelling_accuracy = 0
− end
− return {values = {value = Formatting:format_stat(shelling_accuracy)}, bg_color = self:get_bg_color(self._cell_color.shelling_accuracy, shelling_accuracy, self._args.shelling_accuracy_operator, self._args.shelling_accuracy_outstanding, self._args.shelling_accuracy_good), text_align = self._center_align}
− end
−
− function EquipmentListKai:evasion(equipment)
− local evasion = equipment:evasion()
− if evasion ~= false then
− self._shown_stats.evasion = true
− else
− evasion = 0
− end
− return {values = {value = Formatting:format_stat(evasion)}, bg_color = self:get_bg_color(self._cell_color.evasion, evasion, self._args.evasion_operator, self._args.evasion_outstanding, self._args.evasion_good), text_align = self._center_align}
− end
−
− function EquipmentListKai:speed(equipment)
− local speed = equipment:speed()
− if speed ~= false then
− self._shown_stats.speed = true
− else
− speed = 0
− end
− return {values = {value = Formatting:format_speed(speed)}, bg_color = self:get_bg_color(self._cell_color.speed, speed, self._args.speed_operator, self._args.speed_outstanding, self._args.speed_good), text_align = self._center_align}
− end
−
− function EquipmentListKai:range(equipment)
− local range = equipment:range()
− if range ~= false then
− self._shown_stats.range = true
− else
− range = 0
− end
− return {values = {value = Formatting:format_range(range)}, bg_color = self:get_bg_color(self._cell_color.range, range, self._args.range_operator, self._args.range_outstanding, self._args.range_good), text_align = self._center_align}
Line 244:
Line 88:
− local bg_color+
− if note.highlight == "outstanding" then
− bg_color = self._outstanding_stat_color
− elseif note.highlight == "good" then
− bg_color = self._good_stat_color
− else
− bg_color = self._transparent
− end
−
− +
− local equipment_list = {} +
− self._notes = {}
− for index, equipment_name in ipairs(self._args) do
− if equipment_name == "-" then
− table.insert(equipment_list, "break")
− elseif equipment_name == "#" then
− table.insert(equipment_list, "header")
− else
− local equipment = Equipment(equipment_name)
− table.insert(equipment_list, equipment)
− local note = self._args[equipment_name .. self._notes_suffix]
− if note then
− note = {note = note}
− local note_highlight = self._args[equipment_name .. self._notes_suffix .. self._highlight_suffix]
− if note_highlight then
− note.highlight = note_highlight
− end
− self._notes[equipment] = note
− end
− end
− end
−
− local rows = {self._table_start}
− local header
− local data_rows = {}
−
− if self._args.comparison then
− self._columns = self._comparison_columns
− self._shown_stats = {}
−
− for index, equipment in ipairs(equipment_list) do
− local row_values
− if type(equipment) == "string" then
− row_values = equipment
− else
− row_values = {}
− for _, column in ipairs(self._columns) do
− row_values[column] = self[column](self, equipment)
− end
− if index > 1 then
− for _, column in ipairs(self._columns) do
− for i=index-1,1,-1 do
− local previous_row = data_rows[i]
− local previous_row_type = type(previous_row) ~= "string"
− local previous_cell = previous_row_type and previous_row[column] or false
− if previous_cell then
− if self.compare_values(row_values[column].values, previous_cell.values) then
− previous_cell.rowspan = previous_cell.rowspan + 1
− row_values[column] = nil
− else
− row_values[column].rowspan = 1
− end
− break
− elseif not previous_row_type then
− row_values[column].rowspan = 1
− break
− end
− end
− end
− else
− for _, column in ipairs(self._columns) do
− row_values[column].rowspan = 1
− end
− end
− end
− table.insert(data_rows, row_values)
− end
−
− local stat_columns = {}
− for _, column in ipairs(self._stat_columns) do
− if self._shown_stats[column] then
− table.insert(stat_columns, format{self._column_header_cell_template, value = Formatting:format_image{StatIcons[column], caption = Formatting:format_stat_name(column)}})
− else
− for _, row_values in ipairs(data_rows) do
− row_values[column] = nil
− end
− end
− end
− header = format{self._header_template, stat_columns = table.concat(stat_columns, "\n")}
− else
− self._columns = self._list_columns
− header = format{self._header_template, stat_columns = format{self._column_header_cell_template, value = self._stats_column_label}}
− for _, equipment in ipairs(equipment_list) do
− local row_values
− if type(equipment) == "string" then
− row_values = equipment
− else
− row_values = {}
− for _, column in ipairs(self._columns) do
− row_values[column] = self[column](self, equipment)
− row_values[column].rowspan = 1
− end
− end
− table.insert(data_rows, row_values)
− end
− end
−
− table.insert(rows, header)
− for index, row_values in ipairs(data_rows) do
− if row_values ~= "break" then
− table.insert(rows, self._row_starter)
− if row_values == "header" then
− table.insert(rows, header)
− else
− for _, column in ipairs(self._columns) do
− if row_values[column] then
− table.insert(rows, format(self._column_cell_templates[column] or self._cell, row_values[column]))
− end
− end
− end
− end
− end
− table.insert(rows, self._row_starter)
− table.insert(rows, header)
− table.insert(rows, self._table_end)
− return table.concat(rows, "\n")
no edit summary
local EquipmentListKai = BaseTable{
local EquipmentListKai = BaseTable{
_item_class = Equipment,
_header_template = [[! No.
_header_template = [[! No.
! Rarity
! Rarity
name = [[| colspan="1" rowspan="${rowspan}" style="text-align: ${text_align}; background-color: ${bg_color}; padding:5px 5px 5px 5px;" |${values.name}<br />${values.icon} ${values.japanese_name}]]
name = [[| colspan="1" rowspan="${rowspan}" style="text-align: ${text_align}; background-color: ${bg_color}; padding:5px 5px 5px 5px;" |${values.name}<br />${values.icon} ${values.japanese_name}]]
},
},
_columns = {
"id",
"id",
"stars",
"stars",
text_align = self._start_align,
text_align = self._start_align,
}
}
end
end
local note = self._notes[equipment]
local note = self._notes[equipment]
if note then
if note then
return {values = {value = note.note or ""}, bg_color = self._transparent}
return {values = {value = note.note or ""}, bg_color = bg_color}
end
end
return {values = {value = ""}, bg_color = self._transparent}
return {values = {value = ""}, bg_color = self._transparent}
end
end
function EquipmentListKai:create_table()
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