Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
MediaWiki help
Creopedia
Search
Search
Appearance
Log in
Personal tools
Log in
View source for Module:Move
Module
Discussion
English
Read
View source
View history
Tools
Tools
move to sidebar
hide
Actions
Read
View source
View history
General
What links here
Related changes
Special pages
Page information
Appearance
move to sidebar
hide
←
Module:Move
require( 'strict' ) local gameData = require( 'Module:GameData' ) local p = {} local moveData = {} local templateArgs = {} --- Move names that another kind of subject owns as an article title. EvoCreo 2 --- reused these two for a trait and an ability, so the moves are disambiguated. local disambiguatedArticles = { ['Agility'] = 'Agility (move)', ['Dive'] = 'Dive (move)' } --- Wikitext entry point for the module --- --- @param frame mw.frame --- @return string function p.main( frame ) local getArgs = require( 'Module:Arguments' ).getArgs return p._main( getArgs( frame ) ) end --- Lua entry point for the module --- --- @param args table --- @return string function p._main( args ) args = args or {} local moveName = args.name or mw.title.getCurrentTitle().fullText moveData = p.getData( moveName ) templateArgs = args local wikitext = { p.renderInfobox( moveName ), p.renderCategories( p.getCategories() ) } return table.concat( wikitext ) end --- Get the game data --- --- @param moveName string --- @return table function p.getData( moveName ) return gameData.getMove( moveName ) end --- Get the article title covering a move --- --- The move's own name, unless another subject already owns that title, in --- which case callers link to the disambiguated article while still labelling --- it with the plain name. --- --- @param name string --- @return string function p.getArticle( name ) return disambiguatedArticles[name] or name end --- Return the wikitext for the infobox --- --- @param moveName string --- @return string function p.renderInfobox( moveName ) local data = moveData or p.getData( moveName ) data.name = moveName return require( 'Module:Move/Components/Infobox' ).render( { data = data, args = templateArgs } ) end --- Get the page categories --- --- @return table function p.getCategories() local categories = { 'Moves' } if moveData.evocreo2 then table.insert( categories, 'Moves in EvoCreo 2' ) end if moveData.evocreo then table.insert( categories, 'Moves in EvoCreo' ) end return categories end --- Return the wikitext for the category --- --- @param categories table --- @return string function p.renderCategories( categories ) local wikitext = {} for _, category in ipairs( categories ) do table.insert( wikitext, string.format( '[[Category:%s]]', category ) ) end return table.concat( wikitext, '' ) end --- Get the thumbnail for a Move --- --- Moves are illustrated with the EvoCreo 2 artwork by default. Pass a game ID --- to use that game's own icon, which is what moves cut before EvoCreo 2 need. --- --- @param name string --- @param gameId string|nil --- @return string function p.getThumbnail( name, gameId ) local game = gameId == 'evocreo' and 'evocreo' or 'evocreo2' return string.format( '%s - move - %s.png', string.lower( name ), game ) end --- Return the wikitext for the learnsets --- --- @return string function p.renderLearnsets( frame ) local wikitextArgs = require( 'Module:Arguments' ).getArgs( frame ) local moveName = wikitextArgs[1] or mw.title.getCurrentTitle().fullText return require( 'Module:Move/Components/Learnsets' ).render( { data = gameData.getLearnset( moveName ) } ) end return p
Templates used on this page:
Template:Documentation
(
view source
)
Module:Move/doc
(
view source
)
Return to
Module:Move
.