RuneScape Wiki
Register
Advertisement

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

-- <pre>
-- blank template
--[[
	[''] = { often = '', sometimes = '', rarely = '', itemqty = 1, compqty = 8,
			alias = {}, cat = '', name = '' },
--]]
-- NOTES:
-- Do not include an item quantity of 1, this is done in the parent module (other default amounts are fine to include)

local data = {
	-- basic stuff
	['default'] = { often = 'simple', rarely = 'variable', compqty = 1,
			cat = 'default', name = 'Default disassembly items' },

	['clothing'] = { often = 'cover, simple, padded', rarely = 'variable', compqty = 1, x10 = true,
			cat = 'clothing', name = 'Clothing' },

	-- invention
	['all gizmos'] = {
		group = true,
		sometimes = 'simple',
		rarely = 'base, blade, clear, connector, cover, crafted, deflecting, delicate, flexible, head, magic, metallic, organic, padded, plated, smooth, spiked, spiritual, stave, tensile, dextrous, direct, enhancing, ethereal, evasive, healthy, heavy, imbued, light, living, pious, powerful, precious, precise, protective, refined, sharp, strong, stunning, subtle, swift, variable, faceted, clockwork',
		compqty = 3,
		x10 = true,
		cat = 'gizmo',
		name = 'Gizmos and gizmo shells',
		nocalc = true,
		members = {
			['gizmo'] = { compqty = 3, alias = {'gizmos'} },
			['gizmo shell'] = { compqty = 1, alias = {'gizmo shells'} },
			['gizmo6'] = { compqty = 6, alias = {'common relics'} },
			['gizmo12'] = { compqty = 12, alias = {'uncommon relics'} },
		}
	},

	-- runecrafting
	['runes and talismans'] = {
		group = true,
		often = 'magic', sometimes = 'crafted', rarely = 'powerful',
		cat = 'runes', name = 'Runes and talismans',
		members = {
			['talisman'] = { compqty = 1, alias = { 'talismans' } },
			['rune'] = { compqty = 8, itemqty = 50,  alias = { 'runes' } }
		}
	},

	-- materials
	['food'] = { often = 'organic', sometimes = 'crafted', rarely = 'living, healthy, enhancing', compqty = 1,
			alias = { 'herbs', 'herb' }, cat = 'food', name = 'Food and herbs' },

	['all gems'] = {
		group = true,
		often = 'clear, delicate, smooth', rarely = 'precious, light, faceted',
		cat = 'gems', name = 'Gems',
		members = {
			['uncut gem'] = { compqty = 1,  alias = { 'uncut gems' } },
			['gem'] = { compqty = 2,  alias = { 'gems' } },
			['big gem'] = { compqty = 6 }
		}
	},

	['log'] = { often = 'simple', rarely = 'living', compqty = 1,
			alias = { 'logs', 'hide', 'hides' }, cat = 'logs', name = 'Logs and hides' },

	['seed'] = { often = 'organic', rarely = 'living', compqty = 1,
			alias = { 'seeds' }, cat = 'seeds', name = 'Seeds' },

	['all potions'] = {
		group = true,
		often = 'delicate, organic, crafted', rarely = 'enhancing, healthy',
		cat = 'potions', name = 'Potions and flasks',
		members = {
				['potion'] = { compqty = 1, potion = true, alias = { 'potions', 'flask', 'flasks' } },
				['1 dose'] = { compqty = 1 },
				['2 dose'] = { compqty = 2 },
				['3 dose'] = { compqty = 3 },
				['4 dose'] = { compqty = 4 },
				['5 dose'] = { compqty = 5 },
				['6 dose'] = { compqty = 6 }
		}
	},

	['ore'] = { often = 'simple', compqty = 1,
			alias = { 'ores' }, cat = 'ores', name = 'Ores' },

	['pb and l'] = {
		group = true,
		often = 'simple, crafted',
		cat = 'planks', name = 'Planks, bars, and leather',
		members = {
			['bar'] = { compqty = 2,  alias = { 'bars', 'flatpacks' } },
			['plank'] = { compqty = 1, alias = { 'planks', 'leather' } }
		}
	},

	['all glass'] = {
		group = true,
		often = 'clear, delicate, smooth', rarely = 'enhancing',
		cat = 'glass', name = 'Glass items',
		members = {
			['glass 1'] = { compqty = 1, alias = { 'glass' } },
			['glass 2'] = { compqty = 2 }
		}
	},

	['all faceted glass'] = {
		group = true,
		often = 'clear, delicate, smooth', rarely = 'faceted, enhancing',
		cat = 'faceted glass', name = 'Faceted glass items',
		members = {
			['faceted glass 1'] = { compqty = 1, alias = { 'faceted glass' } },
			['faceted glass 2'] = { compqty = 2 }
		}
	},

	['clockwork'] = { often = 'simple', sometimes = 'crafted', rarely = 'clockwork', compqty = 1,
			cat = 'clockwork', name = 'Clockwork items' },

	-- summoning
	['pouch'] = { often = 'spiritual, crafted, flexible', rarely = 'powerful', compqty = 3,
			alias = { 'pouches' }, cat = 'pouches', name = 'Pouches' },

	['scroll'] = { often = 'spiritual, crafted', rarely = 'powerful', itemqty = 10,  compqty = 2,
			alias = { 'scrolls' }, cat = 'scrolls', name = 'Scrolls' },

	['charm'] = { often = 'spiritual', compqty = 1,
			alias = { 'charms' }, cat = 'charms', name = 'Charms', nocalc = true },

	['divination'] = { often = 'magic', sometimes = 'crafted', rarely = 'ethereal', compqty = 3,
			alias = { 'divine location', 'portent', 'portents', 'sign', 'signs' }, cat = 'divination', name = 'Signs, portents, and divine locations' },

	-- prayer
	['bones and remains'] = {
		group = true,
		often = 'organic', rarely = 'pious',
		cat = 'bones', name = 'Bones and remains',
		members = {
			['remain'] = { compqty = 1,  alias = { 'remains' } },
			['bone'] = { compqty = 2,  alias = { 'bones' } }
		}
	},

	['ashes'] = { often = 'organic', rarely = 'pious, ethereal', compqty = 2,
			cat = 'ashes', name = 'Ashes' },

	-- misc
	['all crystal tool'] = {
		group = true,
		often = 'crystal, faceted', sometimes = 'clear, delicate, smooth',
		cat = 'crystal tool', name = 'Crystal tools and teleport seeds',
		nocalc = true,
		members = {
			['crystal tool'] = { compqty = 3, alias = { 'crystal tools' } },
			['crystal tool 1'] = { compqty = 1 },
				
		}
	},

	['crystal fruit'] = { often = 'simple, organic', sometimes = 'crystal', rarely = 'healthy', compqty = 5,
			cat = 'crystal fruit', name = 'Crystal tree blossoms', nocalc = true },


	-- =================
	-- EQUIPMENT
	-- =================
	['all jewellery'] = {
		group = true,
		often = 'delicate, connector, smooth', rarely = 'precious, enhancing', x10 = true,
		cat = 'jewellery', name = 'Jewellery',
		members = {
			['jewellery'] = { compqty = 5, alias = { 'jewelry' } },
			['unstrung jewellery'] = { compqty = 2, alias = { 'jewellery (u)' } }
		}
	},

	['shields'] = { often = 'cover, base, deflecting', rarely = 'strong, protective', compqty = 8, x10 = true,
			alias = { 'melee shield', 'magic shield', 'ranged shield', 'hybrid shield' }, cat = 'shields', name = 'Shields' },

	-- melee items
	['melee armour'] = {
		group = true,
		often = 'cover, plated, deflecting', rarely = 'strong, protective', x10 = true,
		cat = 'melee armour', name = 'Melee armour',
		members = {
			['melee 8'] = { compqty = 8, alias = { 'melee body', 'melee legs' } },
			['melee 6'] = { compqty = 6, alias = { 'melee cape', 'melee helm' } },
			['melee 4'] = { compqty = 4, alias = { 'melee boots', 'melee gloves' } },
			['melee 2'] = { compqty = 2, alias = { 'melee crest' } },
			['melee 1'] = { compqty = 1, alias = { 'melee essence' } }
		}
	},

	['dagger'] = { often = 'base, blade, spiked', rarely = 'precise, light', compqty = 8, x10 = true,
			cat = 'dagger', name = 'Daggers' },

	['hatchet'] = { often = 'head, blade, connector', rarely = 'sharp, strong', compqty = 8, x10 = true,
			cat = 'hatchet', name = 'Hatchets' },

	['all maces'] = {
		group = true,
		often = 'base, head, smooth', rarely = 'heavy, dextrous', x10 = true,
		cat = 'mace', name = 'Maces',
		members = {
			['mace'] = { compqty = 8 },
			['2h mace'] = { compqty = 12 }
		}
	},

	['sword'] = { often = 'base, blade, metallic', rarely = 'precise, dextrous', compqty = 8, x10 = true,
			cat = 'sword', name = 'Swords' },

	['scimitar'] = { often = 'base, blade, metallic', rarely = 'sharp, subtle', compqty = 8, x10 = true,
			cat = 'scimitar', name = 'Scimitars' },

	['pickaxe'] = { often = 'base, head, spiked', rarely = 'heavy, direct', compqty = 8, x10 = true,
			cat = 'pickaxe', name = 'Pickaxes' },

	['maul'] = { often = 'base, head, plated', rarely = 'heavy, strong', compqty = 12, x10 = true,
			cat = 'maul', name = 'Mauls' },

	['all longswords'] = {
		group = true,
		often = 'base, blade, metallic', rarely = 'sharp, dextrous', x10 = true,
		cat = 'longsword', name = 'Longswords',
		members = {
			['longsword'] = { compqty = 8 },
			['2h longsword'] = { compqty = 12, alias = { 'trouble brewing flags' } }
		}
	},

	['warhammer'] = { often = 'base, head, smooth', rarely = 'heavy, strong', compqty = 8, x10 = true,
			cat = 'warhammer', name = 'Warhammers' },

	['battleaxe'] = { often = 'head, blade, smooth', rarely = 'sharp, direct', compqty = 8, x10 = true,
			cat = 'battleaxe', name = 'Battleaxes' },

	['all claws'] = {
		group = true,
		often = 'connector, blade, spiked', rarely = 'sharp, swift', x10 = true,
		cat = 'claw', name = 'Claws',
		members = {
			['claw'] = { compqty = 8, alias = { 'claws' } },
			['2h claw'] = { compqty = 12, alias = { '2h claws' } },
		}
	},

	['all 2h swords'] = {
		group = true,
		often = 'base, blade, metallic', rarely = 'sharp, strong', x10 = true,
		cat = '2h sword', name = 'Two-handed swords',
		members = {
			['2h sword'] = { compqty = 12 },
			['2h sword blade'] = { compqty = 6 },
			['2h sword blade part'] = { compqty = 4, alias = { 'godsword shards', '2h sword blade parts' } },
			['2h sword shard'] = { compqty = 2, alias = { 'godsword shard', '2h sword shards' } }
		}
	},

	['spears and hastae'] = {
		group = true,
		often = 'stave, blade, crafted', rarely = 'precise, direct', x10 = true,
		cat = 'spear', name = 'Spears and hastae',
		members = {
			['spear'] = { compqty = 12 },
			['hasta'] = { compqty = 8 }
		}
	},

	['all halberds'] = {
		group = true,
		often = 'stave, blade, deflecting', rarely = 'sharp, stunning', x10 = true,
		cat = 'halberd', name = 'Halberds',
		members = {
			['halberd'] = { compqty = 12 },
			['1h halberd'] = { compqty = 8, alias = { 'mjolnir' } }
		}
	},

	['defender'] = { often = 'base, deflecting', sometimes = 'precise, subtle', compqty = 8, x10 = true,
			cat = 'defender', name = 'Defenders, reprisers, and rebounders', nocalc = true },


	['defender piece'] = { often = 'connector, deflecting', sometimes = 'variable, enhancing', compqty = 4, x10 = true,
			cat = 'defender piece', name = 'Defender pieces', nocalc = true },

	['whip'] = { often = 'connector, flexible, blade', rarely = 'sharp, subtle', compqty = 8, x10 = true,
			cat = 'whip', name = 'Whips' },

	-- magic items
	['magic armour'] = {
		group = true,
		often = 'cover, magic, deflecting', rarely = 'powerful, protective', x10 = true,
		cat = 'magic armour', name = 'Magic armour',
		members = {
			['magic 8'] = { compqty = 8, alias = { 'magic body', 'magic legs' } },
			['magic 6'] = { compqty = 6, alias = { 'magic cape', 'magic helm' } },
			['magic 4'] = { compqty = 4, alias = { 'magic boots', 'magic gloves' } },
			['magic 2'] = { compqty = 2, alias = { 'magic crest' } },
			['magic 1'] = { compqty = 1, alias = { 'magic essence' } }
		}
	},

	['staff'] = { often = 'stave, magic, padded', rarely = 'powerful, imbued', compqty = 12, x10 = true,
			alias = { 'staves' }, cat = 'staff', name = 'Staves' },

	['wand'] = { often = 'base, head, magic', rarely = 'precise, imbued', compqty = 8, x10 = true,
			alias = { 'wands' }, cat = 'wand', name = 'Wands' },

	['orb'] = { often = 'delicate, magic, smooth', rarely = 'enhancing, ethereal, faceted', compqty = 8, x10 = true,
			alias = { 'orbs', 'book', 'books' }, cat = 'orb', name = 'Magic off-hand weapons' },

	-- ranged items
	['ranged armour'] = {
		group = true,
		often = 'cover, tensile, padded', rarely = 'evasive, protective', x10 = true,
		cat = 'ranged armour', name = 'Ranged armour',
		members = {
			['ranged 8'] = { compqty = 8, alias = { 'ranged body', 'ranged legs' } },
			['ranged 6'] = { compqty = 6, alias = { 'ranged cape', 'ranged helm' } },
			['ranged 4'] = { compqty = 4, alias = { 'ranged boots', 'ranged gloves' } },
			['ranged 2'] = { compqty = 2, alias = { 'ranged crest' } },
			['ranged 1'] = { compqty = 1, alias = { 'ranged essence' } }
		}
	},

	['all shortbows'] = {
		group = true,
		often = 'stave, tensile, flexible', rarely = 'precise, dextrous', x10 = true,
		cat = 'shortbows', name = 'Shortbows',
		members = {
			['shortbow'] = { compqty = 12, alias = { 'shortbows' } },
			['shortbow (u)'] = { compqty = 4,  alias = { 'shortbows (u)' } }
		}
	},

	['all shieldbows'] = {
		group = true,
		often = 'stave, tensile, flexible', rarely = 'precise, strong', x10 = true,
		cat = 'shieldbows', name = 'Shieldbows',
		members = {
			['shieldbow'] = { compqty = 12, alias = { 'shieldbows', 'longbow', 'longbows' } },
			['shieldbow (u)'] = { compqty = 4,  alias = { 'shieldbows (u)' } }
		}
	},

	['arrows and arrowheads'] = {
		group = true,
		often = 'stave, head, crafted', rarely = 'precise',
		cat = 'arrows', name = 'Arrows and arrowheads',
		members = {
			['arrow'] = { itemqty = 50, compqty = 6,  alias = { 'arrows' } },
			['arrowhead'] = { itemqty = 50, compqty = 2,  alias = { 'arrowheads' } }
		}
	},

	['bolts and bolt tips'] = {
		group = true,
		often = 'base, head, spiked', rarely = 'stunning',
		cat = 'bolts', name = 'Bolts and bolt tips',
		members = {
			['bolt'] = { itemqty = 50, compqty = 6, alias = { 'bolts' } },
			['bolt tip'] = { itemqty = 50, compqty = 2, alias = { 'bolt tips' } }
		}
	},

	['crossbows and stocks'] = {
		group = true,
		often = 'connector, tensile, spiked', rarely = 'stunning, dextrous', x10 = true,
		cat = 'crossbows', name = 'Crossbows and stocks',
		members = {
			['crossbow'] = { compqty = 8, alias = { 'crossbows' } },
			['unstrung crossbow'] = { compqty = 4, alias = { 'unstrung crossbows' } },
			['stock'] = { compqty = 2, alias = { 'stock', 'limbs' } }
		}
	},

	['2h crossbow'] = { often = 'connector, tensile, crafted', rarely = 'stunning, dextrous', compqty = 12, x10 = true,
			alias = { '2h crossbows' }, cat = '2h crossbows', name = 'Two-handed crossbows' },

	['all darts'] = {
		group = true,
		often = 'simple, blade, spiked', rarely = 'sharp, swift',
		cat = 'darts', name = 'Darts',
		members = {
			['dart'] = { itemqty = 50, compqty = 8, alias = { 'darts', 'javelin', 'javelins' } },
			['big javelin'] = { compqty = 12, x10 = true }
		}
	},

	['throwing knives'] = {
		group = true,
		often = 'simple, blade, metallic', rarely = 'sharp, swift',
		cat = 'knives', name = 'Throwing knives',
		members = {
			['knife'] = { itemqty = 50, compqty = 8, alias = { 'knives' } },
			['glaive'] = { compqty = 8, x10 = true, alias = { 'glaives' } }
		}
	},

	['all throw axes'] = {
		group = true,
		often = 'simple, blade, plated', rarely = 'sharp, swift',
		cat = 'throwing axes', name = 'Throwing axes',
		members = {
			['throwing axe'] = { itemqty = 50, compqty = 8, alias = { 'throwing axes' } },
			['chakram'] = { compqty = 8, x10 = true }
		}
	},

	['cannonball'] = { often = 'simple, head', rarely = 'stunning, direct', itemqty = 50, compqty = 8,
			alias = { 'cannonballs', 'bolas' }, cat = 'cannonballs', name = 'Cannonballs' },

	-- hybrid items
	['hybrid armour'] = {
		group = true,
		often = 'cover, deflecting', rarely = 'powerful, evasive, protective', x10 = true,
		cat = 'hybrid armour', name = 'Hybrid armour',
		members = {
			['hybrid 8'] = { compqty = 8, alias = { 'hybrid body', 'hybrid legs' } },
			['hybrid 6'] = { compqty = 6, alias = { 'hybrid cape', 'hybrid helm' } },
			['hybrid 4'] = { compqty = 4, alias = { 'hybrid boots', 'hybrid gloves' } },
			['hybrid 2'] = { compqty = 2, alias = { 'hybrid crest' } },
			['hybrid 1'] = { compqty = 1, alias = { 'hybrid essence' } }
		}
	}
}

-- copy of data with nested groups unpacked
local allcategories = {}

-- fields that are copied from group
local copiedfields = { 'often', 'sometimes', 'rarely', 'x10', 'name', 'cat', 'nocalc' }

-- nested grouping
for w, n in pairs(data) do
	-- if a group, then copy it
	if n.group then
		-- for each member, named "x", take "y"
		for x, y in pairs(n.members) do
			-- table to store
			local _temp = {}

			-- copy the group's fields
			-- do group first in case they need to be overridden
			for _, z in ipairs(copiedfields) do
				_temp[z] = n[z]
			end

			-- copy the unique fields
			for z, t in pairs(y) do
				_temp[z] = t
			end

			-- add to list
			allcategories[x] = _temp
		end
	-- otherwise store directly
	else
		allcategories[w] = n
	end
end

-- aliases

-- list of names to check
local names = {}

for w, _ in pairs(allcategories) do
	table.insert(names,w)
end

for _, v in ipairs(names) do
	local aliases = allcategories[v].alias or {}
	for _, y in ipairs(aliases) do
		allcategories[y] = allcategories[v]
	end
end

return allcategories
Advertisement