Module:EnemyShipInfoKai

local EnemyShip = require('Module:EnemyShip') local ShipInfoKai = require('Module:ShipInfoKai') local Formatting = require('Module:Formatting')

local format = require('Module:StringInterpolation').format

local EnemyShipInfoKai = ShipInfoKai{ _template = {|class="${table_class}" id="${table_id}" style="border: 1px solid darkgray; width: 320px;" ${name} ${localized_name} No.${id} ${japanese_name}${nick} ${class} ${type} ${slot_details}	_abyssal_class = "Abyssal",	_common_background_color = "darkgrey",	_background_color = "grey",	_rare_background_color = "#A04040",	_rare_background_image = "background-image: linear-gradient(to bottom, #804040, #A04040 80%, #A04040);",	_link_color = "black",	_text_shadow_template = "0 0 ${radius} ${color}",	_text_shadows = {		"0.1em",		"0.3em",		"0.6em",		"0.9em",	},	_basic_glow_colors = {		"#a0f6d9",		"#8becd5",	},	_kai_glow_colors = {		"darkturquoise",		"dodgerblue",	},	_late_model_basic_glow_colors = {		"#e6e6e6",		"#e6e6e6",	},	_late_model_glow_colors = {		"#8becd5",		"#e6e6e6",		"#e6e6e6",	},	_boss_glow_colors = {		"floralwhite",		"floralwhite",	},	_link_color_template = [[${text} ,	_cg_size = "218x300px", }
 * colspan="6" style="position: relative; text-align: center; padding: 1px 40px; background-color: ${top_bg_color};${top_extra_style}" | ${edit_link}
 * colspan="6" style="position: relative; text-align: center; padding: 1px 40px; background-color: ${top_bg_color};${top_extra_style}" | ${edit_link}
 * - style="background-color: whitesmoke;"
 * align=center colspan="6" | ${image}
 * colspan="6" style="text-align: center; background-color: LightSkyBlue;"|Statistics
 * - style="background-color: whitesmoke;"
 * colspan="2" style="width: 88px;" | ${icons.hp} ${labels.hp}
 * style="width: 66px;" | ${hp}
 * style="width: 88px;" | ${icons.firepower} ${labels.firepower}
 * colspan="2" style="width: 60px;" | ${firepower}
 * - style="background-color: whitesmoke;"
 * colspan="2" style="width: 88px;" | ${icons.armor} ${labels.armor}
 * style="width: 66px;" | ${armor}
 * style="width: 88px;" | ${icons.torpedo} ${labels.torpedo}
 * colspan="2" style="width: 66px;" | ${torpedo}
 * - style="background-color: whitesmoke;"
 * colspan="2" style="width: 88px;" | ${icons.evasion} ${labels.evasion}
 * style="width: 66px;" | ${evasion}
 * style="width: 88px;" | ${icons.aa} ${labels.aa}
 * colspan="2" style="width: 66px;" | ${aa}
 * - style="background-color: whitesmoke;"
 * colspan="2" style="width: 88px;" | ${icons.aircraft} ${labels.aircraft}
 * style="width: 66px;" | ${aircraft}
 * style="width: 88px;" | ${icons.asw} ${labels.asw}
 * colspan="2" style="width: 66px;" | ${asw}
 * - style="background-color: whitesmoke;"
 * colspan="2" style="width: 88px;" | ${icons.speed} ${labels.speed}
 * style="width: 66px;" | ${speed}
 * style="width: 88px;" | ${icons.los} ${labels.los}
 * colspan="2" style="width: 66px;" | ${los}
 * - style="background-color: whitesmoke;"
 * colspan="2" style="width: 88px;" | ${icons.range} ${labels.range}
 * style="width: 66px;" | ${range}
 * style="width: 88px;" | ${icons.luck} ${labels.luck}
 * colspan="2" style="width: 66px;" | ${luck}
 * colspan="5" style="text-align: center; background-color: LightSkyBlue;"| Air Power
 * style="text-align: center; background-color: LightSkyBlue; width: 50px;" | Slots
 * - style="background-color: whitesmoke;"
 * colspan="5" style="text-align: center;"| ${air_power}
 * align=center style="width: 50px;" | ${slots}
 * colspan="5" style="text-align: center; background-color: LightSkyBlue;"| Equipment
 * style="text-align: center; background-color: LightSkyBlue; width: 50px;" | Space
 * colspan="5" style="text-align: center; background-color: LightSkyBlue;"| Equipment
 * style="text-align: center; background-color: LightSkyBlue; width: 50px;" | Space
 * style="text-align: center; background-color: LightSkyBlue; width: 50px;" | Space
 * }]],

function EnemyShipInfoKai:bg_color local rarity = self._ship:rarity local bg_color local extra_style = "" if rarity then if rarity >= 4 and rarity <= 7 then bg_color = self._background_color elseif rarity < 4 then bg_color = self._common_background_color else bg_color = self._rare_background_color extra_style = self._rare_background_image end else bg_color = self._common_background_color end local back = self._ship:back local back_color = Formatting:format_ship_back(back) local glow_colors = {} if back then if back == -1 then glow_colors = self._basic_glow_colors elseif back > -7 and back < -3 then glow_colors = self._kai_glow_colors elseif back > -10 and back < -6 then glow_colors = (back == -7) and self._late_model_basic_glow_colors or self._late_model_glow_colors elseif back < -9 then glow_colors = self._boss_glow_colors end end local text_shadows = {} for index, radius in ipairs(self._text_shadows) do		local color = back_color if index <= #glow_colors then color = glow_colors[index] end table.insert(text_shadows, format{self._text_shadow_template, radius = radius, color = color}) end self._vars.top_bg_color, self._vars.text_shadow, self._vars.top_extra_style = bg_color, table.concat(text_shadows, ", "), extra_style end

function EnemyShipInfoKai:name local link, text, section = self._ship:link text = format{self._link_color_template, color = self._link_color, text = text or link} self._vars.name = Formatting:format_link(link, text, section) end

function EnemyShipInfoKai:id self._vars.id = Formatting:format_stat(self._ship:id) end

function EnemyShipInfoKai:class self._vars.class = self._abyssal_class end

function EnemyShipInfoKai:image self._vars.image = Formatting:format_image{self._ship:cg, size = self._cg_size} end

function EnemyShipInfoKai:firepower self._vars.firepower = Formatting:format_stat(self._ship:firepower) end

function EnemyShipInfoKai:armor self._vars.armor = Formatting:format_stat(self._ship:armor) end

function EnemyShipInfoKai:torpedo self._vars.torpedo = Formatting:format_stat(self._ship:torpedo) end

function EnemyShipInfoKai:evasion local evasion local override = self._args.evasion local overridden = false if override and override ~= "auto" then evasion = override overridden = true else evasion = self._ship:evasion end local result = Formatting:format_stat(evasion) if overridden then result = result .. self._overridden_category_template end self._vars.evasion = result end

function EnemyShipInfoKai:aa self._vars.aa = Formatting:format_stat(self._ship:aa, self._ship:aa_max) end

function EnemyShipInfoKai:asw local asw local overridden = false local override = self._args.asw if override and override ~= "auto" then asw = override overridden = true else asw = self._ship:asw end local result = Formatting:format_stat(asw) if overridden then result = result .. self._overridden_category_template end self._vars.asw = result end

function EnemyShipInfoKai:los local los local override = self._args.los local overridden = false if override and override ~= "auto" then los = override overridden = true else los = self._ship:los end local result = Formatting:format_stat(los) if overridden then result = result .. self._overridden_category_template end self._vars.los = result end

function EnemyShipInfoKai:luck self._vars.luck = Formatting:format_stat(self._ship:luck) end

function EnemyShipInfoKai:air_power self._vars.air_power = Formatting:format_stat(self._ship:air_power) end

function EnemyShipInfoKai:create_item self._ship = EnemyShip(self._args.name, self._args.model) end

function EnemyShipInfoKai:add_fields table.insert(self._fields, "air_power") end

return EnemyShipInfoKai