Module:Move7

From Wavu Wiki, the 🌊 wavy Tekken wiki
Revision as of 13:40, 22 August 2023 by Lume (talk | contribs)

Documentation for this module may be created at Module:Move7/doc

local p = {};
local cargo = mw.ext.cargo
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 args = {}
	for k, v in pairs(frame:getParent().args) do
		args[k] = v
	end
	
	local parentId = 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