Documentation for this module may be created at Module:NanaminFleet/doc
local Ship = require('Module:Ship')
local Equipment = require('Module:Equipment')
local Formatting = require('Module:Formatting')
local format = require('Module:StringInterpolation').format
local NanaminFleet = {
_template = [[{| class="mw-collapsible mw-collapsed"
| style="background: lightskyblue;" |Ship
| style="background: lightskyblue;" |Equipment
| style="background: lightskyblue;" |Ship
| style="background: lightskyblue;" |Equipment
|-
| rowspan="4" style="background: whitesmoke;" |${ship_card1}
${ship_equips1}
| rowspan="4" style="background: whitesmoke;" |${ship_card4}
${ship_equips4}
|-
| rowspan="4" style="background: whitesmoke;" |${ship_card2}
${ship_equips2}
| rowspan="4" style="background: whitesmoke;" |${ship_card5}
${ship_equips5}
|-
| rowspan="4" style="background: whitesmoke;" |${ship_card3}
${ship_equips3}
| rowspan="4" style="background: whitesmoke;" |${ship_card6}
${ship_equips6}
|}]],
_slot_template = [[|-
| style="background: whitesmoke;" |${icon} ${equip}
| style="background: whitesmoke;" |${plane_count}
]]
}
function NanaminFleet:ship_card(ship)
return Formatting:format_image{ship:card()}
end
function NanaminFleet:slot_equipment(ship)
local slots = {}
local ship_slot_count = ship:slots()
for i = 1, 4 do
local equip, plane_count, icon, equip_type
if i > ship_slot_count then
equip, plane_count, icon, equip_type = "- Locked -", "-", 0, false
else
equip, plane_count = ship:slot(i)
equip = Equipment:create(ship.equip[i].name)
if equip then
icon = equip:icon()
equip_type = false
equip = Formatting:format_link(equip:link())
else
icon = false
equip_type = false
equip = "- Unequipped -"
plane_count = 0
end
icon = Formatting:format_image{Formatting:format_equipment_icon(icon), caption = Formatting:format_equipment_type(equip_type)}
end
table.insert(slots, format{self._slot_template,
icon = icon,
equip = equip,
plane_count = plane_count
})
end
return table.concat(slots)
end
function NanaminFleet:Infobox(args)
local ships = {}
local vars = {}
for i = 1, 6 do
ships[i] = Ship(args["ship" .. tostring(i)], args["ship" .. tostring(i) .. "_remodel"])
--Get the equips categorized under each ship specifically so the ship number doesn't have to be passed.
ships[i].equip = {}
for a = 1, 4 do
ships[i].equip[a] = args["ship" .. tostring(i) .. "_equip" .. tostring(a)]
end
vars["ship_card" .. i] = self:ship_card(ships[i])
vars["ship_equips" .. i] = self:slot_equipment(ships[i])
end
mw.log(format(self._template, vars))
return format(self._template, vars)
end
return NanaminFleet