Module:Icons

From Sekaipedia
Revision as of 03:10, 31 July 2021 by ChaoticShadow (talk | contribs)

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

local getArgs = require('Module:Arguments').getArgs
local constants = require('Module:Constants')
local p = {}

local icons = {
	-- Characters
		-- VIRTUAL SINGER
		['vs miku']  = 'Miku-chibi-circle.png',
		['vs rin']   = 'Rin-chibi-circle.png',
		['vs len']   = 'Len-chibi-circle.png',
		['vs luka']  = 'Luka-chibi-circle.png',
		['vs meiko'] = 'Meiko-chibi-circle.png',
		['vs kaito'] = 'Kaito-chibi-circle.png',
		
		-- Leo/need
		['ichika'] = 'Ichika-chibi-circle.png',
		['saki']   = 'Saki-chibi-circle.png',
		['honami'] = 'Honami-chibi-circle.png',
		['shiho']  = 'Shiho-chibi-circle.png',
		['l/n miku'] = 'Leoneed-miku-chibi-circle.png',
		['l/n luka'] = 'Leoneed-luka-chibi-circle.png',
		
		-- MORE MORE JUMP!
		['minori']  = 'Minori-chibi-circle.png',
		['haruka']  = 'Haruka-chibi-circle.png',
		['airi']    = 'Airi-chibi-circle.png',
		['shizuku'] = 'Shizuku-chibi-circle.png',
		['mmj miku'] = 'Mmj-miku-chibi-circle.png',
		['mmj rin']  = 'Mmj-rin-chibi-circle.png',
		
		-- Vivid BAD SQUAD
		['kohane'] = 'Kohane-chibi-circle.png',
		['an']     = 'An-chibi-circle.png',
		['akito']  = 'Akito-chibi-circle.png',
		['toya']   = 'Toya-chibi-circle.png',
		['vbs miku']  = 'Vbs-miku-chibi-circle.png',
		['vbs len']   = 'Vbs-len-chibi-circle.png',
		['vbs meiko'] = 'Vbs-meiko-chibi-circle.png',
		
		-- Wonderlands×Showtime
		['tsukasa'] = 'Tsukasa-chibi-circle.png',
		['emu']     = 'Emu-chibi-circle.png',
		['nene']    = 'Nene-chibi-circle.png',
		['rui']     = 'Rui-chibi-circle.png',
		['wxs miku']  = 'Wxs-miku-chibi-circle.png',
		['wxs kaito'] = 'Wxs-kaito-chibi-circle.png',
		
		-- 25-ji, Night Code de.
		['kanade'] = 'Kanade-chibi-circle.png',
		['mafuyu'] = 'Mafuyu-chibi-circle.png',
		['ena']    = 'Ena-chibi-circle.png',
		['mizuki'] = 'Mizuki-chibi-circle.png',
		['25ji miku'] = '25ji-miku-chibi-circle.png',
	
	-- Unit
	['VIRTUAL SINGER']        = 'VIRTUAL SINGER icon.svg',
	['Leo/need']              = 'Leoneed icon.svg',
	['MORE MORE JUMP!']       = 'MORE MORE JUMP! icon.svg',
	['Vivid BAD SQUAD']       = 'Vivid BAD SQUAD icon.svg',
	['Wonderlands×Showtime']  = 'Wonderlands×Showtime icon.svg',
	['25-ji, Night Code de.'] = '25-ji, Night Code de. icon.svg',
	
	-- Game
		-- Attributes
		['cool']  = 'Icon attribute cool.png',
		['cute']  = 'Icon attribute cute.png',
		['happy'] = 'Icon attribute happy.png',
		['mysterious'] = 'Icon attribute mysterious.png',
		['pure']  = 'Icon attribute pure.png',
		
		-- Card Stats
		['technique']   = 'Icon technique.png',
		['stamina']     = 'Icon stamina.png',
		['performance'] = 'Icon performance.png',
		
		-- Stars
		['star'] = 'Gold star.png',
		['star trained'] = 'Rainbow star.png'
}

local links = {
	-- VIRTUAL SINGER
	['vs miku']  = 'Hatsune Miku',
	['vs rin']   = 'Kagamine Rin',
	['vs len']   = 'Kagamine Len',
	['vs luka']  = 'Megurine Luka',
	['vs meiko'] = 'MEIKO',
	['vs kaito'] = 'KAITO',
	
	-- Leo/need
	['ichika'] = 'Hoshino Ichika',
	['saki']   = 'Tenma Saki',
	['honami'] = 'Mochizuki Honami',
	['shiho']  = 'Hinomori Shiho',
	['l/n miku'] = 'Hatsune Miku',
	['l/n luka'] = 'Megurine Luka',
	
	-- MORE MORE JUMP!
	['minori']  = 'Hanasato Minori',
	['haruka']  = 'Kiritani Haruka',
	['airi']    = 'Momoi Airi',
	['shizuku'] = 'Hinomori Shizuku',
	['mmj miku'] = 'Hatsune Miku',
	['mmj rin']  = 'Kagamine Rin',
	
	-- Vivid BAD SQUAD
	['kohane'] = 'Azusawa Kohane',
	['an']     = 'Shiraishi An',
	['akito']  = 'Shinonome Akito',
	['toya']   = 'Aoyagi Toya',
	['vbs miku']  = 'Hatsune Miku',
	['vbs len']   = 'Kagamine Len',
	['vbs meiko'] = 'MEIKO',
	
	-- Wonderlands×Showtime
	['tsukasa'] = 'Tenma Tsukasa',
	['emu']     = 'Otori Emu',
	['nene']    = 'Kusanagi Nene',
	['rui']     = 'Kamishiro Rui',
	['wxs miku']  = 'Hatsune Miku',
	['wxs kaito'] = 'KAITO',
	
	-- 25-ji, Night Code de.
	['kanade'] = 'Yoisaki Kanade',
	['mafuyu'] = 'Asahina Mafuyu',
	['ena']    = 'Shinonome Ena',
	['mizuki'] = 'Akiyama Mizuki',
	['25ji miku'] = 'Hatsune Miku'
}

function p.main(frame)
	local args = getArgs(frame)
	return p._main(args)
end

function p._main(args)
	local icon = args[1]
	local size = args['size'] or '30px'
	
	if icon then
		if icons[icon] then
			return string.format('[[File:%s|x%s|link=%s]]', icons[icon], size, links[icon] or '')
		elseif icons[constants.get_unit(icon)] then
			return string.format('[[File:%s|x%s|link=%s]]', icons[constants.get_unit(icon)], size, links[icon] or '')
		elseif string.find(icon, "^[1-5] star$") or string.find(icon, "^[1-5] star trained$") then
			local count = tonumber(string.match(icon, "[1-5]"))
			local star_icon = string.match(icon, "star trained") or string.match(icon, "star")
			
			local ret = ''
			for i=1,count do
				ret = ret .. string.format('[[File:%s|x%s|link=]] ', icons[star_icon], size)
			end
			return ret
		end
	end
	
	return nil
end

return p
Cookies help us deliver our services. By using our services, you agree to our use of cookies.