Module:EquipmentLink

local getArgs = require("Module:GetArgs") local U = require("Module:Utils") local F = require("Module:Formatting") local Equipment = require("Module:Equipment") local EquipmentCardKai = require("Module:EquipmentCardKai")

local EquipmentLink = {}

function EquipmentLink.format(frame, args)

args = args or getArgs{ frame = frame:getParent }

local name = args[1] or "??" local text = args[2] local link = args.link local image = args.image local icon = args.icon

local card = EquipmentCardKai:Asset({ name })

local formatted_link = image and EquipmentCardKai:Asset({ name, size = image, link = link or name }) or F:format_link(link or name, text or name)

local formatted_icon = "" if icon then local equipment = Equipment(name) formatted_icon = F:format_image{ F:format_equipment_icon(equipment:icon) } end

return F:class_span("advanced-tooltip", nil, formatted_icon .. formatted_link .. F:class_div("tooltip-contents", nil, card))

end

-- U.registerFormatTests(EquipmentLink, {   { "Prototype 51cm Twin Gun Mount" },    { "Type 4 Passive Sonar", link = "Sonar" },    { "Prototype 51cm Twin Gun Mount", "P51cm" },    { "Prototype 51cm Twin Gun Mount", image = "50px" },    { "Prototype 51cm Twin Gun Mount", icon = "x" },    { }, }) -- p.run_format_tests --

return EquipmentLink