Módulo:Tipo

De WikiDex
Ir a la navegaciónIr a la búsqueda

La documentación para este módulo puede ser creada en Módulo:Tipo/doc.

local p = {}    -- variable que tendrá todas las funciones accesibles externamente

local _edConfig = {
	['#default'] = { ['imagen'] = 'Tipo %s %s.png' },
	['LGPE'] = { ['imagen'] = 'Tipo %s %s.png', ['tamaño'] = 'x18px' },
	['icono LGPE'] = { ['imagen'] = 'Tipo %s %s.png', ['tamaño'] = '20px' },
	['EpEc'] = { ['imagen'] = 'Tipo %s %s.png', ['tamaño'] = 'x18px' },
	['icono EpEc'] = { ['imagen'] = 'Tipo %s %s.png', ['tamaño'] = '20px' },
	['LGPE'] = { ['imagen'] = 'Tipo %s %s.png', ['tamaño'] = 'x18px' },
	['DBPR'] = { ['imagen'] = 'Tipo %s %s.png', ['tamaño'] = 'x18px' },
	['icono DBPR'] = { ['imagen'] = 'Tipo %s %s.png', ['tamaño'] = '20px' },
	['LPA'] = { ['imagen'] = 'Tipo %s %s.png', ['tamaño'] = 'x18px' },
	['icono LPA'] = { ['imagen'] = 'Tipo %s %s.png', ['tamaño'] = '20px' },
	['EP'] = { ['imagen'] = 'Tipo %s %s.png', ['tamaño'] = 'x18px' },
	['icono EP'] = { ['imagen'] = 'Tipo %s %s.png', ['tamaño'] = '20px' },
	['teratipo EP'] = { ['imagen'] = 'Teratipo %s EP.png', ['tamaño'] = 'x18px' },
	['teratipo icono EP'] = { ['imagen'] = 'Teratipo %s icono EP.png', ['tamaño'] = '20px' },
	['Colosseum'] = { ['imagen'] = 'Tipo %s %s.png', ['tamaño'] = 'x18px' },
	['MMERDX'] = { ['imagen'] = 'Tipo %s %s.png', ['tamaño'] = '20px' },
	['PRR'] = { ['imagen'] = 'Tipo %s %s.png', ['tamaño'] = '20px' },
	['web'] = { ['imagen'] = 'Tipo %s %s.png', ['tamaño'] = 'x18px' },
	['Shuffle M'] = { ['imagen'] = 'Tipo %s %s.png', ['tamaño'] = 'x18px' },
	['Quest'] = { ['imagen'] = 'Tipo %s %s.png', ['tamaño'] = 'x18px' },
	['icono Quest'] = { ['imagen'] = 'Tipo %s %s.png', ['tamaño'] = '20px' },
	['GO'] = { ['imagen'] = 'Tipo %s GO.png', ['tamaño'] = '20px' },
	['Masters'] = { ['imagen'] = 'Tipo %s Masters.png', ['tamaño'] = '20px' },
	['NPS'] = { ['imagen'] = 'Tipo %s NPS.png', ['tamaño'] = '20px' },
	['Sleep'] = { ['imagen'] = 'Tipo %s Sleep.png', ['tamaño'] = '20px' },
	['HOME'] = { ['imagen'] = 'Tipo %s %s.png', ['tamaño'] = 'x18px' },
	-- Caso "si no se especifica edición"
	[''] = { ['imagen'] = 'Tipo %s.gif' },
}

local _tipoConfig = {
	['#default'] = { ['link'] = 'Tipo %s', ['texto'] = 'Tipo %s' },
	['físico'] = { ['link'] = 'Movimiento#Físico', ['texto'] = 'Clase físico' },
	['especial'] = { ['link'] = 'Movimiento#Especial', ['texto'] = 'Clase especial' },
	['estado'] = { ['link'] = 'Movimiento#Estado', ['texto'] = 'Clase de estado' },
	['otro'] = { ['link'] = 'Movimiento#Estado', ['texto'] = 'Clase de estado' },
	['carisma'] = { ['link'] = 'Carisma', ['texto'] = 'Carisma' },
	['belleza'] = { ['link'] = 'Belleza', ['texto'] = 'Belleza' },
	['dulzura'] = { ['link'] = 'Dulzura', ['texto'] = 'Dulzura' },
	['ingenio'] = { ['link'] = 'Ingenio', ['texto'] = 'Ingenio' },
	['dureza'] = { ['link'] = 'Dureza', ['texto'] = 'Dureza' },
}

-- Función principal
function p.main( frame )
	local sourceargs, tipo, imagen, tamano, link, texto, ed, edconfig, tipoconfig
	if frame.args['local'] == '1' then
		sourceargs = frame.args
		frame = mw.getCurrentFrame():newChild{ title = 'EP001', args = sourceargs }
	else
		sourceargs = frame:getParent().args
	end
	
	tipo = mw.ustring.lower( sourceargs[1] or '?' )
	ed = sourceargs[2] or ''
	edconfig = _edConfig[ed] or _edConfig['#default']
	tipoconfig = _tipoConfig[tipo] or _tipoConfig['#default']
	imagen = string.format( edconfig['imagen'], tipo, ed )
	tamano = edconfig['tamaño'] or ''
	link = string.format( tipoconfig['link'], tipo )
	texto = string.format( tipoconfig['texto'], tipo )
	
	if tamano ~= '' then
		return string.format( '[[Archivo:%s|%s|link=%s|%s]]', imagen, tamano, link, texto )
	else
		return string.format( '[[Archivo:%s|link=%s|%s]]', imagen, link, texto )
	end
end

return p