Changes
Implement availability and impl date
_artist_header = "[[Glossary#List of Vessels by Artist|Artist]]",
_artist_header = "[[Glossary#List of Vessels by Artist|Artist]]",
_class_template = "[[:Category:${ship_class}|]]",
_class_template = "[[:Category:${ship_class}|]]",
_normal_construction_label = "Normal",
_large_ship_construction_label = "LSC",
_buildable_label = "Construction",
_drop_label = "Drop",
_details_template = " ${details}",
_event_reward_label = "Event Reward",
_event_drop_label = "Event Drop",
_node_name_template = "${world}-${map}-${node}",
_node_formation_template = "-${formation}",
_event_node_name_template = "${year} ${quarter} E-${map}-${node}",
_quarters = {
[1] = "Winter",
[4] = "Spring",
[7] = "Summer",
[10] = "Fall",
},
_difficulties = {
[0] = "All",
[1] = "Easy",
[2] = "Medium",
[3] = "Hard",
},
_fields = {
_fields = {
"name",
"name",
function ShipMetaKai:availability()
function ShipMetaKai:availability()
local availability = self._ship:availability()
local result = {}
for _, method in ipairs(availability) do
if method == "buildable" then
local details = {}
if availability.buildable.normal then
table.insert(details, self._normal_construction_label)
end
if availability.buildable.lsc then
table.insert(details, self._large_ship_construction_label)
end
if #details > 0 then
details = format{self._details_template, details = table.concat(details, ", ")}
else
details = ""
end
table.insert(result, self._buildable_label .. details)
elseif method == "drop" then
local details = {}
if availability.drop then
for _, node in availability.drop do
local node_name = format{self._node_name_template, world = node[1], map = node[2], node = node[3]}
if #node == 4 then
node_name = node_name .. format{self._node_formation_template, formation = node[4]}
end
table.insert(details, node_name)
end
end
if #details > 0 then
details = format{self._details_template, details = table.concat(details, ", ")}
else
details = ""
end
table.insert(result, self._drop_label .. details)
elseif method == "event_reward" then
local details = {}
if availability.event_reward then
for _, map in availability.event_reward do
local map_name = format{self._map_name_template, year = map[1], quarter = self._quarters[node[2]], map = map[3]}
if #map == 4 then
map_name = map_name .. format{self._details_template, details = self._difficulties[map[4]]}
end
table.insert(details, map_name)
end
end
if #details > 0 then
details = format{self._details_template, details = table.concat(details, ", ")}
else
details = ""
end
table.insert(result, self._event_reward_label .. details)
elseif method == "event_drop" then
local details = {}
if availability.event_drop then
for _, node in availability.drop do
local node_name = format{self._event_node_name_template, year = node[1], quarter = self._quarters[node[2]], map = node[3], node = node[4]}
if #node == 5 then
node_name = node_name .. format{self._node_formation_template, formation = node[5]}
end
table.insert(details, node_name)
end
end
if #details > 0 then
details = format{self._details_template, details = table.concat(details, ", ")}
else
details = ""
end
table.insert(result, self._event_drop_label .. details)
end
end
self._vars.availability = table.concat(result, "<br/>")
end
end
function ShipMetaKai:implementation_date()
function ShipMetaKai:implementation_date()
local implementation_date = self._ship:implementation_date()
self._vars.implementation_date = format{self._date_template, year = implementation_date[1], month = implementation_date[2], day = implementation_date[3]}
end
end