Module:Duel Monsters 5 card

From Yugipedia
Jump to: navigation, search
Card = require('Module:Card')

-- Extra traits that apply to cards in this game
require('Module:Card/traits/implicit Normal and Effect')
require('Module:Card/traits/has sets')

local Parent = mw.clone(Card)



-- ------------------------------------
-- Overwrite `Module:Card` data
-- ------------------------------------
Card.config.defaultImage    = 'DM5-Box-JP.jpg'
Card.config.enableMainLinks = true
Card.config.footerText      = "''[[Yu-Gi-Oh! Duel Monsters 5: Expert 1]]'' cards "
	.. "([[List of Yu-Gi-Oh! Duel Monsters 5: Expert 1 cards|list]] '''·''' "
	.. "[[Gallery of Yu-Gi-Oh! Duel Monsters 5: Expert 1 cards|gallery]])"

-- Card.config.icons.level       = '[[File:Level-DM5.png|7px|alt=]]'
Card.config.icons.effect      = '[[File:Effect Monster-DM5.png|16px|Effect|alt=]]'
Card.config.icons.cardTypes   = '[[File:{$cardType}-card type-DM5.png|16px|alt=]]'
Card.config.icons.properties  = '[[File:{$property}-Property-DM5.png|16px|alt=]]'
Card.config.icons.attributes  = '[[File:{$attribute}-Attribute-DM5.png|16px|alt=]]'
Card.config.icons.types       = '[[File:{$type}-Type-DM5.png|16px|{$type}|alt=]]'
Card.config.icons.summonTypes = '[[File:{$type} Monster-DM5.png|16px|{$type}|alt=]]'

Card.config.langs           = { 'en', 'ja' }
Card.config.rows            = {
	'cardType',
	'property',
	'attribute',
	'type',
	'level',
	'atkDef',
	'effectType',
	'number',
	'internalNumber',
	'lore',
	'limitationText',
	'password'
}
Card.config.allowedCardTypes = { 'Monster', 'Magic', 'Trap', 'Token', 'Ticket' }
Card.config.allowedAttributes = {
	'LIGHT', 'DARK', 'EARTH', 'WATER', 'FIRE', 'WIND', 'DIVINE'
}
Card.config.allowedTypes = {
	'Dragon', 'Spellcaster', 'Zombie', 'Warrior', 'Beast-Warrior', 'Beast',
	'Winged Beast', 'Fiend', 'Fairy', 'Insect', 'Dinosaur', 'Reptile', 'Fish',
	'Sea Serpent', 'Machine', 'Thunder', 'Aqua', 'Pyro', 'Rock', 'Plant',
	'Fusion', 'Ritual', 'Special Summon',
	'Flip', 'Toon',
	'Effect',
	'Token',
}

-- Configuration for the sets trait
Card.setsConfig.breakdown = {
	{
		abbr      = 'dm5',
		shortName = 'Duel Monsters 5',
		name      = 'Yu-Gi-Oh! Duel Monsters 5: Expert 1'
	},
}
Card.setsConfig.uses.releaseDates = false
Card.setsConfig.uses.cardNumbers = false
Card.setsConfig.uses.artworks = true
Card.setsConfig.uses.rarities = true

-- Add categories
table.insert(Card.categories, 'Yu-Gi-Oh! Duel Monsters 5: Expert 1 cards')



-- ------------------------------------
-- Override existing methods
-- ------------------------------------

-- Override the `setData` method.
-- Extend to also set some DM5-specific stuff
function Card:setData(args)
	-- Call the original function
	Parent.setData(self, args)

	self.number2 = args.number2;
	self.internalNumber = args.internal_number;
	self.internalNumber2 = args.internal_number2;
	self:setImages()
end



-- ------------------------------------
-- Add custom functions
-- ------------------------------------
-- Determine images automatically
function Card:setImages()
	-- Add the first artwork to the list of images.
	table.insert(self.images, {
		image     = self.cardImageName .. '-DM5-JP-VG.png',
		artwork   = 1,
		isCurrent = true
	})

	-- If there is a second artwork, add it too.
	if (self.number2 or self.internalNumber2) then
		table.insert(self.images, {
			image     = self.cardImageName .. '-DM5-JP-VG-2.png',
			artwork   = 2,
			isCurrent = false
		})
	end
end

function Card:addInternalNumberRow()
	self:addRow('Internal number', self.internalNumber)
end


return Card