|
|
(212 intermediate revisions by 2 users not shown) |
Line 1: |
Line 1: |
| local p = {}; | | local p = require("Module:Move") |
| local cargo = mw.ext.cargo
| | p.game = require("Module:Game").Tekken7 |
| local tables = 'MoveDataCargoTest'
| |
| | |
| p.fields = 'id,name,input,target,damage,reach,tracksLeft,tracksRight,startup,recv,tot,crush,block,hit,ch,notes'
| |
| | |
| | |
| p.display = function(frame)
| |
| local function getParent(id)
| |
| return id:match'(.*),'
| |
| end
| |
|
| |
| local args = {}
| |
| for k, v in pairs(frame:getParent().args) do
| |
| args[k] = v
| |
| end
| |
|
| |
| local parentId = getParent(args['id']) -- args['parent']
| |
| if parentId == nil or parentId == "" then
| |
| return frame:expandTemplate{ title = 'MoveData', args = args }
| |
| else
| |
| local leads = {}
| |
| while (true) do
| |
| local parent = cargo.query(tables, 'input,target,damage,parent', { where = "id='" .. parentId .. "'" })[1]
| |
| if parent == nil then
| |
| return 'Error: parent = "' .. parentId .. '" not found'
| |
| end
| |
| | |
| for k, v in pairs(parent) do
| |
| if k ~= 'parent' then
| |
| if leads[k .. 'Lead'] == nil then
| |
| leads[k .. 'Lead'] = v
| |
| else
| |
| leads[k .. 'Lead'] = v .. leads[k .. 'Lead']
| |
| end
| |
| end
| |
| end
| |
|
| |
| if parent['parent'] ~= "" then
| |
| parentId = parent['parent']
| |
| else
| |
| break
| |
| end
| |
| end
| |
| | |
| for k, v in pairs(leads) do
| |
| args[k] = v
| |
| end
| |
|
| |
| return frame:expandTemplate{ title = 'MoveData', args = args }
| |
| end
| |
| end
| |
| | |
| p.queryOverride = function(frame) | |
| local args = frame:getParent().args
| |
| local id = args[1]
| |
| if id == nil then
| |
| return "Error: no id"
| |
| end
| |
| id = id:gsub("%s+", "")
| |
|
| |
| local result = cargo.query(tables, p.fields, { where = "id = '" .. id .. "'" })[1]
| |
| if result == nil then
| |
| return "Error: move with id = '" .. id .. "' not found"
| |
| end
| |
|
| |
| for k, v in pairs(result) do
| |
| local override = args[k]
| |
| if override ~= nil then
| |
| result[k] = override
| |
| end
| |
| end
| |
|
| |
| return frame:expandTemplate{ title = 'MoveDataCargoTest/Display', args = result }
| |
| end
| |
| | |
| return p | | return p |