포켓몬 위키
Advertisement

이 모듈에 대한 설명문서는 모듈:Pokedex/설명문서에서 만들 수 있습니다

local Pokedex = {}
local getArgs
local dex, dexSize, dexData
local forms

-- [[틀:번2포]]
function Pokedex.name ( index )
    return dexData[index] or '없는 번호입니다.'
end

-- [[틀:포번앞]]
function Pokedex.prevIndex ( index )
    local currentIndex = tonumber( index )
    local prevIndex = ( currentIndex > 1 ) and ( currentIndex - 1 ) or dexSize
    return string.format( '%03d', prevIndex )
end

-- [[틀:포번뒤]]
function Pokedex.nextIndex ( index )
    local currentIndex = tonumber( index )
    local nextIndex = ( currentIndex < dexSize ) and ( currentIndex + 1 ) or 1
    return string.format( '%03d', nextIndex )
end

-- [[틀:폼문자]]
function Pokedex.formLetter ( name )
    local ret = forms[name] and forms[name][2] or '없는 폼입니다.'
    return ret
end

-- [[틀:폼이름]]
function Pokedex.formName ( name )
    local ret = forms[name] and forms[name][1] or '없는 폼입니다.'
    return ret
end

function Pokedex.main( frame )
    -- 인자 관리 모듈이 캐시되어 있지 않으면 정의
    if not getArgs then
        getArgs = require( 'Module:Arguments' ).getArgs
    end
    -- 도감 데이터가 캐시되어 있지 않으면 정의
    if not dex then
        dex = mw.loadData( 'Module:Pokedex/Data' )
        dexSize = dex.size
        dexData = dex.data
    end
    -- `다른 폼` 데이터가 캐시되어 있지 않으면 정의
    if not forms then
        forms = mw.loadData( 'Module:Pokedex/Forms' )
    end

    local args = getArgs( frame )
    local requested = args['request']
    local result = Pokedex[requested] and Pokedex[requested]( args[1] )

    return result
end

return Pokedex
Advertisement