Pokémon Wiki

¿Quieres ayudar pero no sabes por dónde comenzar? ¡Revisa cómo colaborar!
También puedes unirte a nuestro servidor de Discord.

LEE MÁS

Pokémon Wiki
Advertisement

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

local p = {}

--[[
 {{#invoke:module|p.pasoseclosion|generacion=generación|eclosión=nº de pasos}}
--]]
function p.pasoseclosion( frame )
	local ngeneracion = tonumber( frame.args['generación'] or '1' )
	local eclosion = frame.args['eclosión'] or ''
	local neclosion = tonumber( mw.ustring.gsub( eclosion, '[^0-9]', '' ), 10 )
	local nciclos = 0
	local npasosmin = 0
	local npasosmax = 0

	if not neclosion or not ngeneracion then
		return ''
	end
	-- Conversiones
	-- Número de ciclos +1 (por ejemplo, 6 en vez de 5)
	if neclosion <= 121 and ( neclosion - 1 ) % 5 == 0 then
		neclosion = neclosion - 1
	end
	-- Número hasta 120: Será el número de ciclos, pero debe ser divisible entre 5
	if neclosion <= 120 then
		if neclosion % 5 == 0 then
			nciclos = neclosion
		end
	elseif neclosion % 256 == 0 then -- 1280, 2560, etc
		nciclos = neclosion / 256
	elseif neclosion % 255 == 0 and ( ( neclosion / 255 ) - 1 ) % 5 == 0 then -- 1530, 2805, etc
		nciclos = ( neclosion / 255 ) - 1
	end

	if nciclos == 0 then
		return '[[Categoría:Plantillas con parámetros incorrectos|Otros datos]]'
	end

	-- Los valores más grandes son de gen 3, seguidos de 4, 5-6 y 7
	npasosmin = nciclos * 256 -- Caso gen 7
	if ngeneracion == 4 then
		npasosmax = ( nciclos + 1 ) * 255
	elseif ngeneracion <= 3 then
		npasosmax = ( nciclos + 1 ) * 256
	end

	-- Si es de la gen 5 a 7 mostrar solo un número
	if ngeneracion >= 5 then
		return string.format( '%s ciclos: %s', nciclos, nciclos * 256 )
	end
	return string.format( '%s ciclos: %s - %s', nciclos, npasosmin, npasosmax )
end

-- Para usar desde la consola directamente, pasándole como argumentos los que recibiría la plantilla
function p.console1( generacion, eclosion )
	local frame = {
		args = { ['generación'] = generacion, ['eclosión'] = eclosion }
	}
	table.insert(frame.args, '')
	return p.pasoseclosion( frame )
end

return p
Advertisement