Module:Sandbox/User:Alsang: Difference between revisions

From Brighter Shores Wiki
Jump to navigation Jump to search
Content added Content deleted
No edit summary
No edit summary
Line 6: Line 6:


function p.stone()
function p.stone()
return makeTable('stone')
return p.makeTable('stone')
end
end


function p.metal()
function p.metal()
return makeTable('metal')
return p.makeTable('metal')
end
end


function p.bone()
function p.bone()
return makeTable('bone')
return p.makeTable('bone')
end
end
local function makeTable(args)
function p.makeTable(args)
local variants = {'Basic','Moderate','Fine','Strong','Superior','Perfect'}
local variants = {'Basic','Moderate','Fine','Strong','Superior','Perfect'}

Revision as of 23:44, 5 December 2024

Module documentation
This documentation is transcluded from Module:Sandbox/User:Alsang/doc. [edit] [history] [purge]
This module does not have any documentation. Please consider adding documentation at Module:Sandbox/User:Alsang/doc. [edit]
Module:Sandbox/User:Alsang's function main is invoked by Template:Sandbox/User:Alsang.

p = {}

function p.main()
	return nil
end

function p.stone()
	return p.makeTable('stone')
end

function p.metal()
	return p.makeTable('metal')
end

function p.bone()
	return p.makeTable('bone')
end
	
function p.makeTable(args)
	
	local variants = {'Basic','Moderate','Fine','Strong','Superior','Perfect'}
	local weaponsStone = {
		'Hammerfist',
		'Throwing Stones',
		'Stone Slab Shield',
		'Stone Mace',
		'Stone Discs',
		'War Hammer',
		'Bolas',
		'Stone Chunk Shield',
		'Double Headed Hammer',
		'Throwing Clubs',
		'Great Stone Mace',
		' Polished Stone Shield',
		'Throwing Hammers',
		'Great Hammer',
		'Sling'}
	local weaponsMetal = {
		'Rapier ',
		'Throwing Twinblades',
		'Metal Kite Shield',
		'Flanged Mace',
		'Throwing Rings',
		'Shortsword',
		'Metal Javelins',
		'Metal Heater Shield',
		'Longsword',
		'Throwing Knives',
		'Broadsword',
		'Metal Buckler',
		'Throwing Axes',
		'Battleaxe',
		'Metal Bow'}
	local weaponsBone = {
		'Truncheon',
		'Blowpipe',
		'Wooden Round Shield',
		'Cudgel',
		'Javelins',
		'Club',
		'Light Crossbow',
		'Wooden Square Shield',
		'Quarterstaff',
		'Recurve Bow',
		'Spear',
		'Wooden Hexagon Shield',
		'Longbow',
		'Poleaxe',
		'Heavy Crossbow'}
	
	if args=='stone' then
		weapons = weaponsStone
	elseif args=='metal' then
		weapons = weaponsMetal
	elseif args=='bone' then
		weapons = weaponsBone
	else
		return nil
	end
		
	local allWeapons = {}	
	for i,item in ipairs(variants) do
		for j,jtem in ipairs(weapons) do
			table.insert(allWeapons,{pagename='[[' .. jtem .. ' (' .. item .. ')]]',wrongname='[[' .. item .. ' ' .. jtem .. ']]'})
		end
	end

	for i,item in ipairs(allWeapons) do
		
		local query = mw.smw.ask(item.pagename .. '|?Name #- = data|mainlabel=-')
		if type(query)=='table' then
			item.itemname = query[1].data
		end
			
		local query = mw.smw.ask(item.pagename .. '|?Uses facility #- = data|mainlabel=-')
		if type(query)=='table' then
			item.facility = query[1].data
		end
		
		local query = mw.smw.ask(item.wrongname .. '|?Name #- = data|mainlabel=-')
		if type(query)=='table' then
			item.wrongitemname = query[1].data
		end
			
		local query = mw.smw.ask(item.wrongname .. '|?Uses facility #- = data|mainlabel=-')
		if type(query)=='table' then
			item.wrongfacility = query[1].data
		end
		
	end
	
	local out = mw.html.create('table')
		:addClass('wikitable sortable')
		:tag('tr')
			:tag('th')
				:wikitext('Page')
			:done()
			:tag('th')
				:wikitext('Item name')
			:done()
			:tag('th')
				:wikitext('Facility')
			:done()
			:tag('th')
				:wikitext('Wrong Page (shouldnt exist)')
			:done()
			:tag('th')
				:wikitext('Wrongpage Item name')
			:done()
			:tag('th')
				:wikitext('Wrongpage Facility')
			:done()
		:done()
		
		for i,item in ipairs(allWeapons) do
			local row = out:tag('tr')
				:tag('td')
					:wikitext(item.pagename)
				:done()
				:tag('td')
					:wikitext(item.itemname)
				:done()
				:tag('td')
					:wikitext(item.facility)
				:done()
				:tag('td')
					:wikitext(item.wrongname)
				:done()
				:tag('td')
					:wikitext(item.wrongitemname)
				:done()
				:tag('td')
					:wikitext(item.wrongfacility)
				:done()
				
			:done()
			:done()
		end
		
	return out
	
	--for debugging
	--return '<pre>'..mw.text.jsonEncode(args, mw.text.JSON_PRETTY)..'</pre>'
	
end

return p