Documentation for this module may be created at Module:MoveDataParser/doc
local p = {} local cargo = mw.ext.cargo -- Color frame advantage text based on value (positive or negative) function p.colorizeFrameAdvantage(frame) -- Set the string to the first argument given local str = frame.args[1] -- Surrond all plus values with a span with style color green str = string.gsub(str, "(%+%d+)", "<span style=\"color:green;\">%1</span>") -- Surrond all negative values with a span with style color green str = string.gsub(str, "(%-%d+)", "<span style=\"color:red;\">%1</span>") -- Return the string return str end -- Create a wikitext hyperlink that links to the frame data page section of a move -- Assumes the section header is the same as moveInput function p.createFrameDataLink(frame) -- Target cargo table to query local cargoTable = frame.args['cargoTable'] -- MoveId to query local moveId = frame.args['moveId'] -- Field in to return in query local fields = "input" -- Args for query local args = { where = "moveId = '" .. moveId .. "'"} -- Beginning of wikitext to return local wikitext = "[[/Data#" -- Cargo query for moveInput local results = cargo.query( cargoTable, fields, args ) local moveInput = results[1]['input'] -- Replaces any left and right square brackets with their ascii code to make it wikitext compatible moveInput = string.gsub(moveInput, '%[', "[") moveInput = string.gsub(moveInput, "%]", "]") -- TODO: Maybe add alternate text instead of it just saying '/Data#moveInput'? -- Concatenates 'wikitext' with 'moveInput' and ending square brackets wikitext = wikitext .. moveInput .. "]]" -- Returns the wikitext return wikitext end -- Create a wikitext hyperlink that links to the frame data page section of a move -- Assumes the section header is the same as moveInput function p.createShortFrameDataLink(frame) -- Target cargo table to query local cargoTable = frame.args['cargoTable'] -- MoveId to query local moveId = frame.args['moveId'] -- Field in to return in query local fields = "input" -- Args for query local args = { where = "moveId = '" .. moveId .. "'"} -- Beginning of wikitext to return local wikitext = "[[/Data#" -- Cargo query for moveInput local results = cargo.query( cargoTable, fields, args ) local moveInput = results[1]['input'] -- Replaces any left and right square brackets with their ascii code to make it wikitext compatible moveInput = string.gsub(moveInput, '%[', "[") moveInput = string.gsub(moveInput, "%]", "]") -- TODO: Maybe add alternate text instead of it just saying '/Data#moveInput'? -- Concatenates 'wikitext' with 'moveInput' and ending square brackets wikitext = wikitext .. moveInput .. "|data]]" -- Returns the wikitext return wikitext end -- Cargo queries a single image by 3 unnamed arguments --- 1 - name of target cargo table --- 2 - moveId from that cargo table --- 3 - image index of the move function p.getMoveImage(frame) -- Target cargo table to query local cargoTable = frame.args[1] -- Target move to query local moveId = frame.args[2] -- Target image index (is default 1 from template MoveDataCargoImage) local imageIndex = frame.args[3] -- Boolean to use image or hitbox image local useHitbox = mw.text.trim(frame.args[4]) -- Maximum height of the image or hitbox image, used to limit edge cases local imageHeight = mw.text.trim(frame.args[5]) -- Wikitext to return after function is completed local wikitext = "" -- 'fields' part of the cargo query -- We need to grab only the first instance of each image "sorted" by moveId local fields = "" if useHitbox == "yes" then fields = "hitboxes" else fields = "images" end -- 'args' part of the Lua cargo query local args = { -- 'whereQuery' from above which goes by moveIds where = "moveId = '" .. mw.text.trim(moveId) .. "'" } local result -- Cargo query if useHitbox == "yes" then result = cargo.query( cargoTable, fields, args )[1].hitboxes else result = cargo.query( cargoTable, fields, args )[1].images end -- Turn query into list split by ',' local listOfImages = mw.text.split(result,',') -- Get target image based on imageIndex local targetImage = listOfImages[tonumber(imageIndex)] -- Return the image as wikitext if imageHeight == "no" then wikitext = "[[File:" .. targetImage .. "|175px|class=movedatacargoimage-img]]" else wikitext = "[[File:" .. targetImage .. "|x" .. imageHeight .. "|class=movedatacargoimage-img]]" end return wikitext end return p