Module:Sandbox/User:Alsang: Difference between revisions

From Brighter Shores Wiki
Jump to navigation Jump to search
Content added Content deleted
(remove completed lists)
Tag: Manual revert
No edit summary
Line 4: Line 4:
local variants = {'Basic','Moderate','Fine','Strong','Superior','Perfect'}
local variants = {'Basic','Moderate','Fine','Strong','Superior','Perfect'}
local weaponsStone = {
local weapons1 = {'Hammerfist','Throwing Stones','Stone Slab Shield',
'Hammerfist',
'Stone Mace','Stone Discs','War Hammer',
'Throwing Stones',
'Bolas','Stone Chunk Shield','Double Headed Hammer',
'Throwing Clubs','Great Stone Mace',' Polished Stone Shield',
'Stone Slab Shield',
'Stone Mace',
'Throwing Hammers','Great Hammer','Sling'}
'Stone Discs',
local weapons2 = {'Hammerfist','Throwing Stones','Stone Slab Shield',
'Stone Mace','Stone Discs','War Hammer',
'War Hammer',
'Bolas',
'Bolas','Stone Chunk Shield','Double Headed Hammer',
'Throwing Clubs','Great Stone Mace',' Polished Stone Shield',
'Stone Chunk Shield',
'Throwing Hammers','Great Hammer','Sling'}
'Double Headed Hammer',
'Throwing Clubs',
local weapons3 = {'Hammerfist','Throwing Stones','Stone Slab Shield',
'Stone Mace','Stone Discs','War Hammer',
'Great Stone Mace',
'Bolas','Stone Chunk Shield','Double Headed Hammer',
' Polished Stone Shield',
'Throwing Clubs','Great Stone Mace',' Polished Stone Shield',
'Throwing Hammers',
'Throwing Hammers','Great Hammer','Sling'}
'Great Hammer',
'Sling'}
local weaponsMetal = {
weapons = weapons1
'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 = {}
local allWeapons = {}
for i,item in ipairs(variants) do
for i,item in ipairs(variants) do
Line 29: Line 70:
end
end


for i,item in ipairs(allWeapons) do
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=-')
local query = mw.smw.ask(item.pagename .. '|?Uses facility #- = data|mainlabel=-')
Line 37: Line 82:
end
end
local query = mw.smw.ask(item.pagename .. '|?Activity XP #- = data|mainlabel=-')
local query = mw.smw.ask(item.wrongname .. '|?Name #- = data|mainlabel=-')
if type(query)=='table' then
if type(query)=='table' then
item.XP = query[1].data
item.wrongitemname = query[1].data
end
end
local query = mw.smw.ask(item.pagename .. '|?Activity duration #- = data|mainlabel=-')
local query = mw.smw.ask(item.wrongname .. '|?Uses facility #- = data|mainlabel=-')
if type(query)=='table' then
if type(query)=='table' then
item.duration = query[1].data
item.wrongfacility = 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
Line 72: Line 102:
:tag('th')
:tag('th')
:wikitext('Item name')
:wikitext('Item name')
:done()
:tag('th')
:wikitext('Recipe Output')
:done()
:done()
:tag('th')
:tag('th')
Line 80: Line 107:
:done()
:done()
:tag('th')
:tag('th')
:wikitext('XP')
:wikitext('Wrong Page (shouldnt exist)')
:done()
:done()
:tag('th')
:tag('th')
:wikitext('KP')
:wikitext('Wrongpage Item name')
:done()
:done()
:tag('th')
:tag('th')
:wikitext('duration')
:wikitext('Wrongpage Facility')
:done()
:tag('th')
:wikitext('Wrong Page (shouldnt exist)')
:done()
:done()
:done()
:done()
Line 99: Line 123:
:done()
:done()
:tag('td')
:tag('td')
:wikitext(item.name)
:wikitext(item.itemname)
:done()
:tag('td')
:wikitext(item.output)
:done()
:done()
:tag('td')
:tag('td')
Line 108: Line 129:
:done()
:done()
:tag('td')
:tag('td')
:wikitext(item.XP)
:wikitext(item.wrongname)
:done()
:done()
:tag('td')
:tag('td')
:wikitext(item.KP)
:wikitext(item.wrongitemname)
:done()
:done()
:tag('td')
:tag('td')
:wikitext(item.duration)
:wikitext(item.wrongfacility)
:done()
:tag('td')
:wikitext(item.wrongname)
:done()
:done()
Line 127: Line 145:
--for debugging
--for debugging
--return '<pre>'..mw.text.jsonEncode(allWeapons, mw.text.JSON_PRETTY)..'</pre>'
--return '<pre>'..mw.text.jsonEncode(args, mw.text.JSON_PRETTY)..'</pre>'
end
end

Revision as of 23:37, 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(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