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

Difference between revisions of "Module:ShipCardKai"

From Kancolle Wiki
Jump to navigation Jump to search
com>Ckwng
m (40 revisions imported)
 
(36 intermediate revisions by 3 users not shown)
Line 1: Line 1:
local Ship = require('Module:Ship')
 
 
local Formatting = require('Module:Formatting')
 
local Formatting = require('Module:Formatting')
 +
local ShipAsset = require('Module:ShipAsset')
  
local ShipCardKai = {
+
local split = require("Module:Core").split
 +
 
 +
local ShipCardKai = ShipAsset{
 
_card_size = "218x300px",
 
_card_size = "218x300px",
_battle_card_size = "160x40px",
+
_card_size_hd = "327x450px",
 +
_card_layers = {
 +
status_expedition = {image = "Card Status Expedition.png", style = {top = "229px", left = "133px"}},
 +
status_repair = {image = "Card Status Repair.png", style = {top = "228px", left = "133px"}},
 +
status_light_damage = {image = "Card Status Light Damage.png", style = {top = "228px", left = "133px"}},
 +
status_medium_damage = {image = "Card Status Medium Damage.png", style = {top = "228px", left = "133px"}},
 +
status_heavy_damage = {image = "Card Status Heavy Damage.png", style = {top = "228px", left = "133px"}},
 +
status_sunk = {image = "Card Status Sunk.png", style = {top = "228px", left = "133px"}},
 +
ring = {image = "Card Marriage Ring.png", style = {top = "260px", left = "180px"}},
 +
ring_glow = {image = "Card Marriage Ring Glow.png", style = {top = "254px", left = "170px", opacity = "0.7"}},
 +
},
 
}
 
}
  
function ShipCardKai:_card(ship, args)
+
function ShipCardKai:get_source(ship, args)
return Formatting:format_image{ship:card(), size = args.size or self._card_size, link = args.link, caption = args.caption}
+
return args.damaged and ship:card_damaged(args.hd) or ship:card(args.hd)
end
 
 
 
function ShipCardKai:Card(args)
 
local ship = self:create_ship(args)
 
return self:_card(ship, args)
 
end
 
 
 
function ShipCardKai:_battle_card(ship, args)
 
return Formatting:format_image{ship:battle_card(), size = args.size or self._battle_card_size, link = args.link, caption = args.caption}
 
end
 
 
 
function ShipCardKai:BattleCard(args)
 
local ship = self:create_ship(args)
 
return self:_battle_card(ship, args)
 
 
end
 
end
  
function ShipCardKai:create_ship(args)
+
function ShipCardKai:get(ship, args, link)
return Ship(args.name, args.model)
+
if not args then
 +
args = ship
 +
ship = args.ship
 +
link = args.link
 +
end
 +
args[1] = self:get_source(ship, args)
 +
if not args.size then
 +
args.size = args.hd and self._card_size_hd or self._card_size
 +
end
 +
args.link = link
 +
local image = Formatting:format_image(args)
 +
if args.layers or args.grayscale then
 +
local stack = self:_create_stack(image, args.grayscale)
 +
if args.layers then
 +
for _, layer in ipairs(split(args.layers)) do
 +
if self._card_layers[layer] then
 +
self:_add_layer(stack, self._card_layers[layer], ship, args, link)
 +
end
 +
end
 +
end
 +
image = tostring(stack)
 +
end
 +
return image
 
end
 
end
  
 
return ShipCardKai
 
return ShipCardKai

Latest revision as of 12:29, 12 May 2021

Documentation for this module may be created at Module:ShipCardKai/doc

local Formatting = require('Module:Formatting')
local ShipAsset = require('Module:ShipAsset')

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

local ShipCardKai = ShipAsset{
	_card_size = "218x300px",
	_card_size_hd = "327x450px",
	_card_layers = {
		status_expedition = {image = "Card Status Expedition.png", style = {top = "229px", left = "133px"}},
		status_repair = {image = "Card Status Repair.png", style = {top = "228px", left = "133px"}},
		status_light_damage = {image = "Card Status Light Damage.png", style = {top = "228px", left = "133px"}},
		status_medium_damage = {image = "Card Status Medium Damage.png", style = {top = "228px", left = "133px"}},
		status_heavy_damage = {image = "Card Status Heavy Damage.png", style = {top = "228px", left = "133px"}},
		status_sunk = {image = "Card Status Sunk.png", style = {top = "228px", left = "133px"}},
		ring = {image = "Card Marriage Ring.png", style = {top = "260px", left = "180px"}},
		ring_glow = {image = "Card Marriage Ring Glow.png", style = {top = "254px", left = "170px", opacity = "0.7"}},
	},
}

function ShipCardKai:get_source(ship, args)
	return args.damaged and ship:card_damaged(args.hd) or ship:card(args.hd)
end

function ShipCardKai:get(ship, args, link)
	if not args then
		args = ship
		ship = args.ship
		link = args.link
	end
	args[1] = self:get_source(ship, args)
	if not args.size then
		args.size = args.hd and self._card_size_hd or self._card_size
	end
	args.link = link
	local image = Formatting:format_image(args)
	if args.layers or args.grayscale then
		local stack = self:_create_stack(image, args.grayscale)
		if args.layers then
			for _, layer in ipairs(split(args.layers)) do
				if self._card_layers[layer] then
					self:_add_layer(stack, self._card_layers[layer], ship, args, link)
				end
			end
		end
		image = tostring(stack)
	end
	return image
end

return ShipCardKai