From StrategyWiki, the video game walkthrough and strategy guide wiki
Jump to navigation Jump to search
(Added multiple Icon images if rating is greater than 1)
Tags: Mobile edit Mobile web edit
(Fixed second capture loops)
Tags: Mobile edit Mobile web edit
 
(11 intermediate revisions by 2 users not shown)
Line 1: Line 1:
local getArgs = require('Module:Arguments').getArgs
local data = mw.loadJsonData( 'Module:Pokemon Ranger/Browser.json' )
local p = {}
local p = {}
local shortname = {
local shortname = {
Line 9: Line 6:
}
}


local function _capture( args, frame )
local function _capture( args )  
     local guide = mw.title.getCurrentTitle().rootText
     local guide = mw.title.getCurrentTitle().rootText
local data = mw.loadJsonData( 'Module:Pokemon/' .. string.sub( shortname[ guide ], 9 ) .. '.json' )
local root = mw.html.create( 'table' )
local root = mw.html.create( 'table' )
:addClass( 'wikitable mid-table' )
:addClass( 'wikitable mid-table' )
Line 21: Line 19:
row:tag( 'th' ):wikitext( "Loops" )
row:tag( 'th' ):wikitext( "Loops" )


    local monData = {}
for i, v in ipairs( args ) do
    local row = {}
local monData = data[ "browser" ][ v ]
    for i,v in ipairs(args) do
local row = root:tag( 'tr' )
        monData = data[guide][v]    
row:tag( 'td' ):wikitext( "[[File:" .. shortname[ guide ] .. ' ' .. monData.name .. ".png|" .. monData.name .. "]]" .. " " .. '[[' .. guide .. '/Browser#'.. monData.name .. '|' .. monData.name .. ']]' )
        row = root:tag( 'tr' )
row:tag( 'td' ):wikitext( "[[File:" .. shortname[ guide ] .. ' ' .. monData.name .. ".png|" .. monData.name .. "]]" .. " " .. '[[Pokémon Ranger/Browser#'.. monData.name .. '|' .. monData.name .. ']]' )
if monData.move == "None" then
if monData.move == "None" then
move = "None"
move = "None"
elseif monData.rating == "1" then
else
move = "[[File:" .. shortname[ guide ] .. ' ' .. monDatamove .. ' ' .. "Icon" .. ".png|" .. monData.move .. "]]"
move = ""
elseif monData.rating == "2" then
for j = 1, monData.rating do
move = "[[File:" .. shortname[ guide ] .. ' ' .. monDatamove .. ' ' .. "Icon" .. ".png|" .. monData.move .. "]]" .. " " .. "[[File:" .. shortname[ guide ] .. ' ' .. monDatamove .. ' ' .. "Icon" .. ".png|" .. monData.move .. "]]"
move = move .. "[[File:" .. shortname[ guide ] .. ' ' .. monData.move .. ' ' .. "Icon" .. ".png|" .. monData.move .. "]] "
        else
end
          move = "[[File:" .. shortname[ guide ] .. ' ' .. monDatamove .. ' ' .. "Icon" .. ".png|" .. monData.move .. "]]" .. " " .. "[[File:" .. shortname[ guide ] .. ' ' .. monDatamove .. ' ' .. "Icon" .. ".png|" .. monData.move .. "]]" .. " ".. "[[File:" .. shortname[ guide ] .. ' ' .. monDatamove .. ' ' .. "Icon" .. ".png|" .. monData.move .. "]]"
end
end
row:tag( 'td' ):wikitext( move )
row:tag( 'td' ):wikitext( move )
row:tag( 'td' ):wikitext( monData.assist )
row:tag( 'td' ):wikitext( monData.assist )
if monData.loops2 then
            page = mw.title.getCurrentTitle().text         
            if monData.loops2page == page then
              loops = monData.loops2
            else
              loops = monData.loops
            end
        else
              loops = monData.loops
        end       
        row:tag( 'td' ):wikitext ( loops )
end
return tostring( root )
end
local function _challenge( args )
local guide = mw.title.getCurrentTitle().rootText
local data = mw.loadJsonData( 'Module:Pokemon/' .. string.sub( shortname[ guide ], 9 ) .. '.json' )
local root = mw.html.create( 'table' )
:addClass( 'wikitable mid-table' )
:css( 'text-align', 'center' )
local row = root:tag( 'tr' )
row:tag( 'th' ):wikitext( "Pokémon" )
row:tag( 'th' ):wikitext( "Requirements" )
row:tag( 'th' ):wikitext( "Points" )
row:tag( 'th' ):wikitext( "Loops" )
for i, v in ipairs( args ) do
local monData = data[ "browser" ][ v ]
local challengeData = data[ "challenges" ][ v ]
local row = root:tag( 'tr' )
row:tag( 'td' ):wikitext( "[[File:" .. shortname[ guide ] .. ' ' .. monData.name .. ".png|" .. monData.name .. "]]" .. " " .. '[[' .. guide .. '/Browser#'.. monData.name .. '|' .. monData.name .. ']]' )
row:tag( 'td' ):wikitext( challengeData.requirement )
row:tag( 'td' ):wikitext( challengeData.points )
row:tag( 'td' ):wikitext( monData.loops )
row:tag( 'td' ):wikitext( monData.loops )
end
end
 
return tostring( root )
return tostring( root )
 
end
end


function p.browser( frame )
function p.browser( frame )
local guide = mw.title.getCurrentTitle().rootText  
local guide = mw.title.getCurrentTitle().rootText
mons = data[ guide ]
local data = mw.loadJsonData( 'Module:Pokemon/' .. string.sub( shortname[ guide ], 9 ) .. '.json' )
local root = mw.html.create( 'table' )
local root = mw.html.create( 'table' )
:addClass( 'wikitable mid-table sortable' )
:addClass( 'wikitable mid-table sortable' )
Line 63: Line 92:
local nums = {}
local nums = {}


for k in pairs(mons) do
for k in pairs( data[ "browser" ] ) do
    table.insert(nums, k)
table.insert( nums, k )
end
end
table.sort(nums)
table.sort( nums )


for i = 1, #nums do
for i = 1, #nums do
local k, t = nums[i], mons[ nums[i] ]
local k, v = nums[ i ], data[ "browser" ][ nums[ i ] ]
local row = root:tag( 'tr' )
local row = root:tag( 'tr' )
row:tag( 'td' ):wikitext( k ):css( 'line-height', '40px' )
row:tag( 'td' ):wikitext( k ):css( 'line-height', '40px' )
row:tag( 'td' ):wikitext( "[[File:" .. shortname[ guide ] .. ' ' .. t.name .. ".png|" .. t.name .. "]]" )
row:tag( 'td' ):wikitext( "[[File:" .. shortname[ guide ] .. ' ' .. v.name .. ".png|" .. v.name .. "]]" )
row:tag( 'td' ):wikitext( frame:expandTemplate{ title = 'a', args = { t.name, frame:expandTemplate{ title = 'bp', args = { t.name } } } } ):css( 'text-align', 'left' )
row:tag( 'td' )
row:tag( 'td' ):wikitext( t.group )
:wikitext( frame:expandTemplate{ title = 'a', args = { v.name, frame:expandTemplate{ title = 'bp', args = { v.name } } } } )
if t.move == "None" then
:css( 'text-align', 'left' )
row:tag( 'td' ):wikitext( v.group )
if v.move == "None" then
move = "None"
move = "None"
elseif t.rating == "1" then
elseif v.rating == "1" then
move = t.move
move = v.move
else
else
move = t.move .. " " .. t.rating
move = v.move .. " " .. v.rating
end
end
row:tag( 'td' ):wikitext( move )
row:tag( 'td' ):wikitext( move )
row:tag( 'td' ):wikitext( t.assist )
row:tag( 'td' ):wikitext( v.assist )
row:tag( 'td' ):wikitext( t.loops )
row:tag( 'td' ):wikitext( v.loops )
end
end
 
return tostring( root )
return tostring( root )
end
end


function p.capture( frame )
function p.capture( frame )
    local args = getArgs( frame, { wrappers = 'Template:Pokemon Ranger/Capture' } )
local getArgs = require( 'Module:Arguments' ).getArgs
   
local args = getArgs( frame, { wrappers = 'Template:Pokemon Ranger/Capture' } )
    return _capture( args, frame )
 
return _capture( args )
end
 
function p.challenge( frame )
local getArgs = require( 'Module:Arguments' ).getArgs
local args = getArgs( frame, { wrappers = 'Template:Pokemon Ranger/Challenge' } )
 
return _challenge( args )
end
end


return p
return p

Latest revision as of 18:57, 5 May 2024

Documentation for this module may be created at Module:Pokemon/Ranger/Documentation

local p = {}
local shortname = {
	["Pokémon Ranger"] = "Pokemon Ranger",
	["Pokémon Ranger: Shadows of Almia"] = "Pokemon Ranger SoA",
	["Pokémon Ranger: Guardian Signs"] = "Pokemon Ranger GS",
}

local function _capture( args )   	
    local guide = mw.title.getCurrentTitle().rootText
	local data = mw.loadJsonData( 'Module:Pokemon/' .. string.sub( shortname[ guide ], 9 ) .. '.json' )
	local root = mw.html.create( 'table' )
					:addClass( 'wikitable mid-table' )
					:css( 'text-align', 'center' )

	local row = root:tag( 'tr' )
	row:tag( 'th' ):wikitext( "Pokémon" )
	row:tag( 'th' ):wikitext( "Field Move" )
	row:tag( 'th' ):wikitext( "Poké Assist" )
	row:tag( 'th' ):wikitext( "Loops" )

	for i, v in ipairs( args ) do
		local monData = data[ "browser" ][ v ]
		local row = root:tag( 'tr' )
		row:tag( 'td' ):wikitext( "[[File:" .. shortname[ guide ] .. ' ' .. monData.name .. ".png|" .. monData.name .. "]]" .. " " .. '[[' .. guide .. '/Browser#'.. monData.name .. '|' .. monData.name .. ']]' )
		if monData.move == "None" then
			move = "None"
		else
			move = ""
			for j = 1, monData.rating do
				move = move .. "[[File:" .. shortname[ guide ] .. ' ' .. monData.move .. ' ' .. "Icon" .. ".png|" .. monData.move .. "]] "
			end
		end
		row:tag( 'td' ):wikitext( move )
		row:tag( 'td' ):wikitext( monData.assist )
		if monData.loops2 then
            page = mw.title.getCurrentTitle().text           
            if monData.loops2page == page then 
               loops = monData.loops2
            else
               loops = monData.loops
            end
         else
               loops = monData.loops 
         end         
         row:tag( 'td' ):wikitext ( loops )
	end

	return tostring( root )
end
local function _challenge( args )
	local guide = mw.title.getCurrentTitle().rootText
	local data = mw.loadJsonData( 'Module:Pokemon/' .. string.sub( shortname[ guide ], 9 ) .. '.json' )
	local root = mw.html.create( 'table' )
					:addClass( 'wikitable mid-table' )
					:css( 'text-align', 'center' )

	local row = root:tag( 'tr' )
	row:tag( 'th' ):wikitext( "Pokémon" )
	row:tag( 'th' ):wikitext( "Requirements" )
	row:tag( 'th' ):wikitext( "Points" )
	row:tag( 'th' ):wikitext( "Loops" )

	for i, v in ipairs( args ) do
		local monData = data[ "browser" ][ v ]
		local challengeData = data[ "challenges" ][ v ]
		local row = root:tag( 'tr' )
		row:tag( 'td' ):wikitext( "[[File:" .. shortname[ guide ] .. ' ' .. monData.name .. ".png|" .. monData.name .. "]]" .. " " .. '[[' .. guide .. '/Browser#'.. monData.name .. '|' .. monData.name .. ']]' )
		row:tag( 'td' ):wikitext( challengeData.requirement )
		row:tag( 'td' ):wikitext( challengeData.points )
		row:tag( 'td' ):wikitext( monData.loops )
	end

	return tostring( root )
end

function p.browser( frame )
	local guide = mw.title.getCurrentTitle().rootText
	local data = mw.loadJsonData( 'Module:Pokemon/' .. string.sub( shortname[ guide ], 9 ) .. '.json' )
	local root = mw.html.create( 'table' )
					:addClass( 'wikitable mid-table sortable' )
					:css( 'text-align', 'center' )

	local row = root:tag( 'tr' )
	row:tag( 'th' ):wikitext( "#" )
	row:tag( 'th' ):wikitext( "Image" )
	row:tag( 'th' ):wikitext( "Name" )
	row:tag( 'th' ):wikitext( "Group" )
	row:tag( 'th' ):wikitext( "Field Move" )
	row:tag( 'th' ):wikitext( "Poké Assist" )
	row:tag( 'th' ):wikitext( "Loops" )

	local nums = {}

	for k in pairs( data[ "browser" ] ) do
		table.insert( nums, k )
	end
	table.sort( nums )

	for i = 1, #nums do
		local k, v = nums[ i ], data[ "browser" ][ nums[ i ] ]
		local row = root:tag( 'tr' )
		row:tag( 'td' ):wikitext( k ):css( 'line-height', '40px' )
		row:tag( 'td' ):wikitext( "[[File:" .. shortname[ guide ] .. ' ' .. v.name .. ".png|" .. v.name .. "]]" )
		row:tag( 'td' )
			:wikitext( frame:expandTemplate{ title = 'a', args = { v.name, frame:expandTemplate{ title = 'bp', args = { v.name } } } } )
			:css( 'text-align', 'left' )
		row:tag( 'td' ):wikitext( v.group )
		if v.move == "None" then
			move = "None"
		elseif v.rating == "1" then
			move = v.move
		else
			move = v.move .. " " .. v.rating
		end
		row:tag( 'td' ):wikitext( move )
		row:tag( 'td' ):wikitext( v.assist )
		row:tag( 'td' ):wikitext( v.loops )
	end

	return tostring( root )
end

function p.capture( frame )
	local getArgs = require( 'Module:Arguments' ).getArgs
	local args = getArgs( frame, { wrappers = 'Template:Pokemon Ranger/Capture' } )

	return _capture( args )
end

function p.challenge( frame )
	local getArgs = require( 'Module:Arguments' ).getArgs
	local args = getArgs( frame, { wrappers = 'Template:Pokemon Ranger/Challenge' } )

	return _challenge( args )
end

return p