Module:EquipmentInfoKai

local Effects = require('Module:Effects') local Equipment = require('Module:Equipment') local Formatting = require('Module:Formatting') local format = require('Module:StringInterpolation').format

local EquipmentInfoKai = { _template = -",	_compatibility_cell = [[| style="width: 200px; text-align: center; background-color: ${bg_color};" | ${label},	_shown_ship_types = {		2,		3,		4,		5,		6,		7,		8,		9,		10,		11,		13,		14,		16,		17,		18,		19,		20,		21,	} }
 * colspan="2" style="text-align: center; background-color: ${back};${extra_style};"|${name}
 * colspan="2" style="text-align: center; background-color: ${back};${extra_style};"|${name}
 * colspan="2" style="text-align: center; background-color: whitesmoke;"| ${icon} ${eq_type}, ${rarity}
 * colspan="2" style="text-align: center; background-color: whitesmoke;"| ${icon} ${eq_type}, ${rarity}
 * colspan="2" style="text-align: center;" | ${card}
 * colspan="2" style="text-align: center; background-color: LightSkyBlue;" | Refittable Class
 * colspan="2" style="text-align: center; background-color: LightSkyBlue;" | Refittable Class
 * colspan="2" style="text-align: center; background-color: LightSkyBlue;" | Refittable Class
 * }]],

function EquipmentInfoKai:back(equipment) return Formatting:format_equipment_back(equipment:back) end

function EquipmentInfoKai:extra_style(equipment) return equipment:back >= 4 and Effects.sparkles or "" end

function EquipmentInfoKai:name(equipment) return Formatting:format_link(equipment:link) end

function EquipmentInfoKai:id(equipment) return Formatting:format_stat(equipment:id) end

function EquipmentInfoKai:japanese_name(equipment) return Formatting:format_stat(equipment:japanese_name) end

function EquipmentInfoKai:icon(equipment) return Formatting:format_image(Formatting:format_equipment_icon(equipment:icon)) end

function EquipmentInfoKai:eq_type(equipment) return Formatting:format_equipment_type(equipment:type) end

function EquipmentInfoKai:rarity(equipment) return Formatting:format_rarity(equipment:rarity) end

function EquipmentInfoKai:effects(equipment) return Formatting:format_stat_bonuses{ firepower = Formatting:format_stat(equipment:firepower), bombing = Formatting:format_stat(equipment:bombing), torpedo = Formatting:format_stat(equipment:torpedo), aa = Formatting:format_stat(equipment:aa), armor = Formatting:format_stat(equipment:armor), asw = Formatting:format_stat(equipment:asw), shelling_accuracy = Formatting:format_stat(equipment:shelling_accuracy), torpedo_accuracy = Formatting:format_stat(equipment:torpedo_accuracy), los = Formatting:format_stat(equipment:los), speed = Formatting:format_speed(equipment:speed), luck = Formatting:format_stat(equipment:luck), range = Formatting:format_range(equipment:range), special = equipment:special, } end

function EquipmentInfoKai:scrap(equipment) return Formatting:format_resources(equipment:scrap) end

function EquipmentInfoKai:card(equipment) return Formatting:format_image(equipment:card) end

function EquipmentInfoKai:compatibility_details(equipment) local result = {} for index, ship_type in ipairs(self._shown_ship_types) do		if index % 2 == 0 then table.insert(result, self._row_starter) end local compatibility, note = equipment:equippable(ship_type) local ship_label = Formatting:format_ship_type(ship_type) if note then ship_label = Formatting:tooltip(ship_label, note) end table.insert(result, format{self._compatibility_cell, bg_color = Formatting:format_equipment_compatibility(compatibility), label = ship_label}) end return table.concat(result, "\n") end

function EquipmentInfoKai:Infobox(name) local equipment = Equipment(name)

return format{self._template, back = self:back(equipment), extra_style = self:extra_style(equipment), name = self:name(equipment), id = self:id(equipment), japanese_name = self:japanese_name(equipment), icon = self:icon(equipment), eq_type = self:eq_type(equipment), rarity = self:rarity(equipment), effects = self:effects(equipment), scrap = self:scrap(equipment), card = self:card(equipment), compatibility_details = self:compatibility_details(equipment), } end

return EquipmentInfoKai