Module:Icons/Overrides
Documentation for this module may be created at Module:Icons/Overrides/doc
local p = {}
--Extension overrides for items that have non-png images
--Name level overrides take precedence over type level overrides
local extOverrides = {
["type"] = {
["effect"] = "svg"
},
["name"] = {
-- General
["TotH"] = "svg",
["Melvor Logo"] = "svg",
["Mastery Tokens"] = "gif",
["Lesser Relics"] = "gif"
}
}
function p.extOverrides() return extOverrides end
--Some overrides only apply for a specific type
local typeExtOverrides = {
-- Example: ["item"] = { ["Chicken"] = "png" }A
["effect"] = {
["Wither"] = "png",
["Silence"] = "png",
["Blight"] = "png",
["Fear"] = "png",
["Voidburst"] = "png",
["Ablaze"] = "png",
["Toxin"] = "png",
["Eldritch Curse"] = "png",
["Drowsy"] = "png",
["Fear Immunity"] = "png",
["Silence Immunity"] = "png"
},
["item"] = {
["Lemon"] = "jpg",
["Lemons"] = "jpg",
["Lemonade"] = "jpg",
["Cloudburst Staff"] = "gif"
}
}
function p.typeExtOverrides() return typeExtOverrides end
--When calling for an icon of type Key, instead use type Value
local typeOverrides = {
['combat'] = 'combatArea',
['slayer'] = 'combatArea'
}
function p.typeOverrides() return typeOverrides end
--When calling for an icon for Key, replace with image Value, and optionally override type also
local imgOverrides = {
['Combat'] = {'Combat Areas', 'areaCategory'},
['Easter'] = {'Easter Egg', 'item'},
['Guides'] = {"A Tale of the Past, a future's prophecy", 'item'},
['Alt Magic'] = 'Magic',
['Alt. Magic'] = 'Magic',
['Alternative Magic'] = 'Magic',
['Melee'] = {'Attack', 'skill'},
['Spider (lv. 51)'] = 'Spider',
['Spider (lv. 52)'] = 'Brown Spider',
['Bane, Instrument of Fear'] = 'Bane',
['Mastery Token Astrology'] = 'Mastery Token (Astrology)',
['Event Token - Holiday 2021'] = 'Christmas Present (Yellow)',
["I Can't See Helmet"] = {'Golbin', 'monster'},
["Golbin Raid"] = {'Golden Golbin', 'pet'},
["Throne of the Herald Expansion"] = 'TotH',
["Atlas of Discovery Expansion"] = 'AoD',
["Into the Abyss Expansion"] = 'ItA',
["Melvor Realm"] = "Melvor Logo",
["Damage Reduction"] = {"Normal Damage", "damage"},
["Pure Resistance"] = {"Pure Damage", "damage"},
["Abyssal Resistance"] = "Abyssal Realm",
["Eternal Resistance"] = "Eternal Realm",
-- Effects
["Shock"] = {"Hardcore Adventure Speedrun", ""},
["Barrier Burn"] = "Burn",
["Deadly Poison"] = "Poison",
["Shadeveil"] = {"Shadeveil Cape", "item"},
-- Spellbooks
["Ancient Magicks"] = {'Ancient', 'spellType'},
["Archaic Magicks"] = {'Archaic', 'spellType'},
["Standard Magic"] = {'Standard', 'spellType'},
["Curses"] = {'Curse', 'spellType'},
["Auroras"] = {'Aurora', 'spellType'},
-- Shop purchases
['Extra Bank Slot'] = {'Bank Slot', 'upgrade'},
["Auto Eat - Tier II"] = {'Auto Eat - Tier I', 'upgrade'},
["Auto Eat - Tier III"] = {'Auto Eat - Tier I', 'upgrade'},
['Basic Resupply'] = {'Lobster', 'item'},
['Standard Resupply'] = {'Crab', 'item'},
['Generous Resupply'] = {'Shark', 'item'},
['Plentiful Resupply'] = {'Magma Fish', 'item'},
['Bountiful Resupply'] = {'Static Jellyfish', 'item'},
['Cooking Upgrade 1'] = {'Cooking', 'skill'},
['Cooking Upgrade 2'] = {'Cooking', 'skill'},
['Loot Container Stacking'] = {'Amulet of Looting', 'item'},
['Access to Throne of the Herald'] = {'Golden Key', 'item'},
["Max Skillcape"] = 'Maximum Skillcape',
["+1 Archaeology Dig Site Map Slot"] = 'Extra Archaeology Map Slot',
["Magic Anvil"] = {'Magic Anvil', 'item'},
["Agility Prosperity"] = {'Agility', 'skill'},
["Agility Item Cost Reduction Enhancement"] = {'Agility', 'skill'},
["Cartographer's Enhancement"] = {'Cartography', 'skill'},
["Cartographer's Knowledge"] = {'Cartography', 'skill'},
["Combat Supply I"] = {'Adamant Javelin', 'item'},
["Combat Supply II"] = {'Rune Javelin', 'item'},
["Combat Supply III"] = {'Dragon Javelin', 'item'},
["Dig Site Map"] = {'Extra Archaeology Map Slot', 'upgrade'},
-- Golbin Raid shop items
["Reduce Wave Skip Cost"] = {'Melvor Logo', ''},
["Food Bonus"] = {'Melvor Logo', ''},
["Ammo Gatherer"] = {'Melvor Logo', ''},
["Rune Pouch"] = {'Melvor Logo', ''},
["Increase Starting Prayer Points"] = {'Melvor Logo', ''},
["Unlock Combat Passive Slot"] = {'Melvor Logo', ''},
["Prayer"] = {'Prayer', 'skill'},
["Increase Prayer Level"] = {'Prayer', 'skill'},
["Increase Prayer Points gained per Wave Completion"] = {'Prayer', 'skill'},
["Faster Golbin Spawns"] = {'Timer', ''},
-- Alt.Magic spells using item icons
['Item Alchemy'] = {'Item Alchemy III', 'spell'},
['Superheat'] = {'Superheat IV', 'spell'},
["Holy Invocation I"] = {'Small Urn', 'item'},
["Holy Invocation II"] = {'Medium Urn', 'item'},
["Nullification"] = {'Rune Essence', 'item'},
["Transmutation"] = {'Oricha', 'item'},
["Purification"] = {'Pure Essence', 'item'},
["Fragmentation"] = {'Summoning Shard (Black)', 'item'},
["Holy Invocation III"] = {'Large Urn', 'item'},
["Embellish"] = {'Lava Fish (Perfect)', 'item'},
["Barrier Dust"] = {'Barrier Dust', 'item'},
["Cursed Offering"] = {'Cursed Logs', 'item'},
["Unholy Offering"] = {'Unholy Prayers', ''},
-- Overrides that allow generic potion pages to be linked to easily
['Melee Accuracy Potion'] = {'Melee Accuracy Potion I', 'item'},
['Melee Evasion Potion'] = {'Melee Evasion Potion I', 'item'},
['Ranged Assistance Potion'] = {'Ranged Assistance Potion I', 'item'},
['Hinder Potion'] = {'Hinder Potion I', 'item'},
['Magic Assistance Potion'] = {'Magic Assistance Potion I', 'item'},
['Regeneration Potion'] = {'Regeneration Potion I', 'item'},
['Famished Potion'] = {'Famished Potion I', 'item'},
['Ranged Strength Potion'] = {'Ranged Strength Potion I', 'item'},
['Lucky Herb Potion'] = {'Lucky Herb Potion I', 'item'},
['Divine Potion'] = {'Divine Potion I', 'item'},
['Melee Strength Potion'] = {'Melee Strength Potion I', 'item'},
['Magic Damage Potion'] = {'Magic Damage Potion I', 'item'},
['Lethal Toxins Potion'] = {'Lethal Toxins Potion I', 'item'},
['Diamond Luck Potion'] = {'Diamond Luck Potion I', 'item'},
['Damage Reduction Potion'] = {'Damage Reduction Potion I', 'item'},
['Area Control Potion'] = {'Area Control Potion I', 'item'},
['Adaptive Defence Potion'] = {'Adaptive Defence Potion I', 'item'},
['Slayer Bounty Potion'] = {'Slayer Bounty Potion I', 'item'},
['Holy Bulwark Potion'] = {'Holy Bulwark Potion I', 'item'},
['Adaptive Accuracy Potion'] = {'Adaptive Accuracy Potion I', 'item'},
['Reaper Potion'] = {'Reaper Potion I', 'item'},
['Penetration Potion'] = {'Penetration Potion I', 'item'},
['Critical Strike Potion'] = {'Critical Strike Potion I', 'item'},
['Bird Nest Potion'] = {'Bird Nest Potion I', 'item'},
['Controlled Heat Potion'] = {'Controlled Heat Potion I', 'item'},
['Generous Cook Potion'] = {'Generous Cook Potion I', 'item'},
['Seeing Gold Potion'] = {'Seeing Gold Potion I', 'item'},
['Fishermans Potion'] = {'Fishermans Potion I', 'item'},
['Skilled Fletching Potion'] = {'Skilled Fletching Potion I', 'item'},
['Gentle Hands Potion'] = {'Gentle Hands Potion I', 'item'},
['Secret Stardust Potion'] = {'Secret Stardust Potion I', 'item'},
['Crafting Potion'] = {'Crafting Potion I', 'item'},
['Perfect Swing Potion'] = {'Perfect Swing Potion I', 'item'},
['Necromancer Potion'] = {'Necromancer Potion I', 'item'},
['Performance Enhancing Potion'] = {'Performance Enhancing Potion I', 'item'},
['Elemental Potion'] = {'Elemental Potion I', 'item'},
['Herblore Potion'] = {'Herblore Potion I', 'item'},
['Generous Harvest Potion'] = {'Generous Harvest Potion I', 'item'},
['Alchemic Practice Potion'] = {'Alchemic Practice Potion I', 'item'},
['Gem Detector Potion'] = {'Gem Detector Potion I', 'item'},
['Multicooker Potion'] = {'Multicooker Potion I', 'item'},
['Star Seeker Potion'] = {'Star Seeker Potion I', 'item'},
['Traps Potion'] = {'Traps Potion I', 'item'},
['Blacksmith Potion'] = {'Blacksmith Potion I', 'item'},
['Enkindled Yields Potion'] = {'Enkindled Yields Potion I', 'item'},
['Alt Magic Potion'] = {'Alt Magic Potion I', 'item'},
['Alt. Magic Potion'] = {'Alt Magic Potion I', 'item'},
['Barrier Touch Potion'] = {'Barrier Touch Potion I', 'item'},
['Crystallization Potion'] = {'Crystallization Potion I', 'item'},
['Unholy Potion'] = {'Unholy Potion I', 'item'},
['Cursed Potion'] = {'Cursed Potion I', 'item'},
['Barrier Igniter Potion'] = {'Barrier Igniter Potion I', 'item'},
['Crystal Sanction Potion'] = {'Crystal Sanction Potion I', 'item'},
["Harvester's Potion"] = { "Harvester's Potion I", 'item'},
["Corrupted Fighter Potion"] = { 'Corrupted Fighter Potion I', 'item'},
["Piece Finder Potion"] = { 'Piece Finder Potion I', 'item'},
["Pieces Finder Potion"] = { 'Piece Finder Potion I', 'item'},
["Laceration Potion"] = { 'Laceration Potion I', 'item'},
["Gloomgrowth Potion"] = { 'Gloomgrowth Potion I', 'item'},
["Blighted Touch Potion"] = { 'Blighted Touch Potion I', 'item'},
["Abyssal Miner Potion"] = { 'Abyssal Miner Potion I', 'item'},
["Shadeveil Potion"] = { 'Shadeveil Potion I', 'item'},
["Abyssal Combination Potion"] = { 'Abyssal Combination Potion I', 'item'},
["Fear Potion"] = { 'Fear Potion I', 'item'},
["Abyssal Consumable Potion"] = { 'Abyssal Consumable Potion I', 'item'},
["Withering Potion"] = { 'Withering Potion I', 'item'},
["Silent Thief Potion"] = { 'Silent Thief Potion I', 'item'},
["Echoing Lure Potion"] = { 'Echoing Lure Potion I', 'item'},
["Silence Potion"] = { 'Silence Potion I', 'item'},
["Soulsnap Potion"] = { 'Soulsnap Potion I', 'item'},
["Dark Ritual Potion"] = { 'Dark Ritual Potion I', 'item'},
["Eldritch Curse Potion"] = { 'Eldritch Curse Potion I', 'item'},
["Void Stabilisation Potion"] = { 'Void Stabilisation Potion I', 'item'},
["Voidburst Potion"] = { 'Voidburst Potion I', 'item'},
-- Township resources
['GP'] = {'Coins', ''},
['Abyssal Pieces'] = {'Abyssal Pieces', ''},
['Food'] = {'Raw Beef', 'item'},
['Ore'] = {'Iron', 'rock'},
['Bar'] = {'Iron Bar', 'item'},
['Herbs'] = {'Garum Herb', 'item'},
['Clothing'] = {'Leather Body', 'item'},
-- Township generic statue building
['Statue of Worship'] = 'Statue of Nothing',
-- Township seasons
["Lemon Season"] = 'Spring',
-- Easter egg stuff
["Lemonade (Empty)"] = "Lemonade",
["Lemonade (Very empty)"] = "Lemonade",
["Lemonade (Still very empty)"] = "Lemonade",
["Lemonade (Not as empty as before)"] = "Lemonade",
["Lemonade (Not much)"] = "Lemonade",
["Lemonade (Has a bit now)"] = "Lemonade",
["Lemonade (A little bit more now)"] = "Lemonade",
["Lemonade (Half full)"] = "Lemonade",
["Lemonade (Just over half full)"] = "Lemonade",
["Lemonade (Maybe this is half full?)"] = "Lemonade",
["Lemonade (Nope this is half full now)"] = "Lemonade",
["Lemonade (Wow this is slow)"] = "Lemonade",
["Lemonade (Just fill it up already)"] = "Lemonade",
["Lemonade (Still not full)"] = "Lemonade",
["Lemonade (Again, still not full)"] = "Lemonade",
["Lemonade (Less than before because you drank some)"] = "Lemonade",
["Lemonade (Back to where we were before)"] = "Lemonade",
["Lemonade (Almost full)"] = "Lemonade",
["Lemonade (Still almost full)"] = "Lemonade",
["Lemonade (How full is it supposed to be?)"] = "Lemonade",
["Lemonade (Wait this might be half full now)"] = "Lemonade",
["Lemonade (Haha just joking, hurry up)"] = "Lemonade",
["Lemonade (Okay this looks pretty full now)"] = "Lemonade",
["Lemonade (Now?)"] = "Lemonade",
["Lemonade (What about now?)"] = "Lemonade",
["Lemonade (YAY ITS FINALLY FULL!)"] = "Lemonade",
["Lemonade (Oh... still not full)"] = "Lemonade",
["Lemonade (Wait for it)"] = "Lemonade",
["Lemonade (Wait for it!)"] = "Lemonade",
["Lemonade (Full)"] = "Lemonade",
["Birthday Present (Artisan)"] = "Christmas Present (Yellow)",
["Birthday Present (Utility)"] = "Christmas Present (Blue)",
["Birthday Present (Gathering)"] = "Christmas Present (Green)",
["Birthday Present (Combat)"] = "Christmas Present (White)",
["Clue Scroll 1"] = "Event Clue 1",
["Clue Scroll 2"] = "Event Clue 1",
["Clue Scroll 3"] = "Event Clue 1",
["Clue Scroll 4"] = "Event Clue 1",
["Clue Scroll 5"] = "Event Clue 1",
["Clue Scroll 6"] = "Event Clue 1"
}
function p.imgOverrides() return imgOverrides end
--When calling for an icon for Key + Type, replace with image Value, and optionally override type also
local typeImgOverrides = {
['resource'] = {
['Rune Essence'] = {'Rune Essence', 'item'},
['Leather'] = {'Leather', 'item'}
},
['combatArea'] = {
-- Combat areas which use POI images
["Eye-conic Cave"] = {'The Eye-Conic Cave', 'poi'},
["Mucky Cave"] = {'Mucky Cave', 'poi'},
["Ritual Site"] = {'Ritual Site', 'poi'},
["Lost Temple"] = {'Lost Temple', 'poi'},
["Shipwreck Cove"] = {'Shipwreck Cove', 'poi'},
-- Shared icon between the 8th & 9th abyss depth
["???"] = {'The Final Depth', 'combatArea'}
},
['dungeon'] = {
-- Dungeons which use POI images
["Trickery Temple"] = {'Lost Temple', 'poi'},
["Golem Territory"] = {'Monuments', 'poi'}
},
['item'] = {
["?????"] = {'Question', ''}
},
['mark'] = {
["Tortoise"] = {'Golbin Thief', 'mark'}
},
['monster'] = {
["Xon"] = {'Xon, the Abyssal King (Phase 1)', 'monster'},
["Xon, the Abyssal King"] = {'Xon, the Abyssal King (Phase 1)', 'monster'}
},
['upgrade'] = {
["Abyssal Resupply"] = {'Crimson Bream (Perfect)', 'item'},
["Blighted Resupply"] = {'Crimson Bream (Perfect)', 'item'},
["Withering Resupply"] = {'Crimson Bream (Perfect)', 'item'},
["Echoes of Woe"] = {'Depths of Woe', 'combatArea'},
["Resilience to Decay"] = {'Depths of Decay', 'combatArea'},
["Embracer of Fear"] = {'Depths of Fear', 'combatArea'},
["Fortitude Under Rubble"] = {'Depths of Ruin', 'combatArea'},
["Insight Through Solitude"] = {'Depths of Isolation', 'combatArea'},
["Weight of Souls"] = {'Depths of Dissolve', 'combatArea'},
["The Unyielding Conqueror"] = {'Depths of Resolve', 'combatArea'},
["Void Nexus Gateway"] = {'Void Nexus', 'combatArea'},
["Blighted Reach Pass"] = {'Blighted Reach', 'combatArea'},
["Petrified Lair Access"] = {'Petrified Lair', 'combatArea'},
["Tangled Grove Entry"] = {'Tangled Grove', 'combatArea'},
["Tendril Hollow Passage"] = {'Tendril Hollow', 'combatArea'},
["Whispering Sea Charter"] = {'Whispering Sea', 'combatArea'},
["Withering Catacombs Sealbreaker"] = {'Withering Catacombs', 'combatArea'},
["Slayer Specialist I"] = {'Abyssal Slayer Areas', 'areaCategory'},
["Slayer Specialist II"] = {'Abyssal Slayer Areas', 'areaCategory'},
["Slayer Specialist III"] = {'Abyssal Slayer Areas', 'areaCategory'}
},
["damage"] = {
["Abyssal Damage"] = {"Abyssal Realm", ''},
["Eternal Damage"] = {"Eternal Realm", ''}
}
}
function p.typeImgOverrides() return typeImgOverrides end
--When calling for an icon for Key, the link goes to Value
local linkOverrides = {
['Alt Magic'] = 'Alternative Magic',
['Alt. Magic'] = 'Alternative Magic',
['Spider2'] = 'Brown Spider',
['Earth Golem (AoD)'] = 'Earth Golem (AoD)'
}
function p.linkOverrides() return linkOverrides end
--When calling for an icon for Key + Type, the link goes to Value
local typeLinkOverrides = {
['biome'] = {
['Grasslands'] = 'Biomes',
['Forest'] = 'Biomes',
['Mountains'] = 'Biomes',
['Water'] = 'Biomes',
['Swamp'] = 'Biomes',
['Valley'] = 'Biomes',
['Arid Plains'] = 'Biomes',
['Jungle'] = 'Biomes',
['Desert'] = 'Biomes',
['Snowlands'] = 'Biomes'
},
['resource'] = {
-- Township resources
['Food'] = '',
['Wood'] = '',
['Planks'] = '',
['Stone'] = '',
['Bar'] = '',
['Ore'] = '',
['Coal'] = '',
['Rune Essence'] = '',
['Herbs'] = '',
['Potions'] = '',
['Leather'] = '',
['Clothing'] = ''
},
['spellType'] = {
-- Spellbooks
['Standard'] = 'Standard Magic',
['Ancient'] = 'Ancient Magicks',
['Archaic'] = 'Archaic Magicks',
['Curse'] = 'Curses',
['Aurora'] = 'Auroras',
['Abyssal'] = 'Abyssal Spellbook'
},
['township'] = {
['Workers'] = '',
['Statistics'] = '',
['Town'] = '',
['Spring'] = 'Seasons',
['Summer'] = 'Seasons',
['Fall'] = 'Seasons',
['Winter'] = 'Seasons',
['Nightfall'] = 'Seasons',
['Solar Eclipse'] = 'Seasons',
['Eternal Darkness'] = 'Seasons'
},
['upgrade'] = {
-- Shop purchases
['Extra Bank Slot'] = 'Bank Slot',
['Reduce Wave Skip Cost'] = '',
['Food Bonus'] = '',
['Ammo Gatherer'] = '',
['Rune Pouch'] = '',
['Increase Starting Prayer Points'] = '',
['Unlock Combat Passive Slot'] = '',
['Prayer'] = '',
['Increase Prayer Level'] = '',
['Increase Prayer Points gained per Wave Completion'] = '',
['Faster Golbin Spawns'] = '',
['Golbin Crate'] = ''
}
}
function p.typeLinkOverrides() return typeLinkOverrides end
-- If no other text override was specified for the given link, use these
local txtOverrides = {
['Spider2'] = 'Brown Spider',
['Earth Golem (AoD)'] = 'Earth Golem',
['Madness (ItA)'] = 'Madness'
}
function p.txtOverrides() return txtOverrides end
-- Ambiguous overrides section
local ambiguousOverrides = {
['Golbin'] = true,
['Chick'] = true,
['Chicken'] = true,
['Cyclops'] = true,
['Wizard'] = true,
['Spider'] = true,
['Necromancer'] = true,
['Dark Knight'] = true,
['Vampire'] = true,
['Phantom'] = true,
['Spectre'] = true,
['Siren'] = true,
['Lightning Spirit'] = true,
['Ritual Site'] = true,
['Lost Temple'] = true,
['Shipwreck Cove'] = true
}
function p.ambiguousOverrides() return ambiguousOverrides end
-- For ambiguous overrides, determines the type text to be used in the page link
local ambiguousTypeMap = {
['mark'] = 'item',
['combatArea'] = 'Combat Area',
['poi'] = 'Dig Site'
}
function p.ambiguousTypeMap() return ambiguousTypeMap end
-- Defines icon types for which a section or anchor on a static page should be linked to, rather
-- than the usual page linking
local sectionLinks = {
['agility'] = {
['link'] = 'Agility',
['img'] = {'Agility', 'skill'},
['exclude'] = {}
},
['poi'] = {
['link'] = 'Cartography',
['exclude'] = {
['Ancient Market'] = true,
['Ritual Site'] = true,
['Melantis'] = true,
['Cathedral'] = true,
['Monuments'] = true,
['Coral Wreckage'] = true,
['Shipwreck Cove'] = true,
['Watchtower'] = true,
['Sacrificial Site'] = true,
['Old Village'] = true,
['Bazaar'] = true,
['Glacia City Ruins'] = true,
['Castle Ruins'] = true,
['Ancient Forge'] = true,
['Quarry'] = true,
['Secret Mines'] = true,
['Lost Temple'] = true,
['Stoneworkers'] = true
}
}
}
function p.sectionLinks() return sectionLinks end
local currencyFormatDefn = {
["melvorD:GP"] = {
["img"] = 'Coins.svg',
["name"] = 'Gold Pieces',
["abbr"] = 'GP'
},
["melvorD:SlayerCoins"] = {
["img"] = 'Slayer Coins.svg',
["name"] = 'Slayer Coins',
["abbr"] = 'SC'
},
["melvorD:RaidCoins"] = {
["img"] = 'Raid Coins.svg',
["name"] = 'Raid Coins',
["abbr"] = 'RC'
},
["melvorItA:AbyssalPieces"] = {
["img"] = 'Abyssal Pieces.svg',
["name"] = 'Abyssal Pieces',
["abbr"] = 'AP'
},
["melvorItA:AbyssalSlayerCoins"] = {
["img"] = 'Abyssal Slayer Coins.svg',
["name"] = 'Abyssal Slayer Coins',
["abbr"] = 'ASC'
},
}
function p.currencyFormatDefn() return currencyFormatDefn end
-- Aliases for the above
for k, v in pairs(currencyFormatDefn) do
if v.abbr ~= nil and currencyFormatDefn[v.abbr] == nil then
currencyFormatDefn[v.abbr] = v
end
end
return p