• 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:EquipmentInfoKai"

From Kancolle Wiki
Jump to navigation Jump to search
com>Ckwng
(Infobox for equipment)
 
com>Ckwng
(Fix stats, add No. before id, fix ship class ordering, fix ship class rows)
Line 8: Line 8:
 
|-
 
|-
 
| colspan="2" style="text-align: center; background-color: ${back};${extra_style};"|<p style="font-size:25px">'''${name}'''</p>
 
| colspan="2" style="text-align: center; background-color: ${back};${extra_style};"|<p style="font-size:25px">'''${name}'''</p>
<p style="font-size:20px">'''${id} ${japanese_name}'''</p>
+
<p style="font-size:20px">'''No.${id} ${japanese_name}'''</p>
 
|-
 
|-
 
| colspan="2" style="text-align: center; background-color: whitesmoke;"|<p>'''${icon} ${eq_type}, ${rarity}'''</p>
 
| colspan="2" style="text-align: center; background-color: whitesmoke;"|<p>'''${icon} ${eq_type}, ${rarity}'''</p>
Line 24: Line 24:
 
2,
 
2,
 
3,
 
3,
 +
--
 +
21,
 
4,
 
4,
 +
--
 
5,
 
5,
 
6,
 
6,
7,
+
--
 
8,
 
8,
 
9,
 
9,
 +
--
 
10,
 
10,
 +
7,
 +
--
 
11,
 
11,
 +
18,
 +
--
 
13,
 
13,
 
14,
 
14,
 +
--
 +
20,
 
16,
 
16,
 +
--
 
17,
 
17,
18,
 
 
19,
 
19,
20,
 
21,
 
 
}
 
}
 
}
 
}
Line 72: Line 80:
  
 
function EquipmentInfoKai:rarity(equipment)
 
function EquipmentInfoKai:rarity(equipment)
return Formatting:format_rarity(equipment:rarity())
+
return Formatting:format_equipment_rarity(equipment:rarity())
 
end
 
end
  
 
function EquipmentInfoKai:effects(equipment)
 
function EquipmentInfoKai:effects(equipment)
 
return Formatting:format_stat_bonuses{
 
return Formatting:format_stat_bonuses{
firepower = Formatting:format_stat(equipment:firepower()),  
+
firepower = equipment:firepower(),  
bombing = Formatting:format_stat(equipment:bombing()),  
+
bombing = equipment:bombing(),  
torpedo = Formatting:format_stat(equipment:torpedo()),  
+
torpedo = equipment:torpedo(),  
aa = Formatting:format_stat(equipment:aa()),  
+
aa = equipment:aa(),  
armor = Formatting:format_stat(equipment:armor()),  
+
armor = equipment:armor(),  
asw = Formatting:format_stat(equipment:asw()),  
+
asw = equipment:asw(),  
shelling_accuracy = Formatting:format_stat(equipment:shelling_accuracy()),
+
shelling_accuracy = equipment:shelling_accuracy(),
torpedo_accuracy = Formatting:format_stat(equipment:torpedo_accuracy()),
+
torpedo_accuracy = equipment:torpedo_accuracy(),
los = Formatting:format_stat(equipment:los()),
+
los = equipment:los(),
 
speed = Formatting:format_speed(equipment:speed()),
 
speed = Formatting:format_speed(equipment:speed()),
luck = Formatting:format_stat(equipment:luck()),
+
luck = equipment:luck(),
 
range = Formatting:format_range(equipment:range()),
 
range = Formatting:format_range(equipment:range()),
 
special = equipment:special(),
 
special = equipment:special(),
Line 104: Line 112:
 
local result = {}
 
local result = {}
 
for index, ship_type in ipairs(self._shown_ship_types) do
 
for index, ship_type in ipairs(self._shown_ship_types) do
if index % 2 == 0 then
+
if index % 2 == 1 then
 
table.insert(result, self._row_starter)
 
table.insert(result, self._row_starter)
 
end
 
end

Revision as of 12:48, 16 February 2015

Documentation for this module may be created at Module:EquipmentInfoKai/doc

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

local EquipmentInfoKai = {
	_template = [[{|style="border: 1px solid darkgray; width: 400px;"
|-
| colspan="2" style="text-align: center; background-color: ${back};${extra_style};"|<p style="font-size:25px">'''${name}'''</p>
<p style="font-size:20px">'''No.${id} ${japanese_name}'''</p>
|-
| colspan="2" style="text-align: center; background-color: whitesmoke;"|<p>'''${icon} ${eq_type}, ${rarity}'''</p>
<p>'''Effects: ${effects}'''</p>
<p>'''Scrap value: ${scrap}'''</p>
|- 
| colspan="2" style="text-align: center;" | ${card}
|-
| colspan="2" style="text-align: center; background-color: LightSkyBlue;" | '''Refittable Class'''
${compatibility_details}
|}]],
	_row_starter = "|-",
	_compatibility_cell = [[| style="width: 200px; text-align: center; background-color: ${bg_color};" | ${label}]],
	_shown_ship_types = {
		2,
		3,
		--
		21,
		4,
		--
		5,
		6,
		--
		8,
		9,
		--
		10,
		7,
		--
		11,
		18,
		--
		13,
		14,
		--
		20,
		16,
		--
		17,
		19,
	}
}

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_equipment_rarity(equipment:rarity())
end

function EquipmentInfoKai:effects(equipment)
	return Formatting:format_stat_bonuses{
		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(),
		los = equipment:los(),
		speed = Formatting:format_speed(equipment:speed()),
		luck = 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 == 1 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