• Welcome to the Kancolle Wiki!
  • If you have any questions regarding site content, account registration, etc., please visit the KanColle Wiki Discord

Changes

Jump to navigation Jump to search
no edit summary
Line 1: Line 1:  +
local _ = require('Module:Core')
 
local Formatting = require('Module:Formatting')
 
local Formatting = require('Module:Formatting')
 
local ShipAsset = require('Module:ShipAsset')
 
local ShipAsset = require('Module:ShipAsset')
   −
local split = require("Module:Utils").split
+
local ShipBattleCardKai =
 
+
  ShipAsset {
local ShipBattleCardKai = ShipAsset{
+
  _battle_card_size = '160x40px',
_battle_card_size = "160x40px",
+
  _battle_card_size_hd = '240x60px',
_battle_card_size_hd = "240x60px",
+
  _battle_card_layers = {
_battle_card_layers = {
+
    attack_hawk_r = {image = 'Abyssal_Patrolling_Attack_Hawk_574_Equipment.png', top = 8, left = 126, width = 30, height = 28},
attack_hawk_r = {image = "Abyssal_Patrolling_Attack_Hawk_574_Equipment.png", style = {top = "8px", left = "126px"}, size = "30x28px"},
+
    attack_hawk_r1 = {image = 'Abyssal_Patrolling_Attack_Hawk_574_Equipment.png', top = 13, left = 106, width = 30, height = 28},
attack_hawk_r1 = {image = "Abyssal_Patrolling_Attack_Hawk_574_Equipment.png", style = {top = "13px", left = "106px"}, size = "30x28px"},
+
    attack_hawk_r2 = {image = 'Abyssal_Patrolling_Attack_Hawk_574_Equipment.png', top = 1, left = 127, width = 30, height = 28},
attack_hawk_r2 = {image = "Abyssal_Patrolling_Attack_Hawk_574_Equipment.png", style = {top = "1px", left = "127px"}, size = "30x28px"},
+
    attack_seaplane_kai_r = {image = 'Abyssal Attack Seaplane Kai.png', top = 0, left = 120, width = 35, height = 35},
attack_seaplane_kai_r = {image = "Abyssal Attack Seaplane Kai.png", style = {top = "0px", left = "120px"}, size = "35x35px"},
+
    cat_night_r = {image = 'Abyssal_Night_Cat_Fighter_581_Equipment.png', top = 8, left = 126, width = 35, height = 30},
cat_night_r = {image = "Abyssal_Night_Cat_Fighter_581_Equipment.png", style = {top = "8px", left = "126px"}, size = "35x30px"},
+
    cat_night_r1 = {image = 'Abyssal_Night_Cat_Fighter_581_Equipment.png', top = 13, left = 106, width = 30, height = 28},
cat_night_r1 = {image = "Abyssal_Night_Cat_Fighter_581_Equipment.png", style = {top = "13px", left = "106px"}, size = "30x28px"},
+
    cat_night_r2 = {image = 'Abyssal_Night_Cat_Fighter_581_Equipment.png', top = 1, left = 127, width = 35, height = 30},
cat_night_r2 = {image = "Abyssal_Night_Cat_Fighter_581_Equipment.png", style = {top = "1px", left = "127px"}, size = "35x30px"},
+
    cat_r = {image = 'Hell plane 1.png', top = 8, left = 126, width = 25, height = 30},
cat_r = {image = "Hell plane 1.png", style = {top = "8px", left = "126px"}, size = "25x30px"},
+
    cat_r1 = {image = 'Hell plane 1.png', top = 13, left = 106, width = 25, height = 30},
cat_r1 = {image = "Hell plane 1.png", style = {top = "13px", left = "106px"}, size = "25x30px"},
+
    cat_r2 = {image = 'Hell plane 1.png', top = 1, left = 127, width = 25, height = 30},
cat_r2 = {image = "Hell plane 1.png", style = {top = "1px", left = "127px"}, size = "25x30px"},
+
    dive_night_r = {image = 'Abyssal_Night_Dive_Bomber_582_Equipment.png', top = 8, left = 126, width = 35, height = 30},
dive_night_r = {image = "Abyssal_Night_Dive_Bomber_582_Equipment.png", style = {top = "8px", left = "126px"}, size = "35x30px"},
+
    dive_night_r1 = {image = 'Abyssal_Night_Dive_Bomber_582_Equipment.png', top = 13, left = 106, width = 26, height = 26},
dive_night_r1 = {image = "Abyssal_Night_Dive_Bomber_582_Equipment.png", style = {top = "13px", left = "106px"}, size = "26x26px"},
+
    dive_night_r2 = {image = 'Abyssal_Night_Dive_Bomber_582_Equipment.png', top = 1, left = 127, width = 35, height = 30},
dive_night_r2 = {image = "Abyssal_Night_Dive_Bomber_582_Equipment.png", style = {top = "1px", left = "127px"}, size = "35x30px"},
+
    flagship = {image = 'Battle Card Flagship Icon.png', top = 2, right = 2, width = 18},
flagship = { image = "Battle Card Flagship Icon.png", top = 3, right = 3, width = 18 },
+
    hell = {image = 'Hell plane 2.png', top = 5, left = 50, width = 30},
hell = { image = "Hell plane 2.png", top = 5, left = 50, width = 30 },
+
    hell_cat_kai_r = {image = 'Abyssal_Cat_Fighter_Kai_556_Equipment.png', top = 8, left = 126, width = 35, height = 30},
hell_cat_kai_r = {image = "Abyssal_Cat_Fighter_Kai_556_Equipment.png", style = {top = "8px", left = "126px"}, size = "35x30px"},
+
    hell_cat_kai_r1 = {image = 'Abyssal_Cat_Fighter_Kai_556_Equipment.png', top = 5, left = 104, width = 35, height = 30},
hell_cat_kai_r1 = {image = "Abyssal_Cat_Fighter_Kai_556_Equipment.png", style = {top = "5px", left = "104px"}, size = "35x30px"},
+
    hell_cat_kai_r2 = {image = 'Abyssal_Cat_Fighter_Kai_556_Equipment.png', top = 1, left = 127, width = 35, height = 30},
hell_cat_kai_r2 = {image = "Abyssal_Cat_Fighter_Kai_556_Equipment.png", style = {top = "1px", left = "127px"}, size = "35x30px"},
+
    hell_kai_l1 = {image = 'Abyssal Hell Dive Bomber Kai.png', top = 5, left = 39, width = 35, height = 35},
hell_kai_l1 = {image = "Abyssal Hell Dive Bomber Kai.png", style = {top = "5px", left = "39px"}, size = "35x35px"},
+
    hell_kai_offset_l1 = {image = 'Abyssal Hell Dive Bomber Kai.png', top = 5, left = 39, width = 35, height = 35},
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', top = 5, left = 104, width = 35, height = 35},
hell_kai_offset_r1 = {image = "Abyssal Hell Dive Bomber Kai.png", style = {top = "5px", left = "104px"}, size = "35x35px"},
+
    hell_kai_r1 = {image = 'Abyssal Hell Dive Bomber Kai.png', top = 5, left = 104, width = 35, height = 35},
hell_kai_r1 = {image = "Abyssal Hell Dive Bomber Kai.png", style = {top = "5px", left = "104px"}, size = "35x35px"},
+
    hell_l1 = {image = 'Hell plane 2.png', top = 9, left = 44, width = 30},
hell_l1 = {image = "Hell plane 2.png", style = {top = "9px", left = "44px"}, size = "30x30px"},
+
    hell_offset_l1 = {image = 'Hell plane 2.png', top = 9, left = 44, width = 30},
hell_offset_l1 = {image = "Hell plane 2.png", style = {top = "9px", left = "44px"}, size = "30x30px"},
+
    hell_offset_r1 = {image = 'Hell plane 2.png', top = 9, left = 109, width = 30},
hell_offset_r1 = {image = "Hell plane 2.png", style = {top = "9px", left = "109px"}, size = "30x30px"},
+
    hell_r = {image = 'Hell plane 2.png', top = 5, left = 120, width = 30},
hell_r = {image = "Hell plane 2.png", style = {top = "5px", left = "120px"}, size = "30x30px"},
+
    hell_r1 = {image = 'Hell plane 2.png', top = 9, left = 109, width = 30},
hell_r1 = {image = "Hell plane 2.png", style = {top = "9px", left = "109px"}, size = "30x30px"},
+
    liberation_ace_r1 = {image = 'Abyssal Liberation Land-based Dive Bomber Ace 562 Equipment.png', top = 15, left = 104, width = 32, height = 24},
liberation_ace_r1 = {image = "Abyssal Liberation Land-based Dive Bomber Ace 562 Equipment.png", style = {top = "15px", left = "104px"}, size = "32x24px"},
+
    liberation_ace_r2 = {image = 'Abyssal Liberation Land-based Dive Bomber Ace 562 Equipment.png', top = 3, left = 125, width = 32, height = 24},
liberation_ace_r2 = {image = "Abyssal Liberation Land-based Dive Bomber Ace 562 Equipment.png", style = {top = "3px", left = "125px"}, size = "32x24px"},
+
    liberation_r = {image = 'Abyssal Liberation Land-based Dive Bomber 561 Equipment.png', top = 10, left = 120, width = 32, height = 24},
liberation_r = {image = "Abyssal Liberation Land-based Dive Bomber 561 Equipment.png", style = {top = "10px", left = "120px"}, size = "32x24px"},
+
    liberation_r1 = {image = 'Abyssal Liberation Land-based Dive Bomber 561 Equipment.png', top = 15, left = 104, width = 32, height = 24},
liberation_r1 = {image = "Abyssal Liberation Land-based Dive Bomber 561 Equipment.png", style = {top = "15px", left = "104px"}, size = "32x24px"},
+
    liberation_r2 = {image = 'Abyssal Liberation Land-based Dive Bomber 561 Equipment.png', top = 3, left = 125, width = 32, height = 24},
liberation_r2 = {image = "Abyssal Liberation Land-based Dive Bomber 561 Equipment.png", style = {top = "3px", left = "125px"}, size = "32x24px"},
+
    revenge_kai_l2 = {image = 'Abyssal Revenge Torpedo Bomber Kai.png', top = 0, left = 60, width = 35, height = 44},
revenge_kai_l2 = {image = "Abyssal Revenge Torpedo Bomber Kai.png", style = {top = "0px", left = "60px"}, size = "35x44px"},
+
    revenge_kai_offset_l2 = {image = 'Abyssal Revenge Torpedo Bomber Kai.png', top = 0, left = 60, width = 35, height = 44},
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', top = 0, left = 125, width = 35, height = 44},
revenge_kai_offset_r2 = {image = "Abyssal Revenge Torpedo Bomber Kai.png", style = {top = "0px", left = "125px"}, size = "35x44px"},
+
    revenge_kai_r1 = {image = 'Abyssal Revenge Torpedo Bomber Kai.png', top = 5, left = 104, width = 35, height = 44},
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', top = 0, left = 125, width = 35, height = 44},
revenge_kai_r2 = {image = "Abyssal Revenge Torpedo Bomber Kai.png", style = {top = "0px", left = "125px"}, size = "35x44px"},
+
    revenge_night_r = {image = 'Abyssal_Night_Revenge_Torpedo_Bomber_583_Equipment.png', top = 8, left = 126, width = 35, height = 30},
revenge_night_r = {image = "Abyssal_Night_Revenge_Torpedo_Bomber_583_Equipment.png", style = {top = "8px", left = "126px"}, size = "35x30px"},
+
    revenge_night_r1 = {image = 'Abyssal_Night_Revenge_Torpedo_Bomber_583_Equipment.png', top = 5, left = 104, width = 35, height = 30},
revenge_night_r1 = {image = "Abyssal_Night_Revenge_Torpedo_Bomber_583_Equipment.png", style = {top = "5px", left = "104px"}, size = "35x30px"},
+
    revenge_night_r2 = {image = 'Abyssal_Night_Revenge_Torpedo_Bomber_583_Equipment.png', top = 2, left = 128, width = 30},
revenge_night_r2 = {image = "Abyssal_Night_Revenge_Torpedo_Bomber_583_Equipment.png", style = {top = "2px", left = "128px"}, size = "30x30px"},
+
    revenge_r2 = {image = 'Hell plane 3.png', top = 3, left = 130, width = 30, height = 33},
revenge_r2 = {image = "Hell plane 3.png", style = {top = "3px", left = "130px"}, size = "30x33px"},
+
    ring = {image = 'Battle Card Marriage Ring.png', top = 19, left = 138},
ring = {image = "Battle Card Marriage Ring.png", style = {top = "19px", left = "138px"}},
+
    ring_glow = {image = 'Battle Card Marriage Ring Glow.png', top = 10, left = 126, opacity = 0.7},
ring_glow = {image = "Battle Card Marriage Ring Glow.png", style = {top = "10px", left = "126px", opacity = "0.7"}},
+
    smudge_heavy = {image = 'Battle Card Smudge Heavy.png', top = 0, left = 0},
smudge_heavy = {image = "Battle Card Smudge Heavy.png", style = {top = "0px", left = "0px"}},
+
    smudge_light = {image = 'Battle Card Smudge Light.png', top = 0, left = 0},
smudge_light = {image = "Battle Card Smudge Light.png", style = {top = "0px", left = "0px"}},
+
    smudge_medium = {image = 'Battle Card Smudge Medium.png', top = 0, left = 0},
smudge_medium = {image = "Battle Card Smudge Medium.png", style = {top = "0px", left = "0px"}},
+
    status_expedition = {image = 'Battle Card Status Expedition.png', top = 0, left = 0, width = 160, height = 40},
status_expedition = {image = "Battle Card Status Expedition.png", top = 0, left = 0, width = 160, height = 40 },
+
    status_heavy_damage = {image = 'Battle Card Status Heavy Damage.png', top = 0, left = 0, width = 160, height = 40},
status_heavy_damage = {image = "Battle Card Status Heavy Damage.png", top = 0, left = 0, width = 160, height = 40 },
+
    status_heavy_damage_installation = {image = 'Battle Card Status Heavy Damage Installation.png', top = 0, left = 0, width = 160, height = 40},
status_heavy_damage_installation = {image = "Battle Card Status Heavy Damage Installation.png", top = 0, left = 0, width = 160, height = 40 },
+
    status_light_damage = {image = 'Battle Card Status Light Damage.png', top = 0, left = 0, width = 160, height = 40},
status_light_damage = {image = "Battle Card Status Light Damage.png", top = 0, left = 0, width = 160, height = 40 },
+
    status_light_damage_installation = {image = 'Battle Card Status Light Damage Installation.png', top = 0, left = 0, width = 160, height = 40},
status_light_damage_installation = {image = "Battle Card Status Light Damage Installation.png", top = 0, left = 0, width = 160, height = 40 },
+
    status_medium_damage = {image = 'Battle Card Status Medium Damage.png', top = 0, left = 0, width = 160, height = 40},
status_medium_damage = {image = "Battle Card Status Medium Damage.png", top = 0, left = 0, width = 160, height = 40 },
+
    status_medium_damage_installation = {image = 'Battle Card Status Medium Damage Installation.png', top = 0, left = 0, width = 160, height = 40},
status_medium_damage_installation = {image = "Battle Card Status Medium Damage Installation.png", top = 0, left = 0, width = 160, height = 40 },
+
    status_repair = {image = 'Battle Card Status Repair.png', top = 0, left = 0, width = 160, height = 40},
status_repair = {image = "Battle Card Status Repair.png", top = 0, left = 0, width = 160, height = 40 },
+
    status_retreat = {image = 'Battle Card Status Retreat.png', top = 0, left = 0, width = 160, height = 40},
status_retreat = {image = "Battle Card Status Retreat.png", top = 0, left = 0, width = 160, height = 40 },
+
    status_sunk = {image = 'Battle Card Status Sunk.png', top = 0, left = 0, width = 160, height = 40},
status_sunk = {image = "Battle Card Status Sunk.png", top = 0, left = 0, width = 160, height = 40 },
+
    status_sunk_installation = {image = 'Battle Card Status Sunk Installation.png', top = 0, left = 0, width = 160, height = 40},
status_sunk_installation = {image = "Battle Card Status Sunk Installation.png", top = 0, left = 0, width = 160, height = 40 },
+
    takoyaki = {image = 'Hell plane 2.png', top = 5, left = 50, width = 30}
takoyaki = {image = "Hell plane 2.png", style = {top = "5px", left = "50px"}, size = "30x30px"},
+
  }
},
   
}
 
}
    
function ShipBattleCardKai:get_source(ship, args)
 
function ShipBattleCardKai:get_source(ship, args)
return args.damaged and ship:battle_card_damaged(true) or ship:battle_card(true)
+
  return args.damaged and ship:battle_card_damaged(true) or ship:battle_card(true)
 
end
 
end
    
local function scaleLayer(hd, layer)
 
local function scaleLayer(hd, layer)
    local top, left, right, width, height = layer.top, layer.left, layer.right, layer.width, layer.height or layer.width
+
  local top, left, right, width, height = layer.top, layer.left, layer.right, layer.width, layer.height or layer.width
    layer.style = layer.style or {}
+
  layer.style = layer.style or {}
    if top then
+
  if top then
        layer.style.top = top * (hd and 1.5 or 1) .. 'px'
+
    layer.style.top = top * (hd and 1.5 or 1) .. 'px'
    end
+
  end
    if left then
+
  if left then
        layer.style.left = left * (hd and 1.5 or 1) .. 'px'
+
    layer.style.left = left * (hd and 1.5 or 1) .. 'px'
    end
+
  end
    if right then
+
  if right then
        layer.style.right = right * (hd and 1.5 or 1) .. 'px'
+
    layer.style.right = right * (hd and 1.5 or 1) .. 'px'
    end
+
  end
    if width then
+
  if width then
        layer.size = width * (hd and 1.5 or 1) .. 'x' .. height * (hd and 1.5 or 1) .. 'px'
+
    layer.size = width * (hd and 1.5 or 1) .. 'x' .. height * (hd and 1.5 or 1) .. 'px'
     end
+
  end
    return layer
+
  if layer.opacity then
 +
     layer.style.opacity = tostring(layer.opacity)
 +
  end
 +
  return layer
 
end
 
end
   −
function ShipBattleCardKai:get_layer(hd, layer_name)
+
function ShipBattleCardKai:get_layer(hd, name)
    return scaleLayer(hd, self._battle_card_layers[layer_name])
+
  return scaleLayer(hd, self._battle_card_layers[name])
 
end
 
end
    
function ShipBattleCardKai:get(ship, args, link)
 
function ShipBattleCardKai:get(ship, args, link)
if not args then
+
  if not args then
args = ship
+
    args = ship
ship = args.ship
+
    ship = args.ship
link = args.link
+
    link = args.link
end
+
  end
args[1] = self:get_source(ship, args)
+
  args[1] = self:get_source(ship, args)
if not args.size then
+
  if not args.size then
args.size = args.hd and self._battle_card_size_hd or self._battle_card_size
+
    args.size = args.hd and self._battle_card_size_hd or self._battle_card_size
end
+
  end
if not args.caption then
+
  if not args.caption then
ship:name()
+
    ship:name()
end
+
  end
args.link = link
+
  args.link = link
local image = Formatting:format_image(args)
+
  local image = Formatting:format_image(args)
local ship_layers = ship:battle_card_layers()
+
  local ship_layers = ship:battle_card_layers()
if ship_layers or args.flagship or args.layers or args.grayscale then
+
  if ship_layers or args.flagship or args.layers or args.grayscale then
local stack = self:_create_stack(image, args.grayscale)
+
    local stack = self:_create_stack(image, args.grayscale)
if ship_layers then
+
    if ship_layers then
for _, layer in ipairs(ship_layers) do
+
      for i, name in ipairs(ship_layers) do
self:_add_layer(stack, self:get_layer(args.hd, layer), ship, args, link)
+
        self:_add_layer(stack, self:get_layer(args.hd, name), ship, args, link)
end
+
      end
end
+
    end
if args.flagship then
+
    if args.flagship then
self:_add_layer(stack, self:get_layer(args.hd, "flagship"), ship, args, link)
+
      self:_add_layer(stack, self:get_layer(args.hd, 'flagship'), ship, args, link)
end
+
    end
if args.layers then
+
    if args.layers then
for _, layer in ipairs(split(args.layers)) do
+
      for i, name in ipairs(_.split(args.layers)) do
if self:get_layer(args.hd, layer) then
+
        local layer = self:get_layer(args.hd, name)
self:_add_layer(stack, self:get_layer(args.hd, layer), ship, args, link)
+
        if layer then
end
+
          self:_add_layer(stack, layer, ship, args, link)
end
+
        end
end
+
      end
image = tostring(stack)
+
    end
end
+
    image = tostring(stack)
return image
+
  end
 +
  return image
 
end
 
end
    
function ShipBattleCardKai.formatLayerTestTable()
 
function ShipBattleCardKai.formatLayerTestTable()
    local _ = require('Module:Core')
+
  local parts = {'{|\n!Code!!SD!!HD'}
    local parts = { '{|\n!Code!!SD!!HD' }
+
  for _, layer in ipairs(_.isort(_.keys(ShipBattleCardKai._battle_card_layers))) do
    for _, layer in ipairs(_.isort(_.keys(ShipBattleCardKai._battle_card_layers))) do
+
    table.insert(
        table.insert(parts, string.format(
+
      parts,
            '|-\n!%s\n|%s\n|%s',
+
      string.format(
            layer,
+
        '|-\n!%s\n|%s\n|%s',
            ShipBattleCardKai:Asset({ 'Taihou/Kai', layers = layer }),
+
        layer,
            ShipBattleCardKai:Asset({ 'Taihou/Kai', layers = layer, hd = 'true' })
+
        ShipBattleCardKai:Asset({'Taihou/Kai', layers = layer}),
        ))
+
        ShipBattleCardKai:Asset({'Taihou/Kai', layers = layer, hd = 'true'})
    end
+
      )
    table.insert(parts, '|}')
+
    )
    return table.concat(parts, '\n')
+
  end
 +
  table.insert(parts, '|}')
 +
  return table.concat(parts, '\n')
 
end
 
end
    
return ShipBattleCardKai
 
return ShipBattleCardKai
cssedit, gkautomate
7,064

edits

Navigation menu