- Welcome to the Kancolle Wiki!
- If you have any questions regarding site content, account registration, etc., please visit the KanColle Wiki Discord
Module:EquipmentData
Revision as of 11:24, 30 June 2015 by com>Ckwng (Fix link, rename upgradable to improvement)
Documentation for this module may be created at Module:EquipmentData/doc
local BaseData = require("Module:BaseData")
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,
},
[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,
},
[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] = 0,
[23] = 1,
[24] = 0,
[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,
},
[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,
},
[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,
},
[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,
},
[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,
},
[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,
},
[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,
},
[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,
},
[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,
},
[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,
},
[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,
},
[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,
},
[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,
},
[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,
},
[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,
},
[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,
},
[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,
},
[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,
},
[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,
},
}
})
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:link()
if self._page then
return self._page, self:name()
end
return self:name()
end
function EquipmentData:id()
return self._id
end
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()
return self._card
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
return equip
end
EquipmentData.__call = EquipmentData.create
return EquipmentData