4,687
edits
(Added Menu to the bottom of the template. Excluded modded items) |
m (Cleaned up script a bit, removed Menu template) |
||
Line 8: | Line 8: | ||
<syntaxhighlight lang="javascript" line> | <syntaxhighlight lang="javascript" line> | ||
// Settings // | // Settings // | ||
let searchTerm = ' | let searchTerm = 'Ancient'; // The proper capitalization of the search term | ||
let returnEquipmentTemplate = false; // | let returnEquipmentTemplate = false; // returns a template for {{EquipmentTableFromList}} instead | ||
// End of Settings // | // End of Settings // | ||
const search = (item) => !item.isModded && item.name.toLowerCase().includes(searchTerm.toLowerCase()); | |||
const search = ( | const wikiIcon = (item, icon, extras) => { | ||
const wikiIcon = ( | |||
if (!returnEquipmentTemplate) | if (!returnEquipmentTemplate) | ||
return `*${ | return `*${item.namespace.includes('TotH') ? '{{TotH}}' : item.namespace.includes('AoD') ? '{{AoD}}' : item.namespace.includes('ItA') ? '{{ItA}}' : ''}{{${icon}|${item.name}${extras}}}`; | ||
return item.name; | |||
} | } | ||
const pushResults = ( | const pushResults = (arr, header, icon, extras='') => { | ||
if ( | if (arr.length > 0 && !returnEquipmentTemplate && !results.includes(header)) | ||
results.push( | results.push(header); | ||
arr.forEach(item => { | |||
if (!returnEquipmentTemplate || item.validSlots !== undefined) | if (!returnEquipmentTemplate || item.validSlots !== undefined) | ||
results.push(wikiIcon(item, | results.push(wikiIcon(item, icon, extras)); | ||
}); | }); | ||
} | } | ||
Line 30: | Line 28: | ||
if (returnEquipmentTemplate) results.push(`{{V|${gameVersion.substr(1)}}}\n\n==${searchTerm} Equipment==\n===Melee Weapons===\n{{EquipmentTableFromList\n\n}}\n===Ranged Weapons and Ammo===\n{{EquipmentTableFromList\n\n}}\n===Armour===\n{{EquipmentTableFromList`); | if (returnEquipmentTemplate) results.push(`{{V|${gameVersion.substr(1)}}}\n\n==${searchTerm} Equipment==\n===Melee Weapons===\n{{EquipmentTableFromList\n\n}}\n===Ranged Weapons and Ammo===\n{{EquipmentTableFromList\n\n}}\n===Armour===\n{{EquipmentTableFromList`); | ||
if (!returnEquipmentTemplate) results.push(`{{Disam}}{{V|${gameVersion.substr(1)}}}\n`, `'''${searchTerm}''' may refer to:`); | if (!returnEquipmentTemplate) results.push(`{{Disam}}{{V|${gameVersion.substr(1)}}}\n`, `'''${searchTerm}''' may refer to:`); | ||
pushResults( | pushResults(game.items.weapons.filter(x => search(x) && !x.validSlots.includes('Quiver')), '===Equipment===', 'ItemIcon'); | ||
pushResults( | pushResults(game.items.equipment.filter(x => search(x) && x.validSlots.includes('Quiver')), '===Equipment===', 'ItemIcon'); | ||
pushResults( | pushResults(game.items.equipment.filter(x => search(x) && !(x instanceof WeaponItem) && !x.validSlots.includes('Quiver')), '===Equipment===', 'ItemIcon'); | ||
pushResults( | pushResults(game.items.filter(x => x.validSlots === undefined && !(x instanceof OpenableItem) && !(x instanceof BoneItem) && !(x instanceof FoodItem) && search(x)), '===Items===', 'ItemIcon'); | ||
pushResults( | pushResults(game.items.openables.filter(x => search(x)), '===Openables===', 'ItemIcon'); | ||
pushResults( | pushResults(game.items.bones.filter(x => search(x)), '===Bones===', 'ItemIcon'); | ||
pushResults( | pushResults(game.items.food.filter(x => search(x)), '===Food===', 'ItemIcon'); | ||
pushResults( | pushResults(game.monsters.filter(x => search(x)), '===Combat===', 'MonsterIcon'); | ||
pushResults( | pushResults([...game.combatAreas.allObjects, ...game.slayerAreas.allObjects, ...game.dungeons.allObjects].filter(x => search(x)), '===Combat===', 'ZoneIcon'); | ||
pushResults( | pushResults([...game.standardSpells.allObjects, ...game.ancientSpells.allObjects, ...game.archaicSpells.allObjects, ...game.curseSpells.allObjects, ...game.auroraSpells.allObjects].filter(x => search(x)), '===Spells===', 'SpellIcon'); | ||
pushResults( | pushResults(game.shop.purchases.filter(x => search(x)), '===Purchases===', 'UpgradeIcon'); | ||
pushResults( | pushResults(game.prayers.filter(x => search(x)), '===Prayers===', 'PrayerIcon'); | ||
pushResults( | pushResults([...game.township.buildings.allObjects, ...game.township.seasons.allObjects, ...game.township.biomes.allObjects, ...game.township.resources.allObjects].filter(x => search(x)), '===Township===', 'TownshipIcon'); | ||
pushResults( | pushResults(game.skills.filter(x => search(x)), '===Others===', 'Skill'); | ||
pushResults( | pushResults(game.pets.filter(x => search(x)), '===Others===', 'PetIcon'); | ||
pushResults( | pushResults(game.astrology.actions.filter(x => search(x)), '===Others===', 'ConstellationIcon'); | ||
pushResults( | pushResults(game.agility.actions.filter(x => search(x)), '===Others===', 'AgilityIcon'); | ||
pushResults( | pushResults(game.thieving.actions.filter(x => search(x)), '===Others===', 'Icon', '|type=thieving'); | ||
if (cloudManager.hasAoDEntitlementAndIsEnabled) | if (cloudManager.hasAoDEntitlementAndIsEnabled) | ||
pushResults( | pushResults(game.cartography.worldMaps.getObjectByID('melvorAoD:Melvor').pointsOfInterest.filter(x => search(x)), '===Others===', 'POIIcon'); | ||
let outputString = ``; | let outputString = ``; | ||
results.forEach((str, i) => { outputString += (returnEquipmentTemplate ? i > 0 ? `\n|${str}` : `${str}` : `${str}\n`) }); | results.forEach((str, i) => { outputString += (returnEquipmentTemplate ? i > 0 ? `\n|${str}` : `${str}` : `${str}\n`) }); | ||
if (returnEquipmentTemplate) outputString += '\n}} | if (returnEquipmentTemplate) outputString += '\n}}'; | ||
copy(outputString);console.log(outputString); | copy(outputString);console.log(outputString); | ||
notifyPlayer(game.attack, `Copied results for ${searchTerm} to clipboard`, 'success', 0); | notifyPlayer(game.attack, `Copied results for ${searchTerm} to clipboard`, 'success', 0); | ||
</syntaxhighlight> | </syntaxhighlight> |