Module:EquipmentData

Revision as of 01:57, 30 August 2015 by com>Ckwng (Add Torp bomber exception for AO)

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

local BaseData = require("Module:BaseData")
local Formatting = require('Module:Formatting')

local EquipmentData = BaseData({
	_strict_translation_class = "strict-translation",
	_common_translation_class = "common-translation",
	_mobile_hide_class = "mobile-hide",
	_display_none_css = {display = "none"},
	_equipment_compatibility = {
		[1] = {
			[1] = 0,
			[2] = 0,
			[3] = 0,
			[4] = 0,
			[5] = 0,
			[6] = 0,
			[7] = 0,
			[8] = 0,
			[9] = 0,
			[10] = 0,
			[11] = 0,
			[12] = 0,
			[13] = 0,
			[14] = 0,
			[15] = 0,
			[16] = 0,
			[17] = 0,
			[18] = 0,
			[19] = 0,
			[20] = 0,
			[21] = 0,
			[22] = 0,
			[23] = 0,
			[24] = 0,
			[25] = 0,
			[26] = 0,
			[27] = 0,
			[28] = 0,
			[29] = 0,
			[30] = 0,
			[31] = 0,
			[32] = 0,
			[33] = 0,
			[34] = 0,
			[35] = 0,
			[36] = 0,
			[37] = 0,
			[38] = 0,
			[39] = 0,
			[40] = 0,
			[41] = 0,
			[42] = 0,
			[43] = 0,
			[44] = 0,
			[93] = 0,
		},
		[2] = {
			[1] = 1,
			[2] = 0,
			[3] = 0,
			[4] = 0,
			[5] = 1,
			[6] = 0,
			[7] = 0,
			[8] = 0,
			[9] = 0,
			[10] = 0,
			[11] = 0,
			[12] = 1,
			[13] = 0,
			[14] = 1,
			[15] = 1,
			[16] = 0,
			[17] = 1,
			[18] = 0,
			[19] = 0,
			[20] = 1,
			[21] = 1,
			[22] = 0,
			[23] = 1,
			[24] = 0,
			[25] = 0,
			[26] = 0,
			[27] = 0,
			[28] = 0,
			[29] = 1,
			[30] = 1,
			[31] = 0,
			[32] = 0,
			[33] = 1,
			[34] = 0,
			[35] = 0,
			[36] = 1,
			[37] = 1,
			[38] = 0,
			[39] = 1,
			[40] = 0,
			[41] = 0,
			[42] = 0,
			[43] = 1,
			[44] = 0,
			[93] = 0,
		},
		[3] = {
			[1] = 1,
			[2] = 1,
			[3] = 0,
			[4] = 1,
			[5] = 1,
			[6] = 0,
			[7] = 0,
			[8] = 0,
			[9] = 0,
			[10] = 1,
			[11] = 0,
			[12] = 1,
			[13] = 1,
			[14] = 1,
			[15] = 1,
			[16] = 0,
			[17] = 1,
			[18] = 0,
			[19] = 0,
			[20] = 1,
			[21] = 1,
			[22] = {value = 2, note = "Abukuma Kai Ni only", code = "Abukuma Kai Ni"},
			[23] = 1,
			[24] = {value = 2, note = "Abukuma Kai Ni only", code = "Abukuma Kai Ni"},
			[25] = 0,
			[26] = 0,
			[27] = 0,
			[28] = 0,
			[29] = 1,
			[30] = 1,
			[31] = 0,
			[32] = 0,
			[33] = 1,
			[34] = 1,
			[35] = 0,
			[36] = 1,
			[37] = 1,
			[38] = 0,
			[39] = 1,
			[40] = 0,
			[41] = 0,
			[42] = 0,
			[43] = 1,
			[44] = 0,
			[93] = 0,
		},
		[4] = {
			[1] = 1,
			[2] = 1,
			[3] = 0,
			[4] = 1,
			[5] = 1,
			[6] = 0,
			[7] = 0,
			[8] = 0,
			[9] = 0,
			[10] = 0,
			[11] = 0,
			[12] = 1,
			[13] = 1,
			[14] = 1,
			[15] = 1,
			[16] = 0,
			[17] = 1,
			[18] = 0,
			[19] = 0,
			[20] = 1,
			[21] = 1,
			[22] = 1,
			[23] = 1,
			[24] = 0,
			[25] = 0,
			[26] = 0,
			[27] = 0,
			[28] = 0,
			[29] = 0,
			[30] = 0,
			[31] = 0,
			[32] = 0,
			[33] = 1,
			[34] = 1,
			[35] = 0,
			[36] = 1,
			[37] = 0,
			[38] = 0,
			[39] = 1,
			[40] = 0,
			[41] = 0,
			[42] = 0,
			[43] = 1,
			[44] = 0,
			[93] = 0,
		},
		[5] = {
			[1] = 0,
			[2] = 1,
			[3] = 0,
			[4] = 1,
			[5] = 1,
			[6] = 0,
			[7] = 0,
			[8] = 0,
			[9] = 0,
			[10] = 1,
			[11] = 0,
			[12] = 1,
			[13] = 1,
			[14] = 0,
			[15] = 0,
			[16] = 1,
			[17] = 1,
			[18] = 1,
			[19] = 0,
			[20] = 1,
			[21] = 1,
			[22] = 0,
			[23] = 1,
			[24] = 0,
			[25] = 0,
			[26] = 0,
			[27] = 1,
			[28] = 0,
			[29] = 1,
			[30] = 0,
			[31] = 0,
			[32] = 0,
			[33] = 1,
			[34] = 1,
			[35] = 0,
			[36] = 1,
			[37] = 0,
			[38] = 0,
			[39] = 1,
			[40] = 1,
			[41] = 0,
			[42] = 0,
			[43] = 1,
			[44] = 0,
			[93] = 0,
		},
		[6] = {
			[1] = 0,
			[2] = 1,
			[3] = 0,
			[4] = 1,
			[5] = 1,
			[6] = 0,
			[7] = 0,
			[8] = 0,
			[9] = 0,
			[10] = 1,
			[11] = 1,
			[12] = 1,
			[13] = 1,
			[14] = 0,
			[15] = 0,
			[16] = 1,
			[17] = 1,
			[18] = 1,
			[19] = 0,
			[20] = 1,
			[21] = 1,
			[22] = 0,
			[23] = 1,
			[24] = 0,
			[25] = 1,
			[26] = 0,
			[27] = 1,
			[28] = 0,
			[29] = 1,
			[30] = 1,
			[31] = 0,
			[32] = 0,
			[33] = 1,
			[34] = 1,
			[35] = 1,
			[36] = 1,
			[37] = 1,
			[38] = 0,
			[39] = 1,
			[40] = 1,
			[41] = 0,
			[42] = 0,
			[43] = 1,
			[44] = 0,
			[93] = 0,
		},
		[7] = {
			[1] = 0,
			[2] = 0,
			[3] = 0,
			[4] = 1,
			[5] = 0,
			[6] = 1,
			[7] = 1,
			[8] = 1,
			[9] = 1,
			[10] = 0,
			[11] = 0,
			[12] = 1,
			[13] = 1,
			[14] = 0,
			[15] = 0,
			[16] = 1,
			[17] = 1,
			[18] = 0,
			[19] = 0,
			[20] = 1,
			[21] = 1,
			[22] = 0,
			[23] = 1,
			[24] = 0,
			[25] = 1,
			[26] = 1,
			[27] = 1,
			[28] = 0,
			[29] = 0,
			[30] = 0,
			[31] = 0,
			[32] = 0,
			[33] = 0,
			[34] = 1,
			[35] = 1,
			[36] = 1,
			[37] = 0,
			[38] = 0,
			[39] = 0,
			[40] = 1,
			[41] = 0,
			[42] = 0,
			[43] = 1,
			[44] = 0,
			[93] = 0,
		},
		[8] = {
			[1] = 0,
			[2] = 0,
			[3] = 1,
			[4] = 1,
			[5] = {value = 2, note = "Bismarck drei only", code = "Bismarck Drei"},
			[6] = 0,
			[7] = 0,
			[8] = 0,
			[9] = 0,
			[10] = 1,
			[11] = 0,
			[12] = 1,
			[13] = 1,
			[14] = 0,
			[15] = 0,
			[16] = 1,
			[17] = 1,
			[18] = 1,
			[19] = 1,
			[20] = 1,
			[21] = 1,
			[22] = 0,
			[23] = 1,
			[24] = 0,
			[25] = 0,
			[26] = 0,
			[27] = 0,
			[28] = 1,
			[29] = 1,
			[30] = 0,
			[31] = 0,
			[32] = 0,
			[33] = 1,
			[34] = 1,
			[35] = 0,
			[36] = 1,
			[37] = 0,
			[38] = 0,
			[39] = 1,
			[40] = 1,
			[41] = 0,
			[42] = 1,
			[43] = 1,
			[44] = 0,
			[93] = 1,
		},
		[9] = {
			[1] = 0,
			[2] = 1,
			[3] = 1,
			[4] = 1,
			[5] = 0,
			[6] = 0,
			[7] = 0,
			[8] = 0,
			[9] = 0,
			[10] = 1,
			[11] = 0,
			[12] = 1,
			[13] = 1,
			[14] = 0,
			[15] = 0,
			[16] = 1,
			[17] = 1,
			[18] = 1,
			[19] = 1,
			[20] = 1,
			[21] = 1,
			[22] = 0,
			[23] = 1,
			[24] = 0,
			[25] = 0,
			[26] = 0,
			[27] = 0,
			[28] = 1,
			[29] = 1,
			[30] = 0,
			[31] = 0,
			[32] = 0,
			[33] = 1,
			[34] = 1,
			[35] = 0,
			[36] = 1,
			[37] = 0,
			[38] = {value = 2, note = "Yamato-class or remodelled Nagato-class only", code = "Yamato-class, remodelled Nagato-class"},
			[39] = 1,
			[40] = 1,
			[41] = 0,
			[42] = 1,
			[43] = 1,
			[44] = 0,
			[93] = 1,
		},
		[10] = {
			[1] = 0,
			[2] = 1,
			[3] = 1,
			[4] = 1,
			[5] = 0,
			[6] = 0,
			[7] = 0,
			[8] = 0,
			[9] = 0,
			[10] = 1,
			[11] = 1,
			[12] = 1,
			[13] = 1,
			[14] = 0,
			[15] = 0,
			[16] = 1,
			[17] = 1,
			[18] = 1,
			[19] = 1,
			[20] = 1,
			[21] = 1,
			[22] = 0,
			[23] = 1,
			[24] = 0,
			[25] = 1,
			[26] = 0,
			[27] = 0,
			[28] = 1,
			[29] = 1,
			[30] = 0,
			[31] = 0,
			[32] = 0,
			[33] = 1,
			[34] = 1,
			[35] = 1,
			[36] = 1,
			[37] = 1,
			[38] = 0,
			[39] = 1,
			[40] = 1,
			[41] = 0,
			[42] = 1,
			[43] = 1,
			[44] = 0,
			[93] = 1,
		},
		[11] = {
			[1] = 0,
			[2] = 0,
			[3] = 0,
			[4] = 1,
			[5] = 0,
			[6] = 1,
			[7] = 1,
			[8] = 1,
			[9] = 1,
			[10] = 0,
			[11] = 0,
			[12] = 1,
			[13] = 1,
			[14] = 0,
			[15] = 0,
			[16] = 1,
			[17] = 1,
			[18] = 0,
			[19] = 0,
			[20] = 1,
			[21] = 1,
			[22] = 0,
			[23] = 1,
			[24] = 0,
			[25] = 0,
			[26] = 0,
			[27] = 0,
			[28] = 1,
			[29] = 0,
			[30] = 0,
			[31] = 0,
			[32] = 0,
			[33] = 0,
			[34] = 1,
			[35] = 1,
			[36] = 1,
			[37] = 0,
			[38] = 0,
			[39] = 0,
			[40] = 1,
			[41] = 0,
			[42] = 0,
			[43] = 1,
			[44] = 0,
			[93] = 0,
		},
		[12] = {
			[1] = 0,
			[2] = 0,
			[3] = 0,
			[4] = 0,
			[5] = 0,
			[6] = 0,
			[7] = 0,
			[8] = 0,
			[9] = 0,
			[10] = 0,
			[11] = 0,
			[12] = 0,
			[13] = 0,
			[14] = 0,
			[15] = 0,
			[16] = 0,
			[17] = 0,
			[18] = 0,
			[19] = 0,
			[20] = 0,
			[21] = 0,
			[22] = 0,
			[23] = 0,
			[24] = 0,
			[25] = 0,
			[26] = 0,
			[27] = 0,
			[28] = 0,
			[29] = 0,
			[30] = 0,
			[31] = 0,
			[32] = 0,
			[33] = 0,
			[34] = 0,
			[35] = 0,
			[36] = 0,
			[37] = 0,
			[38] = 0,
			[39] = 0,
			[40] = 0,
			[41] = 0,
			[42] = 0,
			[43] = 0,
			[44] = 0,
			[93] = 0,
		},
		[13] = {
			[1] = 0,
			[2] = 0,
			[3] = 0,
			[4] = 0,
			[5] = 1,
			[6] = 0,
			[7] = 0,
			[8] = 0,
			[9] = 0,
			[10] = 0,
			[11] = 0,
			[12] = 0,
			[13] = 0,
			[14] = 1,
			[15] = 0,
			[16] = 0,
			[17] = 1,
			[18] = 0,
			[19] = 0,
			[20] = 0,
			[21] = 0,
			[22] = 1,
			[23] = 1,
			[24] = 0,
			[25] = 0,
			[26] = 0,
			[27] = 0,
			[28] = 0,
			[29] = 0,
			[30] = 0,
			[31] = 0,
			[32] = 1,
			[33] = 0,
			[34] = 0,
			[35] = 0,
			[36] = 0,
			[37] = 1,
			[38] = 0,
			[39] = 0,
			[40] = 0,
			[41] = 0,
			[42] = 0,
			[43] = 1,
			[44] = 0,
			[93] = 0,
		},
		[14] = {
			[1] = 0,
			[2] = 0,
			[3] = 0,
			[4] = 0,
			[5] = 1,
			[6] = 0,
			[7] = 0,
			[8] = 0,
			[9] = 0,
			[10] = 1,
			[11] = 1,
			[12] = 0,
			[13] = 0,
			[14] = 1,
			[15] = 0,
			[16] = 0,
			[17] = 1,
			[18] = 0,
			[19] = 0,
			[20] = 0,
			[21] = 0,
			[22] = 1,
			[23] = 1,
			[24] = 0,
			[25] = 0,
			[26] = 0,
			[27] = 0,
			[28] = 0,
			[29] = 0,
			[30] = 0,
			[31] = 0,
			[32] = 1,
			[33] = 0,
			[34] = 0,
			[35] = 0,
			[36] = 0,
			[37] = 1,
			[38] = 0,
			[39] = 0,
			[40] = 0,
			[41] = 0,
			[42] = 0,
			[43] = 1,
			[44] = 0,
			[93] = 0,
		},
		[15] = {
			[1] = 0,
			[2] = 0,
			[3] = 0,
			[4] = 0,
			[5] = 0,
			[6] = 0,
			[7] = 0,
			[8] = 0,
			[9] = 0,
			[10] = 0,
			[11] = 0,
			[12] = 0,
			[13] = 0,
			[14] = 0,
			[15] = 0,
			[16] = 0,
			[17] = 0,
			[18] = 0,
			[19] = 0,
			[20] = 0,
			[21] = 0,
			[22] = 0,
			[23] = 0,
			[24] = 0,
			[25] = 0,
			[26] = 0,
			[27] = 0,
			[28] = 0,
			[29] = 0,
			[30] = 0,
			[31] = 0,
			[32] = 0,
			[33] = 0,
			[34] = 0,
			[35] = 0,
			[36] = 0,
			[37] = 0,
			[38] = 0,
			[39] = 0,
			[40] = 0,
			[41] = 0,
			[42] = 0,
			[43] = 0,
			[44] = 0,
			[93] = 0,
		},
		[16] = {
			[1] = 1,
			[2] = 0,
			[3] = 0,
			[4] = 1,
			[5] = 0,
			[6] = 0,
			[7] = 0,
			[8] = 0,
			[9] = 0,
			[10] = 1,
			[11] = 1,
			[12] = 1,
			[13] = 1,
			[14] = {value = 2, note = "Akitsushima Kai only", code = "Akitsushima Kai"},
			[15] = 1,
			[16] = 1,
			[17] = 1,
			[18] = 0,
			[19] = 0,
			[20] = 1,
			[21] = 1,
			[22] = {value = 2, note = "Excluding Akitsushima", code = "AV excluding Akitsushima"},
			[23] = 1,
			[24] = {value = 2, note = "Excluding Akitsushima", code = "AV excluding Akitsushima"},
			[25] = 0,
			[26] = 0,
			[27] = 1,
			[28] = 0,
			[29] = 1,
			[30] = 1,
			[31] = 0,
			[32] = 0,
			[33] = 1,
			[34] = 1,
			[35] = {value = 2, note = "Akitsushima Kai only", code = "Akitsushima Kai"},
			[36] = 1,
			[37] = 1,
			[38] = 0,
			[39] = 1,
			[40] = 1,
			[41] = {value = 2, note = "Akitsushima only", code = "Akitsushima"},
			[42] = 0,
			[43] = 1,
			[44] = 0,
			[93] = 0,
		},
		[17] = {
			[1] = 1,
			[2] = 0,
			[3] = 0,
			[4] = 1,
			[5] = 0,
			[6] = 1,
			[7] = 0,
			[8] = 0,
			[9] = 0,
			[10] = 0,
			[11] = 0,
			[12] = 1,
			[13] = 0,
			[14] = 0,
			[15] = 0,
			[16] = 0,
			[17] = 1,
			[18] = 0,
			[19] = 0,
			[20] = 1,
			[21] = 1,
			[22] = 0,
			[23] = 1,
			[24] = 1,
			[25] = 1,
			[26] = 1,
			[27] = 0,
			[28] = 0,
			[29] = 0,
			[30] = 1,
			[31] = 0,
			[32] = 0,
			[33] = 0,
			[34] = 1,
			[35] = 0,
			[36] = 1,
			[37] = 1,
			[38] = 0,
			[39] = 0,
			[40] = 1,
			[41] = 0,
			[42] = 0,
			[43] = 1,
			[44] = 0,
			[93] = 0,
		},
		[18] = {
			[1] = 0,
			[2] = 0,
			[3] = 0,
			[4] = 1,
			[5] = 0,
			[6] = 1,
			[7] = 1,
			[8] = 1,
			[9] = 1,
			[10] = 0,
			[11] = 0,
			[12] = 1,
			[13] = 1,
			[14] = 0,
			[15] = 0,
			[16] = 1,
			[17] = 1,
			[18] = 0,
			[19] = 0,
			[20] = 1,
			[21] = 1,
			[22] = 0,
			[23] = 1,
			[24] = 0,
			[25] = 0,
			[26] = 0,
			[27] = 0,
			[28] = 1,
			[29] = 0,
			[30] = 0,
			[31] = 0,
			[32] = 0,
			[33] = 0,
			[34] = 1,
			[35] = 1,
			[36] = 1,
			[37] = 0,
			[38] = 0,
			[39] = 0,
			[40] = 1,
			[41] = 0,
			[42] = 0,
			[43] = 1,
			[44] = 0,
			[93] = 0,
		},
		[19] = {
			[1] = 1,
			[2] = 0,
			[3] = 0,
			[4] = 1,
			[5] = 0,
			[6] = 0,
			[7] = 0,
			[8] = 0,
			[9] = 0,
			[10] = 0,
			[11] = 0,
			[12] = 1,
			[13] = 0,
			[14] = 0,
			[15] = 0,
			[16] = 0,
			[17] = 1,
			[18] = 0,
			[19] = 0,
			[20] = 1,
			[21] = 1,
			[22] = 0,
			[23] = 1,
			[24] = 0,
			[25] = 1,
			[26] = 0,
			[27] = 1,
			[28] = 0,
			[29] = 0,
			[30] = 0,
			[31] = 1,
			[32] = 0,
			[33] = 1,
			[34] = 0,
			[35] = 0,
			[36] = 1,
			[37] = 0,
			[38] = 0,
			[39] = 0,
			[40] = 0,
			[41] = 0,
			[42] = 0,
			[43] = 1,
			[44] = 0,
			[93] = 0,
		},
		[20] = {
			[1] = 1,
			[2] = 0,
			[3] = 0,
			[4] = 1,
			[5] = 0,
			[6] = 0,
			[7] = 0,
			[8] = 0,
			[9] = 0,
			[10] = 1,
			[11] = 0,
			[12] = 1,
			[13] = 0,
			[14] = 0,
			[15] = 0,
			[16] = 0,
			[17] = 1,
			[18] = 0,
			[19] = 0,
			[20] = 1,
			[21] = 1,
			[22] = 0,
			[23] = 1,
			[24] = 0,
			[25] = 1,
			[26] = 0,
			[27] = 1,
			[28] = 0,
			[29] = 0,
			[30] = 0,
			[31] = 0,
			[32] = 0,
			[33] = 1,
			[34] = 1,
			[35] = 0,
			[36] = 1,
			[37] = 1,
			[38] = 0,
			[39] = 1,
			[40] = 1,
			[41] = 0,
			[42] = 0,
			[43] = 1,
			[44] = 0,
			[93] = 0,
		},
		[21] = {
			[1] = 1,
			[2] = 1,
			[3] = 0,
			[4] = 1,
			[5] = 1,
			[6] = 0,
			[7] = 0,
			[8] = 0,
			[9] = 0,
			[10] = 1,
			[11] = 0,
			[12] = 1,
			[13] = 1,
			[14] = 1,
			[15] = 1,
			[16] = 0,
			[17] = 1,
			[18] = 0,
			[19] = 0,
			[20] = 1,
			[21] = 1,
			[22] = 0,
			[23] = 1,
			[24] = 0,
			[25] = 0,
			[26] = 0,
			[27] = 1,
			[28] = 0,
			[29] = 0,
			[30] = 0,
			[31] = 0,
			[32] = 0,
			[33] = 0,
			[34] = 1,
			[35] = 0,
			[36] = 1,
			[37] = 0,
			[38] = 0,
			[39] = 1,
			[40] = 0,
			[41] = 0,
			[42] = 0,
			[43] = 1,
			[44] = 0,
			[93] = 0,
		},
		[22] = {
			[1] = 1,
			[2] = 0,
			[3] = 0,
			[4] = 0,
			[5] = 0,
			[6] = 0,
			[7] = 0,
			[8] = {value = 2, note = "Hayasui Kai only", code = "Hayasui Kai"},
			[9] = 0,
			[10] = 1,
			[11] = 1,
			[12] = 1,
			[13] = 0,
			[14] = 0,
			[15] = 0,
			[16] = 0,
			[17] = 1,
			[18] = 0,
			[19] = 0,
			[20] = 1,
			[21] = 1,
			[22] = 0,
			[23] = 1,
			[24] = 0,
			[25] = 1,
			[26] = 0,
			[27] = 0,
			[28] = 0,
			[29] = 0,
			[30] = 1,
			[31] = 0,
			[32] = 0,
			[33] = 0,
			[34] = 0,
			[35] = 1,
			[36] = 1,
			[37] = 0,
			[38] = 0,
			[39] = 0,
			[40] = 0,
			[41] = 0,
			[42] = 0,
			[43] = 1,
			[44] = 1,
			[93] = 0,
		},
	}
})

function EquipmentData:name()
	return self._name
end

function EquipmentData:strict_name()
	return self._strict_name
end

function EquipmentData:common_name()
	return self._common_name or self:name()
end

function EquipmentData:asset_name()
	return self._asset_name or self:common_name()
end

function EquipmentData:link()
	if self._page then
		return self._page, self:name()
	end
	return self:name()
end

function EquipmentData:id()
	return self._id
end

EquipmentData.api_id = EquipmentData.id

function EquipmentData:localized_name()
	return self._localized_name
end

function EquipmentData:reading()
	return self._reading
end

function EquipmentData:list_name()
	return self._list_name
end

function EquipmentData:list_japanese_name()
	return self._list_japanese_name
end

function EquipmentData:list_localized_name()
	return self._list_localized_name
end

function EquipmentData:list_reading()
	return self._list_reading
end

function EquipmentData:comparison_name()
	return self._comparison_name
end

function EquipmentData:comparison_japanese_name()
	return self._comparison_japanese_name
end

function EquipmentData:comparison_localized_name()
	return self._comparison_localized_name
end

function EquipmentData:comparison_reading()
	return self._comparison_reading
end

function EquipmentData:library_name()
	return self._library_name
end

function EquipmentData:library_japanese_name()
	return self._library_japanese_name
end

function EquipmentData:library_localized_name()
	return self._library_localized_name
end

function EquipmentData:library_reading()
	return self._library_reading
end

function EquipmentData:card_name()
	return self._card_name
end

function EquipmentData:card_japanese_name()
	return self._card_japanese_name
end

function EquipmentData:card_localized_name()
	return self._card_localized_name
end

function EquipmentData:card_reading()
	return self._card_reading
end

function EquipmentData:japanese_name()
	return self._japanese_name
end

function EquipmentData:type()
	return self._type
end

function EquipmentData:rarity()
	return self._rarity
end

function EquipmentData:stars()
	return self._stars or self:back()
end

function EquipmentData:back()
	return self._back or self:rarity()
end

function EquipmentData:card()
	if self._card then
		return self._card
	end
	api_id = self:api_id()
	if api_id then
		return Formatting:equipment_card(api_id, self:asset_name())
	end
	return self._card
end

function EquipmentData:fairy()
	if self._fairy then
		return self._fairy
	end
	api_id = self:api_id()
	if api_id then
		return Formatting:equipment_fairy(api_id, self:asset_name())
	end
	return self._fairy
end

function EquipmentData:cg()
	if self._cg then
		return self._cg
	end
	api_id = self:api_id()
	if api_id then
		return Formatting:equipment_cg(api_id, self:asset_name())
	end
	return self._cg
end

function EquipmentData:cg_fairy()
	if self._cg_fairy then
		return self._cg_fairy
	end
	api_id = self:api_id()
	if api_id then
		return Formatting:equipment_full(api_id, self:asset_name())
	end
	return self._cg_fairy
end

function EquipmentData:icon()
	return self._icon
end

function EquipmentData:firepower()
	return self._firepower
end

function EquipmentData:bombing()
	return self._bombing
end

function EquipmentData:torpedo()
	return self._torpedo
end

function EquipmentData:aa()
	return self._aa
end

function EquipmentData:armor()
	return self._armor
end

function EquipmentData:asw()
	return self._asw
end

function EquipmentData:shelling_accuracy()
	return self._shelling_accuracy
end

function EquipmentData:torpedo_accuracy()
	return self._torpedo_accuracy
end

function EquipmentData:evasion()
	return self._evasion
end

function EquipmentData:los()
	return self._los
end

function EquipmentData:speed()
	return self._speed
end

function EquipmentData:luck()
	return self._luck
end

function EquipmentData:range()
	return self._range
end

function EquipmentData:scrap()
	return {fuel = self._scrap_fuel, ammo = self._scrap_ammo, steel = self._scrap_steel, bauxite = self._scrap_bauxite}
end

function EquipmentData:buildable()
	  return self._buildable
end

function EquipmentData:improvement()
	return not not self._improvement
end

function EquipmentData:improvement_from()
	return self._improvement_from
end

function EquipmentData:special()
	return self._special
end

function EquipmentData:equippable(ship_type)
	local equipment_type = self:type()
	if not ship_type then
		local result = {}
		for ship_type, compatibility_table in pairs(self._equipment_compatibility) do
			result[ship_type] = compatibility_table[equipment_type]
		end
		return result
	else
		local compatibility_table = self._equipment_compatibility[ship_type]
		if compatibility_table then
			local compatibility = compatibility_table[equipment_type]
			if type(compatibility) ~= "table" then
				return compatibility
			else
				return compatibility.value, compatibility.note
			end
		end
	end
end

function EquipmentData:create(equip)
	equip = equip or {}
	setmetatable(equip, equip)
	equip.__index = self
	if equip._strict_name then
		equip._common_name = equip._name
		equip._name = tostring(mw.html.create('span'):addClass(self._mobile_hide_class):addClass(self._strict_translation_class):css(self._display_none_css):wikitext(equip._strict_name))
			 .. tostring(mw.html.create('span'):addClass(self._common_translation_class):wikitext(equip._common_name))
		if not equip._page then
			equip._page = equip._common_name
		end
	end
	if equip._localized_strict_name and equip._localized_name then
		equip._localized_common_name = equip._localized_name
		equip._localized_name = tostring(mw.html.create('span'):addClass(self._mobile_hide_class):addClass(self._strict_translation_class):css(self._display_none_css):wikitext(equip._localized_strict_name))
			 .. tostring(mw.html.create('span'):addClass(self._common_translation_class):wikitext(equip._localized_common_name))
	end
	if equip._list_strict_name and equip._list_name then
		equip._list_common_name = equip._list_name
		equip._list_name = tostring(mw.html.create('span'):addClass(self._mobile_hide_class):addClass(self._strict_translation_class):css(self._display_none_css):wikitext(equip._list_strict_name))
			 .. tostring(mw.html.create('span'):addClass(self._common_translation_class):wikitext(equip._list_common_name))
	end
	if equip._list_localized_strict_name and equip._list_localized_name then
		equip._list_localized_common_name = equip._list_localized_name
		equip._list_localized_name = tostring(mw.html.create('span'):addClass(self._mobile_hide_class):addClass(self._strict_translation_class):css(self._display_none_css):wikitext(equip._list_localized_strict_name))
			 .. tostring(mw.html.create('span'):addClass(self._common_translation_class):wikitext(equip._list_localized_common_name))
	end
	if equip._comparison_strict_name and equip._comparison_name then
		equip._comparison_common_name = equip._comparison_name
		equip._comparison_name = tostring(mw.html.create('span'):addClass(self._mobile_hide_class):addClass(self._strict_translation_class):css(self._display_none_css):wikitext(equip._comparison_strict_name))
			 .. tostring(mw.html.create('span'):addClass(self._common_translation_class):wikitext(equip._comparison_common_name))
	end
	if equip._comparison_localized_strict_name and equip._comparison_localized_name then
		equip._comparison_localized_common_name = equip._comparison_localized_name
		equip._comparison_localized_name = tostring(mw.html.create('span'):addClass(self._mobile_hide_class):addClass(self._strict_translation_class):css(self._display_none_css):wikitext(equip._comparison_localized_strict_name))
			 .. tostring(mw.html.create('span'):addClass(self._common_translation_class):wikitext(equip._comparison_localized_common_name))
	end
	if equip._library_strict_name and equip._library_name then
		equip._library_common_name = equip._library_name
		equip._library_name = tostring(mw.html.create('span'):addClass(self._mobile_hide_class):addClass(self._strict_translation_class):css(self._display_none_css):wikitext(equip._library_strict_name))
			 .. tostring(mw.html.create('span'):addClass(self._common_translation_class):wikitext(equip._library_common_name))
	end
	if equip._library_localized_strict_name and equip._library_localized_name then
		equip._library_localized_common_name = equip._library_localized_name
		equip._library_localized_name = tostring(mw.html.create('span'):addClass(self._mobile_hide_class):addClass(self._strict_translation_class):css(self._display_none_css):wikitext(equip._library_localized_strict_name))
			 .. tostring(mw.html.create('span'):addClass(self._common_translation_class):wikitext(equip._library_localized_common_name))
	end
	if equip._card_strict_name and equip._card_name then
		equip._card_common_name = equip._card_name
		equip._card_name = tostring(mw.html.create('span'):addClass(self._mobile_hide_class):addClass(self._strict_translation_class):css(self._display_none_css):wikitext(equip._card_strict_name))
			 .. tostring(mw.html.create('span'):addClass(self._common_translation_class):wikitext(equip._card_common_name))
	end
	if equip._card_localized_strict_name and equip._card_localized_name then
		equip._card_localized_common_name = equip._card_localized_name
		equip._card_localized_name = tostring(mw.html.create('span'):addClass(self._mobile_hide_class):addClass(self._strict_translation_class):css(self._display_none_css):wikitext(equip._card_localized_strict_name))
			 .. tostring(mw.html.create('span'):addClass(self._common_translation_class):wikitext(equip._card_localized_common_name))
	end
	return equip
end

EquipmentData.__call = EquipmentData.create

return EquipmentData