FANDOM


local BaseTable = require('Modulo:BaseTable')
local Formatting = require('Modulo:Formatting')
local MiscIcons = require('Modulo:MiscIcons')
local ResourceIcons = require('Modulo:ResourceIcons')
local Ship = require('Modulo:Ship')
local StatIcons = require('Modulo:StatIcons')
 
local format = require('Module:StringOperations').format
local split = require('Module:StringOperations').split
 
local EliteShipsKai = BaseTable({
	_header_template = [[!No.
!Nome
!Classe
! style="white-space:nowrap;" | ${remodelar}
! 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;" | ${asg}
! style="width: 30px; text-align: center; vertical-align: middle; background-color: aquamarine;" | ${ldv}
! style="width: 30px; text-align: center; vertical-align: middle; background-color: palegreen;" | ${sorte}
! style="width: 30px; text-align: center; vertical-align: middle; background-color: pink;" | ${vida}
! style="width: 30px; text-align: center; vertical-align: middle; background-color: #F2E279;" | ${escudo}
! style="width: 30px; text-align: center; vertical-align: middle; background-color: violet;" | ${evasão}
! style="width: 30px; text-align: center; vertical-align: middle; background-color: #72E6E6;" | ${velocidade}
! style="width: 30px; text-align: center; vertical-align: middle; background-color: silver;" | ${aeronavel}
! style="width: 30px; text-align: center; vertical-align: middle; background-color: forestgreen;" | ${combustível}
! style="width: 30px; text-align: center; vertical-align: middle; background-color: darkgoldenrod;" | ${munição}
! style="text-align:left;" | Notas]],
	_column_cell_templates = {
		sorte = [[| colspan="${colspan}" rowspan="${rowspan}" style="text-align: ${text_align}; background-color: ${bg_color}; padding:3px;" | ${values.luck}(${values.luck_max})]],
		id = [[| colspan="${colspan}" rowspan="${rowspan}" style="text-align: ${text_align}; background-color: ${bg_color}; padding:3px;${extra_style}" |${values.value}]],
		notas = [[| colspan="${colspan}" rowspan="${rowspan}" style="text-align: ${text_align}; background-color: ${bg_color}; padding:3px;" |<small>${values.value}</small>]],
	},
	_columns = {
		"id",
		"nome",
		"classe",
		"remodelar",
		"firepower",
		"torpedo",
		"aa",
		"asg",
		"ldv",
		"sorte",
		"vida",
		"escudo",
		"evasão",
		"velocidade",
		"aeronaves",
		"combustível",
		"munição",
		"nots",
	},
	_sem_nivel_para_remodelar = "-",
	--_nickname_template = "<br />Nicknamed ''${nickname}''",
	_classe_de_item = Navio,
})
 
function EliteShipsKai:nome(navio)
	local link, text, section = ship:link()
	local value = {Formatting:inline_block(Formatting:format_link(link, text, section))}
	local nome_em_japones = naio:nome_em_japones()
	if nome_em_japones and (text or link) ~= nome_em_japones then
		table.insert(value, Formatting:inline_block(Formatting:format_stat(nome_em_japones)))
	end
	--local nickname = navio:nick()
	--if nickname then
	--	table.insert(value, format{self._nickname_template, nickname = Formatting:inline_block(Formatting:format_stat(nickname))})
	--end
	return {values = {value = table.concat(value, " ")}, bg_color = self._transparent, text_align = self._center_align}
end
 
function EliteShipsKai:id(navio)
	local back = navio:back()
	return {values = {value = Formatting:format_stat(navio:id())}, 
		bg_color = self._transparent, --Formatting:format_navio_back(back), 
		extra_style = "", --Formatting:extra_style_background_image(back and back > 7, back and back > 6) or ""
		text_align = self._center_align
	}
end
 
function EliteShipsKai:classe(navio)
	local classe = navio:classe()
	if classe then
		local tipo_de_navio = navio:type()
		local value = classe:short_base_name()
		local show_type
		if self._reference_types then
			show_type = not self._reference_types[ship_type]
		else
			show_type = ship_type ~= class:base_type()
		end
		if show_type then
			value = Formatting:format_stat_with_detail(value, Formatting:format_navio_code(tipo_de_navio))
		end
		return {values = {value = value}, bg_color = self._transparent, text_align = self._center_align}
	else
		return {values = {value = "??"}, bg_color = self._transparent, text_align = self._center_align}
	end
end
 
function EliteShipsKai:remodelar(navio)
	local nivel_para_remodelar = navio:nivel_para_remodelar()
	return {values = {value = Formatting:format_stat(remodel_level == false and self._sem_nivel_para_remodelar or nivel_para_remodelar)}, bg_color = self:get_bg_color(self._cell_color.remodel, remodel_level, self._args.remodel_level_operator, self._args.remodel_level_outstanding, self._args.remodel_level_good), text_align = self._center_align}
end
 
function EliteShipsKai:firepower(navio)
	local firepower_max = navio:firepower_max()
	if firepower_max == false then
		firepower_max = navio:firepower()
	end
	return {values = {value = Formatting:format_stat(firepower_max)}, bg_color = self:get_bg_color(self._cell_color.firepower, firepower_max, self._args.firepower_operator, self._args.firepower_excepcional, self._args.firepower_bom), text_align = self._center_align}
end
 
function EliteShipsKai:torpedo(navio)
	local torpedo_max = navio:torpedo_max()
	if torpedo_max == false then
		torpedo_max = navio:torpedo()
	end
	return {values = {value = Formatting:format_stat(torpedo_max)}, bg_color = self:get_bg_color(self._cell_color.torpedo, torpedo_max, self._args.torpedo_operator, self._args.torpedo_excepcional, self._args.torpedo_bom), text_align = self._center_align}
end
 
function EliteShipsKai:aa(navio)
	local aa_max = navio:aa_max()
	if aa_max == false then
		aa_max = navio:aa()
	end
	return {values = {value = Formatting:format_stat(aa_max)}, bg_color = self:get_bg_color(self._cell_color.aa, aa_max, self._args.aa_operator, self._args.aa_excepcional, self._args.aa_bom), text_align = self._center_align}
end
 
function EliteShipsKai:asg(navio)
	local asg_max = navio:asg_max()
	if asg_max == false then
		asg_max = navio:asg()
	end
	return {values = {value = Formatting:format_stat(asg_max)}, bg_color = self:get_bg_color(self._cell_color.asg, asg_max, self._args.asg_operator, self._args.asg_excepcional, self._args.asg_bom), text_align = self._center_align}
end
 
function EliteShipsKai:ldv(navio)
	local ldv_max = navio:ldv_max()
	if ldv_max == false then
		ldv_max = navio:ldv()
	end
	return {values = {value = Formatting:format_stat(ldv_max)}, bg_color = self:get_bg_color(self._cell_color.ldv, ldv_max, self._args.ldv_operator, self._args.ldv_excepcional, self._args.ldv_bom), text_align = self._center_align}
end
 
function EliteShipsKai:sorte(navio)
	local sorte = navio:sorte()
	local sorte_max = navio:sorte_max()
	return {values = {sorte = Formatting:format_stat(sorte), sorte_max = self:get_emphasis(sorte_max, Formatting:format_stat(sorte_max), self._args.sorte_max_operator, self._args.sorte_max_bom)}, bg_color = self:get_bg_color(self._cell_color.sorte, sorte, self._args.sorte_operator, self._args.sorte_excepcional, self._args.sorte_bom), text_align = self._center_align}
end
 
function EliteShipsKai:vida(navio)
	local vida = navio:hp()
	return {values = {value = Formatting:format_stat(vida)}, bg_color = self:get_bg_color(self._cell_color.vida, vida, self._args.vida_operator, self._args.vida_excepcional, self._args.vida_bom), text_align = self._center_align}
end
 
function EliteShipsKai:escudo(navio)
	local escudo_max = navio:escudo_max()
	if escudo_max == false then
		escudo_max = navio:escudo()
	end
	return {values = {value = Formatting:format_stat(escudo_max)}, bg_color = self:get_bg_color(self._cell_color.escudo, escudo_max, self._args.escudo_operator, self._args.escudo_excepcional, self._args.escudo_bom), text_align = self._center_align}
end
 
function EliteShipsKai:evasao(navio)
	local evasao_max = navio:evasao_max()
	if evasao_max == false then
		evasao_max = navio:evasao()
	end
	return {values = {value = Formatting:format_stat(evasao_max)}, bg_color = self:get_bg_color(self._cell_color.evasao, evasao_max, self._args.evasao_operator, self._args.evasao_excepcional, self._args.evasao_bom), text_align = self._center_align}
end
 
function EliteShipsKai:velocidade(navio)
	local velocidade = navio:velocidade()
	return {values = {value = Formatting:format_velocidade(velocidade)}, bg_color = self:get_bg_color(self._cell_color.velocidade, velocidade, self._args.velocidade_operator, self._args.velocidade_excepcional, self._args.velocidade_bom), text_align = self._center_align}
end
 
function EliteShipsKai:aeronaves(navio)
	local aeronaves = navio:total_space()
	local slots = {}
	if aeronaves and aeronaves > 0 then
		for i = 1, navio:slots() do
			local size = navio:slot_space(i)
			table.insert(slots, self:get_emphasis(size, Formatting:format_stat(size), self._args.aeronaves_slot_operator, self._args.aeronaves_slot_bom))
		end
	end
	return {values = {value = Formatting:format_detailed_aeronaves(aeronaves, slots)}, bg_color = self:get_bg_color(self._cell_color.aeronaves, aeronaves, self._args.aeronaves_operator, self._args.aeronaves_excepcional, self._args.aeronaves_bom), text_align = self._center_align}
end
 
function EliteShipsKai:combustivel(navio)
	local combustivel = navio:combustivel()
	return {values = {value = Formatting:format_stat(combustivel)}, bg_color = self:get_bg_color(self._cell_color.combustivel, combustivel, self._args.combustivel_operator, self._args.combustivel_excepcional, self._args.combustivel_bom), text_align = self._center_align}
end
 
function EliteShipsKai:municao(navio)
	local municao = navio:municao()
	return {values = {value = Formatting:format_stat(municao)}, bg_color = self:get_bg_color(self._cell_color.municao, municao, self._args.municao_operator, self._args.municao_excepcional, self._args.municao_bom), text_align = self._center_align}
end
 
function EliteShipsKai:notas(navio)
	local nota = self._notas[navio]
	if nota then
		local bg_color
		if nota.highlight == "excepcional" then
			bg_color = self._excepcional_stat_color
		elseif nota.highlight == "bom" then
			bg_color = self._bom_stat_color
		else
			bg_color = self._transparent
		end
		return {values = {value = nota.nota or ""}, bg_color = bg_color}
	end
	return {values = {value = ""}, bg_color = self._transparent}
end
 
function EliteShipsKai:process_item_key(item_key)
	local split = mw.ustring.find(item_key, '/')
	local nome_base_do_navio, navio_sufixo
	if split == nil then
		nome_base_do_navio = item_key
	else
		nome_base_do_navio = mw.ustring.sub(item_key, 1, split - 1)
		navio_sufixo = mw.ustring.sub(item_key, split + 1, -1)
	end
	return nome_base_do_navio, navio_sufixo
end
 
EliteShipsKai.create_data_rows = EliteShipsKai.create_data_rows_merge_vertical
 
function EliteShipsKai:create_table_prep()
	if self._args.reference_type then
		self._reference_types = {}
		for _, reference_type in ipairs(split(self._args.reference_type, ',%s*')) do
			self._reference_types[tonumber(reference_type)] = true
		end
	end
end
 
function EliteShipsKai:create_header()
	local header_icons = {
		remodelar = MiscIcons.remodelar, 
		firepower = StatIcons.firepower, 
		torpedo = StatIcons.torpedo, 
		aa = StatIcons.aa, 
		asg = StatIcons.asg, 
		ldv = StatIcons.ldv, 
		sorte = StatIcons.sorte, 
		hp = StatIcons.hp, 
		escudo = StatIcons.escudo,
		evasao = StatIcons.evasao,
		velocidade = StatIcons.velocidade,
		aeronaves = StatIcons.avioes,
		combustivel = ResourceIcons.combustivel,
		municao = ResourceIcons.municao,
	}
	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
 
return EliteShipsKai

Interferência de bloqueador de anúncios detectada!


A Wikia é um site grátis que ganha dinheiro com publicidade. Nós temos uma experiência modificada para leitores usando bloqueadores de anúncios

A Wikia não é acessível se você fez outras modificações. Remova o bloqueador de anúncios personalizado para que a página carregue como esperado.