Module:Sandbox/User:Alsang

Revision as of 13:57, 5 December 2024 by Alsang (talk | contribs)
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(args)
	
	local variants = {'Basic','Moderate','Fine','Strong','Superior','Perfect'}
	local weapons1 = {'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 weapons2 = {'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 weapons3 = {'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'}
	
	weapons = weapons1
	
	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 .. '|?Uses facility #- = data|mainlabel=-')
		if type(query)=='table' then
			item.facility = query[1].data
		end
		
		local query = mw.smw.ask(item.pagename .. '|?Activity XP #- = data|mainlabel=-')
		if type(query)=='table' then
			item.XP = query[1].data
		end
		
		local query = mw.smw.ask(item.pagename .. '|?Activity duration #- = data|mainlabel=-')
		if type(query)=='table' then
			item.duration = query[1].data
		end
		
		local query = mw.smw.ask(item.pagename .. '|?Activity KP #- = data|mainlabel=-')
		if type(query)=='table' then
			item.KP = query[1].data
		end
		
		local query = mw.smw.ask(item.pagename .. '|?Recipe output #- = data|mainlabel=-')
		if type(query)=='table' then
			item.output = query[1].data
		end
		
		local query = mw.smw.ask(item.pagename .. '|?Name #- = data|mainlabel=-')
		if type(query)=='table' then
			item.name = 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('Recipe Output')
			:done()
			:tag('th')
				:wikitext('Facility')
			:done()
			:tag('th')
				:wikitext('XP')
			:done()
			:tag('th')
				:wikitext('KP')
			:done()
			:tag('th')
				:wikitext('duration')
			:done()
			:tag('th')
				:wikitext('Wrong Page (shouldnt exist)')
			:done()
		:done()
		
		for i,item in ipairs(allWeapons) do
			local row = out:tag('tr')
				:tag('td')
					:wikitext(item.pagename)
				:done()
				:tag('td')
					:wikitext(item.name)
				:done()
				:tag('td')
					:wikitext(item.output)
				:done()
				:tag('td')
					:wikitext(item.facility)
				:done()
				:tag('td')
					:wikitext(item.XP)
				:done()
				:tag('td')
					:wikitext(item.KP)
				:done()
				:tag('td')
					:wikitext(item.duration)
				:done()
				:tag('td')
					:wikitext(item.wrongname)
				:done()
				
			:done()
			:done()
		end
		
	return out
	
	--for debugging
	--return '<pre>'..mw.text.jsonEncode(allWeapons, mw.text.JSON_PRETTY)..'</pre>'
	
end

function p.stones()
	
	local variants = {'Coarse','Rugged','Average','Fine','Sturdy','Perfect'}
	local stones ={'Flint','Basalt','Andesite','Granite','Deathstone'}
	
	local allStones = {}	
	for i,item in ipairs(variants) do
		for j,jtem in ipairs(stones) do
			table.insert(allStones,{pagename='[[' .. item .. ' ' .. jtem .. ' (Etched)]]',resource='[[' .. item .. ' ' .. jtem .. ']]'})
		end
	end

		
	for i,item in ipairs(allStones) do
		
		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.pagename .. '|?Activity XP #- = data|mainlabel=-')
		if type(query)=='table' then
			item.XP = query[1].data
		end
		
		local query = mw.smw.ask(item.pagename .. '|?Activity duration #- = data|mainlabel=-')
		if type(query)=='table' then
			item.duration = query[1].data
		end
		
		local query = mw.smw.ask(item.pagename .. '|?Activity KP #- = data|mainlabel=-')
		if type(query)=='table' then
			item.KP = query[1].data
		end
		
		local query = mw.smw.ask(item.pagename .. '|?Recipe output #- = data|mainlabel=-')
		if type(query)=='table' then
			item.output = query[1].data
		end
		
		local query = mw.smw.ask(item.pagename .. '|?Name #- = data|mainlabel=-')
		if type(query)=='table' then
			item.name = query[1].data
		end
		
	end
	
	local out = mw.html.create('table')
		:addClass('wikitable sortable')
		:tag('tr')
			:tag('th')
				:wikitext('Page name')
			:done()
			:tag('th')
				:wikitext('Item name')
			:done()
			:tag('th')
				:wikitext('Resource')
			:done()
			:tag('th')
				:wikitext('Recipe Output')
			:done()
			:tag('th')
				:wikitext('Facility')
			:done()
			:tag('th')
				:wikitext('XP')
			:done()
			:tag('th')
				:wikitext('KP')
			:done()
			:tag('th')
				:wikitext('duration')
			:done()
		:done()
		
		for i,item in ipairs(allStones) do
			local row = out:tag('tr')
				:tag('td')
					:wikitext(item.pagename)
				:done()
				:tag('td')
					:wikitext(item.name)
				:done()
				:tag('td')
					:wikitext(item.resource)
				:done()
				:tag('td')
					:wikitext(item.output)
				:done()
				:tag('td')
					:wikitext(item.facility)
				:done()
				:tag('td')
					:wikitext(item.XP)
				:done()
				:tag('td')
					:wikitext(item.KP)
				:done()
				:tag('td')
					:wikitext(item.duration)
				:done()
				
			:done()
			:done()
		end
		
	return out
	
	--for debugging
	--return '<pre>'..mw.text.jsonEncode(allWeapons, mw.text.JSON_PRETTY)..'</pre>'
	
end

function p.metals()
	
	local metals ={'Laterite Iron','Folrian Cabranese','Sylentnite Flantium','Maloic Adathril',
					'Limonite Iron','Aulsian Cabranese','Yehrite Flantium','Rigic Adathril',
					'Goethite Iron','Babian Cabranese','Holmitite Flantium','Portoic Adathril',
					'Hematite Iron','Morian Cabranese','Amirite Flantium','Caric Adathril',
					'Magnetite Iron','Shaprian Cabranese','Eysite Flantium','Masic Adathril',
					'Siderite Iron','Temberian Cabranese','Seethalite Flantium','Fortoic Adathril'}
					
	
	local allMetals = {}	
	for i,item in ipairs(metals) do
		table.insert(allMetals,{pagename='[[' .. item .. ' Ingot]]',resource='[[' .. item .. ' Ore]]'})
	end

		
	for i,item in ipairs(allMetals) do
		
		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.pagename .. '|?Activity XP #- = data|mainlabel=-')
		if type(query)=='table' then
			item.XP = query[1].data
		end
		
		local query = mw.smw.ask(item.pagename .. '|?Activity duration #- = data|mainlabel=-')
		if type(query)=='table' then
			item.duration = query[1].data
		end
		
		local query = mw.smw.ask(item.pagename .. '|?Activity KP #- = data|mainlabel=-')
		if type(query)=='table' then
			item.KP = query[1].data
		end
		
		local query = mw.smw.ask(item.pagename .. '|?Recipe output #- = data|mainlabel=-')
		if type(query)=='table' then
			item.output = query[1].data
		end
		
		local query = mw.smw.ask(item.pagename .. '|?Name #- = data|mainlabel=-')
		if type(query)=='table' then
			item.name = query[1].data
		end
		
	end
	
	local out = mw.html.create('table')
		:addClass('wikitable sortable')
		:tag('tr')
			:tag('th')
				:wikitext('Page name')
			:done()
			:tag('th')
				:wikitext('Item name')
			:done()
			:tag('th')
				:wikitext('Resource')
			:done()
			:tag('th')
				:wikitext('Recipe Output')
			:done()
			:tag('th')
				:wikitext('Facility')
			:done()
			:tag('th')
				:wikitext('XP')
			:done()
			:tag('th')
				:wikitext('KP')
			:done()
			:tag('th')
				:wikitext('duration')
			:done()
		:done()
		
		for i,item in ipairs(allMetals) do
			local row = out:tag('tr')
				:tag('td')
					:wikitext(item.pagename)
				:done()
				:tag('td')
					:wikitext(item.name)
				:done()
				:tag('td')
					:wikitext(item.resource)
				:done()
				:tag('td')
					:wikitext(item.output)
				:done()
				:tag('td')
					:wikitext(item.facility)
				:done()
				:tag('td')
					:wikitext(item.XP)
				:done()
				:tag('td')
					:wikitext(item.KP)
				:done()
				:tag('td')
					:wikitext(item.duration)
				:done()
				
			:done()
			:done()
		end
		
	return out
	
	--for debugging
	--return '<pre>'..mw.text.jsonEncode(allWeapons, mw.text.JSON_PRETTY)..'</pre>'
	
end

function p.bones()
	
	local bones ={'Crooked Goat Horn',
'Yellowing Rams Horn',
'Streaky Bone Spike',
'Cracked Femur Shard',
'Gray Goat Horn',
'Mottled Rams Horn',
'Dappled Bone Spike',
'Dusty Femur Shard',
'Ridged Goat Horn',
'Sturdy Rams Horn',
'Bistre Bone Spike',
'Weathered Femur Shard',
'Smooth Goat Horn',
'Chunky Rams Horn',
'Pointed Bone Spike',
'Striated Femur Shard',
'Long Goat Horn',
'Pristine Rams Horn',
'Jagged Bone Spike',
'Sharp Femur Shard',
'Robust Goat Horn',
'Immaculate Rams Horn',
'Razor Bone Spike',
'Chunky Femur Shard'}
				
	local allBones = {}	
	for i,item in ipairs(bones) do
		table.insert(allBones,{pagename='[[' .. item .. ' (Brewed)]]',resource='[[' .. item .. ']]'})
	end

		
	for i,item in ipairs(allBones) do
		
		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.pagename .. '|?Activity XP #- = data|mainlabel=-')
		if type(query)=='table' then
			item.XP = query[1].data
		end
		
		local query = mw.smw.ask(item.pagename .. '|?Activity duration #- = data|mainlabel=-')
		if type(query)=='table' then
			item.duration = query[1].data
		end
		
		local query = mw.smw.ask(item.pagename .. '|?Activity KP #- = data|mainlabel=-')
		if type(query)=='table' then
			item.KP = query[1].data
		end
		
		local query = mw.smw.ask(item.pagename .. '|?Recipe output #- = data|mainlabel=-')
		if type(query)=='table' then
			item.output = query[1].data
		end
		
		local query = mw.smw.ask(item.pagename .. '|?Name #- = data|mainlabel=-')
		if type(query)=='table' then
			item.name = query[1].data
		end
		
	end
	
	local out = mw.html.create('table')
		:addClass('wikitable sortable')
		:tag('tr')
			:tag('th')
				:wikitext('Page name')
			:done()
			:tag('th')
				:wikitext('Item name')
			:done()
			:tag('th')
				:wikitext('Resource')
			:done()
			:tag('th')
				:wikitext('Recipe Output')
			:done()
			:tag('th')
				:wikitext('Facility')
			:done()
			:tag('th')
				:wikitext('XP')
			:done()
			:tag('th')
				:wikitext('KP')
			:done()
			:tag('th')
				:wikitext('duration')
			:done()
		:done()
		
		for i,item in ipairs(allBones) do
			local row = out:tag('tr')
				:tag('td')
					:wikitext(item.pagename)
				:done()
				:tag('td')
					:wikitext(item.name)
				:done()
				:tag('td')
					:wikitext(item.resource)
				:done()
				:tag('td')
					:wikitext(item.output)
				:done()
				:tag('td')
					:wikitext(item.facility)
				:done()
				:tag('td')
					:wikitext(item.XP)
				:done()
				:tag('td')
					:wikitext(item.KP)
				:done()
				:tag('td')
					:wikitext(item.duration)
				:done()
				
			:done()
			:done()
		end
		
	return out
	
	--for debugging
	--return '<pre>'..mw.text.jsonEncode(allWeapons, mw.text.JSON_PRETTY)..'</pre>'
	
end

return p