Module:ShipBattleCardKai

local Formatting = require('Module:Formatting')

local split = require("Module:StringOperations").split

local ShipBattleCardKai = ShipAsset{ _battle_card_size = "160x40px", _battle_card_layers = { takoyaki = {image = "Hell plane 2.png", style = {top = "5px", left = "50px"}, size = "30x30px"}, hell = {image = "Hell plane 2.png", style = {top = "5px", left = "50px"}, size = "30x30px"}, hell_r = {image = "Hell plane 2.png", style = {top = "5px", left = "120px"}, size = "30x30px"}, hell_l1 = {image = "Hell plane 2.png", style = {top = "9px", left = "44px"}, size = "30x30px"}, hell_r1 = {image = "Hell plane 2.png", style = {top = "9px", left = "109px"}, size = "30x30px"}, hell_offset_l1 = {image = "Hell plane 2.png", style = {top = "9px", left = "44px"}, size = "30x30px"}, hell_offset_r1 = {image = "Hell plane 2.png", style = {top = "9px", left = "109px"}, size = "30x30px"}, flagship = {image = "Flagship battle card icon.png", style = {top = "3px", left = "139px"}}, revenge_r2 = {image = "Hell plane 3.png", style = {top = "3px", left = "130px"}, size = "30x33px"}, revenge_kai_l2 = {image = "Abyssal Revenge Torpedo Bomber Kai.png", style = {top = "0px", left = "60px"}, size = "35x44px"}, revenge_kai_r1 = {image = "Abyssal Revenge Torpedo Bomber Kai.png", style = {top = "5px", left = "104px"}, size = "35x44px"}, revenge_kai_r2 = {image = "Abyssal Revenge Torpedo Bomber Kai.png", style = {top = "0px", left = "125px"}, size = "35x44px"}, revenge_kai_offset_l2 = {image = "Abyssal Revenge Torpedo Bomber Kai.png", style = {top = "0px", left = "60px"}, size = "35x44px"}, revenge_kai_offset_r2 = {image = "Abyssal Revenge Torpedo Bomber Kai.png", style = {top = "0px", left = "125px"}, size = "35x44px"}, hell_kai_l1 = {image = "Abyssal Hell Dive Bomber Kai.png", style = {top = "5px", left = "39px"}, size = "35x35px"}, hell_kai_r1 = {image = "Abyssal Hell Dive Bomber Kai.png", style = {top = "5px", left = "104px"}, size = "35x35px"}, hell_kai_offset_l1 = {image = "Abyssal Hell Dive Bomber Kai.png", style = {top = "5px", left = "39px"}, size = "35x35px"}, hell_kai_offset_r1 = {image = "Abyssal Hell Dive Bomber Kai.png", style = {top = "5px", left = "104px"}, size = "35x35px"}, attack_seaplane_kai_r = {image = "Abyssal Attack Seaplane Kai.png", style = {top = "0px", left = "120px"}, size = "35x35px"}, status_expedition = {image = "Battle Card Status Expedition.png", style = {top = "0px", left = "0px"}}, status_repair = {image = "Battle Card Status Repair.png", style = {top = "0px", left = "0px"}}, status_light_damage = {image = "Battle Card Status Light Damage.png", style = {top = "0px", left = "0px"}}, status_medium_damage = {image = "Battle Card Status Medium Damage.png", style = {top = "0px", left = "0px"}}, status_heavy_damage = {image = "Battle Card Status Heavy Damage.png", style = {top = "0px", left = "0px"}}, status_sunk = {image = "Battle Card Status Sunk.png", style = {top = "0px", left = "0px"}}, status_light_damage_installation = {image = "Battle Card Status Light Damage Installation.png", style = {top = "0px", left = "0px"}}, status_medium_damage_installation = {image = "Battle Card Status Medium Damage Installation.png", style = {top = "0px", left = "0px"}}, status_heavy_damage_installation = {image = "Battle Card Status Heavy Damage Installation.png", style = {top = "0px", left = "0px"}}, status_sunk_installation = {image = "Battle Card Status Sunk Installation.png", style = {top = "0px", left = "0px"}}, smudge_light = {image = "Battle Card Smudge Light.png", style = {top = "0px", left = "0px"}}, smudge_medium = {image = "Battle Card Smudge Medium.png", style = {top = "0px", left = "0px"}}, smudge_heavy = {image = "Battle Card Smudge Heavy.png", style = {top = "0px", left = "0px"}}, ring = {image = "Battle Card Marriage Ring.png", style = {top = "19px", left = "138px"}}, ring_glow = {image = "Battle Card Marriage Ring Glow.png", style = {top = "10px", left = "126px", opacity = "0.7"}}, }, }

function ShipBattleCardKai:get_source(ship, args) return args.damaged and ship:battle_card_damaged or ship:battle_card end

function ShipBattleCardKai:get(ship, args, link) if not args then args = ship ship = args.ship end local image = Formatting:format_image{self:get_source(ship, args), size = args.size or self._battle_card_size, link = link, caption = args.caption} local ship_layers = ship:battle_card_layers if ship_layers or args.flagship or args.layers or args.grayscale then local stack = self:_create_stack(image, args.grayscale) if ship_layers then for _, layer in ipairs(ship_layers) do				self:_add_layer(stack, self._battle_card_layers[layer], ship, args) end end if args.flagship then self:_add_layer(stack, self._battle_card_layers.flagship, ship, args) end if args.layers then for _, layer in ipairs(split(args.layers)) do				if self._battle_card_layers[layer] then self:_add_layer(stack, self._battle_card_layers[layer], ship, args) end end end image = tostring(stack) end return image end

return ShipBattleCardKai