4,683
edits
(Updated to include Thieving NPCs) |
(Updated to omit headers with no results. Now also supports the template: {{EquipmentTableFromList}}) |
||
Line 7: | Line 7: | ||
This may result in some duplicates between Icons and Shop Purchases, such as Iron Sieve which is both an Item and Purchase. | This may result in some duplicates between Icons and Shop Purchases, such as Iron Sieve which is both an Item and Purchase. | ||
<syntaxhighlight lang="javascript" line> | <syntaxhighlight lang="javascript" line> | ||
let searchTerm = ' | // Settings // | ||
let searchTerm = 'Ancient'; // The proper capitalization of the Search Term | |||
let returnEquipmentTemplate = false; // returns a template for {{EquipmentTableFromList}} instead | |||
// End of Settings // | |||
let lcSearchTerm = searchTerm.toLowerCase(); | let lcSearchTerm = searchTerm.toLowerCase(); | ||
const search = (obj) => obj.name?.toLowerCase().includes(lcSearchTerm); | const search = (obj) => obj.name?.toLowerCase().includes(lcSearchTerm); | ||
const wikiIcon = (obj, icon, extras | const wikiIcon = (obj, icon, extras) => { | ||
let results = [`{{ | if (!returnEquipmentTemplate) | ||
game.items.equipment.filter(x => search(x)) | return `*${obj.namespace?.includes('TotH') ? '{{TotH}}' : obj.namespace?.includes('AoD') ? '{{AoD}}' : ''}{{${icon}|${obj.name}${extras}}}`; | ||
else | |||
game.items.filter(x => x.validSlots === undefined && !(x instanceof OpenableItem) && !(x instanceof BoneItem) && !(x instanceof FoodItem) && search(x)) | return obj.name; | ||
} | |||
game.items.openables.filter(x => search(x)) | const pushResults = (obj) => { | ||
if (obj.arr.length > 0 && !returnEquipmentTemplate && obj.header !== '') | |||
game.items.bones.filter(x => search(x)) | results.push(obj.header); | ||
obj.arr.forEach(item => results.push(wikiIcon(item, obj.iconType, obj.extras || ''))); | |||
game.items.food.filter(x => search(x)) | } | ||
let results = []; | |||
game. | if (returnEquipmentTemplate) results.push(`{{V|${gameVersion.substr(1)}}}\n\n{{EquipmentTableFromList`); | ||
game. | if (!returnEquipmentTemplate) results.push(`{{V|${gameVersion.substr(1)}}}{{Disam}}\n`, `'''${searchTerm}''' may refer to:`); | ||
game.slayerAreas. | pushResults({arr: game.items.equipment.filter(x => search(x)), header: '===Equipment===', iconType: 'ItemIcon'}); | ||
game.dungeons.filter(x => search(x)) | pushResults({arr: game.items.filter(x => x.validSlots === undefined && !(x instanceof OpenableItem) && !(x instanceof BoneItem) && !(x instanceof FoodItem) && search(x)), header: '===Items===', iconType: 'ItemIcon'}); | ||
pushResults({arr: game.items.openables.filter(x => search(x)), header: '===Openables===', iconType: 'ItemIcon'}); | |||
game.standardSpells. | pushResults({arr: game.items.bones.filter(x => search(x)), header: '===Bones===', iconType: 'ItemIcon'}); | ||
game.ancientSpells. | pushResults({arr: game.items.food.filter(x => search(x)), header: '===Food===', iconType: 'ItemIcon'}); | ||
game.archaicSpells. | pushResults({arr: game.items.food.filter(x => search(x)), header: '===Food===', iconType: 'ItemIcon'}); | ||
game.curseSpells. | pushResults({arr: game.monsters.filter(x => search(x)), header: '===Combat===', iconType: 'MonsterIcon'}); | ||
game.auroraSpells.filter(x => search(x)) | pushResults({arr: [...game.combatAreas.allObjects, ...game.combatAreas.allObjects, ...game.slayerAreas.allObjects, ...game.dungeons.allObjects].filter(x => search(x)), header: '', iconType: 'ZoneIcon'}); | ||
pushResults({arr: [...game.standardSpells.allObjects, ...game.ancientSpells.allObjects, ...game.archaicSpells.allObjects, ...game.curseSpells.allObjects, ...game.auroraSpells.allObjects].filter(x => search(x)), header: '===Spells===', iconType: 'SpellIcon'}); | |||
game.shop.purchases.filter(x => search(x)) | pushResults({arr: game.shop.purchases.filter(x => search(x)), header: '===Purchases===', iconType: 'UpgradeIcon'}); | ||
pushResults({arr: game.prayers.filter(x => search(x)), header: '===Prayers===', iconType: 'PrayerIcon'}); | |||
game.prayers.filter(x => search(x)) | pushResults({arr: [...game.township.buildings.allObjects, ...game.township.seasons.allObjects, ...game.township.biomes.allObjects, ...game.township.resources.allObjects].filter(x => search(x)), header: '===Township===', iconType: 'TownshipIcon'}); | ||
pushResults({arr: game.skills.filter(x => search(x)), header: '===Others===', iconType: 'Skill'}); | |||
game.township.buildings. | pushResults({arr: game.pets.filter(x => search(x)), header: '', iconType: 'PetIcon'}); | ||
game.township.seasons. | pushResults({arr: game.astrology.actions.filter(x => search(x)), header: '', iconType: 'ConstellationIcon'}); | ||
game.township.biomes. | pushResults({arr: game.agility.actions.filter(x => search(x)), header: '', iconType: 'AgilityIcon'}); | ||
game.township.resources.filter(x => search(x)) | pushResults({arr: game.skills.filter(x => search(x)), header: '', iconType: 'Icon', extras: '|type=thieving'}); | ||
game.skills.filter(x => search(x)) | |||
game.pets.filter(x => search(x)) | |||
game.astrology.actions.filter(x => search(x)) | |||
game.agility.actions.filter(x => search(x)) | |||
game. | |||
if (cloudManager.hasAoDEntitlementAndIsEnabled) | if (cloudManager.hasAoDEntitlementAndIsEnabled) | ||
game.cartography.worldMaps.getObjectByID('melvorAoD:Melvor').pointsOfInterest.filter(x => search(x)) | pushResults({arr: game.cartography.worldMaps.getObjectByID('melvorAoD:Melvor').pointsOfInterest.filter(x => search(x)), header: '', iconType: 'POIIcon'}); | ||
let outputString = ``; | let outputString = ``; | ||
results.forEach((str) => { outputString += `${str}\n` }); | results.forEach((str, i) => { outputString += (returnEquipmentTemplate ? i > 0 ? `|${str}` : `${str}` : `${str}\n`) }); | ||
console.log(outputString); | if (returnEquipmentTemplate) outputString += '}}'; | ||
copy(outputString);console.log(outputString); | |||
notifyPlayer(game.attack, `Copied results for ${searchTerm} to clipboard`, 'success', 0) | |||
</syntaxhighlight> | </syntaxhighlight> |