432
edits
(Add name override for Question) |
No edit summary Tag: Manual revert |
||
(88 intermediate revisions by 8 users not shown) | |||
Line 1: | Line 1: | ||
local Shared = require("Module:Shared") | local Shared = require("Module:Shared") | ||
Line 13: | Line 10: | ||
["type"] = { | ["type"] = { | ||
["skill"] = "svg", | ["skill"] = "svg", | ||
["spellType"] = "svg", | |||
["spell"] = "svg", | ["spell"] = "svg", | ||
["curse"] = "svg", -- Some exceptions included by name below | ["curse"] = "svg", -- Some exceptions included by name below | ||
["aurora"] = "svg", | ["aurora"] = "svg", | ||
["combatArea"] = "svg", | ["combatArea"] = "svg", | ||
["dungeon"] = "svg", | ["dungeon"] = "svg", -- Some exceptions included by name below | ||
["prayer"] = "svg", | ["prayer"] = "svg", | ||
["upgrade"] = "svg", -- Some exceptions included by name below | ["upgrade"] = "svg", -- Some exceptions included by name below | ||
Line 23: | Line 21: | ||
["rock"] = "svg", -- Some exceptions included by name below | ["rock"] = "svg", -- Some exceptions included by name below | ||
["thieving"] = "svg", | ["thieving"] = "svg", | ||
["constellation"] = "svg", | ["constellation"] = "svg", | ||
["building"] = "svg" | ["building"] = "svg", | ||
["resource"] = "svg", | |||
["township"] = "svg" | |||
}, | }, | ||
["name"] = { | ["name"] = { | ||
Line 35: | Line 34: | ||
["Slayer Coins"] = "svg", | ["Slayer Coins"] = "svg", | ||
["Raid Coins"] = "svg", | ["Raid Coins"] = "svg", | ||
["TotH"] = "svg", | |||
["Shop"] = "svg", | ["Shop"] = "svg", | ||
["Easter"] = "svg", | ["Easter"] = "svg", | ||
["Melvor Logo"] = "svg", | ["Melvor Logo"] = "svg", | ||
["Question"] = "svg", | ["Question"] = "svg", | ||
["Timer"] = "svg", | |||
["Hardcore"] = "svg", | |||
["Chaos"] = "svg", | |||
["Internal Suffering Speedrun"] = "svg", | |||
["Hardcore Adventure Speedrun"] = "svg", | |||
["Mastery Tokens"] = "gif", | |||
["Lesser Relics"] = "gif", | |||
["Prat, the Serpent of Fire"] = "svg", | |||
["Unholy Prayers"] = "svg", | |||
["Museum"] = "svg", | |||
-- Items | -- Items | ||
["Amulet of Fishing"] = "svg", | ["Amulet of Fishing"] = "svg", | ||
Line 52: | Line 62: | ||
["Cloudburst Staff"] = "gif", | ["Cloudburst Staff"] = "gif", | ||
["Shockwave"] = "svg", | ["Shockwave"] = "svg", | ||
[" | ["Event Clue 1"] = "svg", | ||
[" | ["Event Clue 2"] = "svg", | ||
[" | ["Event Clue 3"] = "svg", | ||
[" | ["Event Clue 4"] = "svg", | ||
-- Pets | -- Pets | ||
["Cris"] = "svg", | ["Cris"] = "svg", | ||
Line 109: | Line 103: | ||
["Mark"] = "svg", | ["Mark"] = "svg", | ||
["Astro"] = "svg", | ["Astro"] = "svg", | ||
-- Curses, included to override the type level override above | -- Curses & spells, included to override the type level override above | ||
["Madness"] = "png", | ["Madness"] = "png", | ||
["Torment"] = "png", | ["Torment"] = "png", | ||
["Despair"] = "png", | ["Despair"] = "png", | ||
-- Alt. Magic | |||
["Rags to Riches III"] = "png", | |||
-- Upgrades, included to override the type level override above | -- Upgrades, included to override the type level override above | ||
["Golbin Crate"] = "png", | ["Golbin Crate"] = "png", | ||
Line 131: | Line 127: | ||
["Summoner's Altar"] = "png", | ["Summoner's Altar"] = "png", | ||
["Golden Shard"] = "png", | ["Golden Shard"] = "png", | ||
["Labyrinth Solution"] = "png", | |||
["Rune | ["Linden Boat"] = "png", | ||
[" | ["Golden Compass"] = "png", | ||
[" | ["Ship Combat Overhaul"] = "png", | ||
[" | ["Blessed Bone Offering"] = "png", | ||
[" | ["Ship Crow's Nest Upgrade"] = "png", | ||
["Extra Bank Tab"] = "png", | |||
["Superior Cooking Pot"] = "png", | |||
["Superior Cauldron"] = "png", | |||
["Mithril Brush"] = "png", | |||
["Mithril Shovel"] = "png", | |||
["Mithril Sieve"] = "png", | |||
["Mithril Trowel"] = "png", | |||
["Ship Anchor Upgrade"] = "png", | |||
["Ship Keel Upgrade"] = "png", | |||
["Ship Mast Upgrade"] = "png", | |||
["Ship Rudder Upgrade"] = "png", | |||
["Ship Sails Upgrade"] = "png", | |||
["Ship Hull Upgrade"] = "png", | |||
["Adamant Brush"] = "png", | |||
["Adamant Shovel"] = "png", | |||
["Adamant Sieve"] = "png", | |||
["Adamant Trowel"] = "png", | |||
["Ancient Brush"] = "png", | |||
["Ancient Shovel"] = "png", | |||
["Ancient Sieve"] = "png", | |||
["Ancient Trowel"] = "png", | |||
["Crystal Brush"] = "png", | |||
["Crystal Shovel"] = "png", | |||
["Crystal Sieve"] = "png", | |||
["Crystal Trowel"] = "png", | |||
["Dark Steel Brush"] = "png", | |||
["Dark Steel Shovel"] = "png", | |||
["Dark Steel Sieve"] = "png", | |||
["Dark Steel Trowel"] = "png", | |||
["Dragon Brush"] = "png", | |||
["Dragon Shovel"] = "png", | |||
["Dragon Sieve"] = "png", | |||
["Dragon Trowel"] = "png", | |||
["Iron Brush"] = "png", | |||
["Iron Shovel"] = "png", | |||
["Iron Sieve"] = "png", | |||
["Iron Trowel"] = "png", | |||
["Relic Brush"] = "png", | |||
["Relic Shovel"] = "png", | |||
["Relic Sieve"] = "png", | |||
["Relic Trowel"] = "png", | |||
["Rune Brush"] = "png", | |||
["Rune Shovel"] = "png", | |||
["Rune Sieve"] = "png", | |||
["Rune Trowel"] = "png", | |||
["Steel Brush"] = "png", | |||
["Steel Shovel"] = "png", | |||
["Steel Sieve"] = "png", | |||
["Steel Trowel"] = "png", | |||
["Aranite Brush"] = "png", | |||
["Aranite Shovel"] = "png", | |||
["Aranite Sieve"] = "png", | |||
["Aranite Trowel"] = "png", | |||
["Travel Token"] = "png", | |||
["Dig Site Token"] = "png", | |||
["Summoner's Pack I"] = "png", | |||
["Summoners' Pack II"] = "png", | |||
["Summoners' Pack III"] = "png", | |||
-- Marks (Summoning), included to override the type level override above | -- Marks (Summoning), included to override the type level override above | ||
["Eagle"] = "png", | ["Eagle"] = "png", | ||
Line 145: | Line 199: | ||
["Siren"] = "png", | ["Siren"] = "png", | ||
["Spider"] = "png", | ["Spider"] = "png", | ||
["Spectre"] = "png" | ["Spectre"] = "png", | ||
-- Dungeons, included to override the type level override above | |||
["Golem Territory"] = "png", | |||
["Cult Grounds"] = "png", | |||
["Trickery Temple"] = "png", | |||
["Underwater City"] = "png", | |||
["Underwater Ruins"] = "png", | |||
["Eye-conic Cave"] = "png", | |||
["Mucky Cave"] = "png", | |||
["Lost Temple"] = "png", | |||
["Ritual Site"] = "png", | |||
["Shipwreck Cove"] = "png", | |||
} | } | ||
} | } | ||
Line 152: | Line 217: | ||
local typeExtOverrides = { | local typeExtOverrides = { | ||
-- Example: ["item"] = { ["Chicken"] = "png" } | -- Example: ["item"] = { ["Chicken"] = "png" } | ||
["item"] = { | |||
-- These familiars also exist as type mark, where the image is of PNG format | |||
["Golbin Thief"] = "svg", | |||
["Occultist"] = "svg", | |||
["Wolf"] = "svg", | |||
["Ent"] = "svg", | |||
["Mole"] = "svg", | |||
["Octopus"] = "svg", | |||
["Minotaur"] = "svg", | |||
["Centaur"] = "svg", | |||
["Witch"] = "svg", | |||
["Pig"] = "svg", | |||
["Crow"] = "svg", | |||
["Leprechaun"] = "svg", | |||
["Cyclops"] = "svg", | |||
["Yak"] = "svg", | |||
["Unicorn"] = "svg", | |||
["Dragon"] = "svg", | |||
["Monkey"] = "svg", | |||
["Salamander"] = "svg", | |||
["Bear"] = "svg", | |||
["Devil"] = "svg" | |||
}, | |||
["monster"] = { | |||
["Merman"] = "svg", | |||
["Shipwreck Beast"] = "svg", | |||
["Treacherous Jellyfish"] = "svg", | |||
["Merman Guard"] = "svg", | |||
["Ghost Mercenary"] = "svg", | |||
["Mermaid Archer"] = "svg", | |||
["Cult Member"] = "svg", | |||
["Cursed Pirate Captain"] = "svg", | |||
["Fake Door"] = "svg", | |||
["Possessed Barrel"] = "svg", | |||
["Lich"] = "svg", | |||
["Earth Golem (AoD)"] = "svg", | |||
["Magic Golem"] = "svg", | |||
["Magic Mirror"] = "svg", | |||
["Poison Bloater"] = "svg", | |||
["Cult Imp"] = "svg", | |||
["Cult Monster"] = "svg", | |||
["Ghost Sailor"] = "svg", | |||
["Granite Golem"] = "svg", | |||
["Nagaia"] = "svg", | |||
["Poison Leecher"] = "svg", | |||
["Poison Roamer"] = "svg", | |||
["Poison Slime"] = "svg", | |||
["Ranged Golem"] = "svg", | |||
["Soul Taker Witch"] = "svg", | |||
["Lava Golem"] = "svg", | |||
["Puppet Master"] = "svg" | |||
}, | |||
["rock"] = { | |||
["Rune Essence"] = "png", | |||
["Pure Essence"] = "png", | |||
["Onyx"] = "png", | |||
["Oricha"] = "png", | |||
["Cerulean"] = "png", | |||
["Crystal"] = "png", | |||
["Pure Crystal"] = "png" | |||
}, | |||
["township"] = { | |||
-- Seasons, which are PNG unlike most other Township images | |||
["Spring"] = "png", | |||
["Summer"] = "png", | |||
["Fall"] = "png", | |||
["Winter"] = "png", | |||
["Nightfall"] = "png", | |||
["Solar Eclipse"] = "png" | |||
} | } | ||
} | |||
--When calling for an icon of type Key, instead use type Value | --When calling for an icon of type Key, instead use type Value | ||
local typeOverrides = { | local typeOverrides = { | ||
['combat'] = 'combatArea', | ['combat'] = 'combatArea', | ||
['slayer'] = 'combatArea' | ['slayer'] = 'combatArea' | ||
} | } | ||
--When calling for an icon for Key, replace with image Value, and optionally override type also | --When calling for an icon for Key, replace with image Value, and optionally override type also | ||
Line 164: | Line 299: | ||
['Alt. Magic'] = 'Magic', | ['Alt. Magic'] = 'Magic', | ||
['Alternative Magic'] = 'Magic', | ['Alternative Magic'] = 'Magic', | ||
['Melee'] = {'Attack', 'skill'}, | ['Melee'] = {'Attack', 'skill'}, | ||
['Spider (lv. 51)'] = 'Spider', | ['Spider (lv. 51)'] = 'Spider', | ||
['Spider (lv. 52)'] = 'Brown 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', | |||
["Dig Site Map"] = {'Extra Archaeology Map Slot', 'upgrade'}, | |||
-- 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'}, | |||
['Basic Resupply'] = {'Lobster', 'item'}, | ['Basic Resupply'] = {'Lobster', 'item'}, | ||
['Standard Resupply'] = {'Crab', 'item'}, | ['Standard Resupply'] = {'Crab', 'item'}, | ||
['Generous Resupply'] = {'Shark', 'item'}, | ['Generous Resupply'] = {'Shark', 'item'}, | ||
['Plentiful Resupply'] = {'Magma Fish', 'item'}, | |||
['Bountiful Resupply'] = {'Static Jellyfish', 'item'}, | |||
['Cooking Upgrade 1'] = {'Cooking', 'skill'}, | ['Cooking Upgrade 1'] = {'Cooking', 'skill'}, | ||
['Cooking Upgrade 2'] = {'Cooking', 'skill'}, | ['Cooking Upgrade 2'] = {'Cooking', 'skill'}, | ||
['Loot Container Stacking'] = {'Amulet of Looting', 'item'}, | ['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'}, | |||
-- 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 | -- Overrides that allow generic potion pages to be linked to easily | ||
['Melee Accuracy Potion'] = {'Melee Accuracy Potion I', 'item'}, | ['Melee Accuracy Potion'] = {'Melee Accuracy Potion I', 'item'}, | ||
Line 195: | Line 378: | ||
['Diamond Luck Potion'] = {'Diamond Luck Potion I', 'item'}, | ['Diamond Luck Potion'] = {'Diamond Luck Potion I', 'item'}, | ||
['Damage Reduction Potion'] = {'Damage Reduction 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'}, | ['Bird Nest Potion'] = {'Bird Nest Potion I', 'item'}, | ||
['Controlled Heat Potion'] = {'Controlled Heat Potion I', 'item'}, | ['Controlled Heat Potion'] = {'Controlled Heat Potion I', 'item'}, | ||
['Generous Cook Potion'] = {'Generous Cook 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'}, | ['Fishermans Potion'] = {'Fishermans Potion I', 'item'}, | ||
['Skilled Fletching Potion'] = {'Skilled Fletching Potion I', 'item'}, | ['Skilled Fletching Potion'] = {'Skilled Fletching Potion I', 'item'}, | ||
Line 209: | Line 401: | ||
['Herblore Potion'] = {'Herblore Potion I', 'item'}, | ['Herblore Potion'] = {'Herblore Potion I', 'item'}, | ||
['Generous Harvest Potion'] = {'Generous Harvest 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'}, | |||
-- Township resources | |||
['GP'] = {'Coins', ''}, | |||
['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" | |||
} | |||
--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'} | |||
}, | |||
['dungeon'] = { | |||
-- Dungeons which use POI images | |||
["Trickery Temple"] = {'Lost Temple', 'poi'}, | |||
["Golem Territory"] = {'Monuments', 'poi'} | |||
}, | |||
['mark'] = { | |||
["Tortoise"] = {'Golbin Thief', 'mark'} | |||
} | |||
} | } | ||
--When calling for an icon for Key, the link goes to Value | --When calling for an icon for Key, the link goes to Value | ||
Line 216: | Line 497: | ||
['Alt. Magic'] = 'Alternative Magic', | ['Alt. Magic'] = 'Alternative Magic', | ||
['Spider2'] = 'Brown Spider', | ['Spider2'] = 'Brown Spider', | ||
[ | ['Earth Golem (AoD)'] = 'Earth Golem (AoD)' | ||
[ | } | ||
[ | --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' | |||
}, | |||
['township'] = { | |||
['Workers'] = '', | |||
['Statistics'] = '', | |||
['Town'] = '', | |||
['Spring'] = 'Seasons', | |||
['Summer'] = 'Seasons', | |||
['Fall'] = 'Seasons', | |||
['Winter'] = 'Seasons', | |||
['Nightfall'] = 'Seasons', | |||
['Solar Eclipse'] = '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'] = '' | |||
} | |||
} | } | ||
--If no other text override was specified for the given link, use these | |||
-- If no other text override was specified for the given link, use these | |||
local txtOverrides = { | local txtOverrides = { | ||
['Spider2'] = 'Brown Spider' | ['Spider2'] = 'Brown Spider', | ||
['Earth Golem (AoD)'] = 'Earth Golem' | |||
} | } | ||
--Ambiguous overrides section | -- Ambiguous overrides section | ||
local ambiguousOverrides = { | local ambiguousOverrides = { | ||
['Golbin'] = true, | ['Golbin'] = true, | ||
Line 238: | Line 575: | ||
['Chicken'] = true, | ['Chicken'] = true, | ||
['Cyclops'] = true, | ['Cyclops'] = true, | ||
['Wizard'] = 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 | |||
} | |||
-- For ambiguous overrides, determines the type text to be used in the page link | |||
local ambiguousTypeMap = { | |||
['mark'] = 'item', | |||
['combatArea'] = 'Combat Area', | |||
['poi'] = 'Dig Site' | |||
} | |||
-- 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 | |||
} | |||
} | |||
} | |||
-- When calling for an icon for Key, add a css class | |||
local imgClassOverrides = { | |||
-- Was previously used for Township stat icons prior to v1.1.2 | |||
--['Population'] = 'township-colortoggle' | |||
} | } | ||
Line 250: | Line 644: | ||
local nolink = args.nolink ~= nil and args.nolink ~= '' | local nolink = args.nolink ~= nil and args.nolink ~= '' | ||
local noicon = args.noicon ~= nil and args.noicon ~= '' | local noicon = args.noicon ~= nil and args.noicon ~= '' | ||
local nospan = args.nospan ~= nil and args.nospan | |||
local menu = args.menu ~= nil and args.menu ~= '' | local menu = args.menu ~= nil and args.menu ~= '' | ||
local imgSize = args.size ~= nil and args.size or 25 | local imgSize = args.size ~= nil and args.size or 25 | ||
local qty = args.qty | local qty = args.qty | ||
local img = args.img ~= nil and args.img ~= '' and args.img or link | local img = args.img ~= nil and args.img ~= '' and args.img or link | ||
local class = args.class ~= nil and args.class ~= '' and args.class or '' | |||
local altText = args.alt ~= nil and args.alt or (notext and (text or link)) or '' | |||
local linkSection = args.section | |||
local expIcon = args.expicon ~= nil and args.expicon or '' | |||
link = fixPagename(link) | link = fixPagename(link) | ||
Line 261: | Line 660: | ||
img = sgsub(img, '/Training', '') | img = sgsub(img, '/Training', '') | ||
img = sgsub(img, '/Guide', '') | img = sgsub(img, '/Guide', '') | ||
-- Remove '#' from links to facilitate linking to things with hashes in | |||
-- their names (e.g. item 'Birthday Cake Piece #1'). Links to sections | |||
-- of a page should instead be performed using the 'section' parameter. | |||
link = sgsub(link, '#', '') | link = sgsub(link, '#', '') | ||
-- Handle types for which links should be to a section of a static page | |||
local sl = sectionLinks[iconType] | |||
if sl ~= nil and not sl.exclude[link] then | |||
if text == nil or text == '' then | |||
text = link | |||
end | |||
linkSection = string.gsub(link, ' ', '') | |||
-- Link overwriting must occur after text & linkSection have been set | |||
link = sl.link | |||
if sl.img ~= nil then | |||
img = sl.img[1] | |||
if sl.img[2] ~= nil then | |||
iconType = sl.img[2] | |||
end | |||
end | |||
end | |||
--MANUAL OVERRIDES | --MANUAL OVERRIDES | ||
local origType = iconType | |||
local ovrImg = imgOverrides[link] | local ovrImg = imgOverrides[link] | ||
local ovrTypeImg = typeImgOverrides[iconType] | |||
if ovrTypeImg ~= nil then | |||
ovrImg = ovrTypeImg ~= nil and ovrTypeImg[img] or ovrImg | |||
end | |||
local ovrTxt = txtOverrides[link] | local ovrTxt = txtOverrides[link] | ||
local ovrLink = linkOverrides[link] | local ovrLink = linkOverrides[link] | ||
local ovrTypeLink = typeLinkOverrides[iconType] | |||
if ovrTypeLink ~= nil and ovrTypeLink[img] ~= nil then | |||
if ovrTypeLink[img] == '' then | |||
nolink = true | |||
else | |||
ovrLink = ovrTypeLink[img] | |||
end | |||
end | |||
local hasText = (text ~= nil and text ~= '') | local hasText = (text ~= nil and text ~= '') | ||
if ovrImg ~= nil and img == link then | if ovrImg ~= nil and img == link then | ||
Line 276: | Line 708: | ||
end | end | ||
end | end | ||
local ovrClass = imgClassOverrides[link] | |||
-- Type & extension overrides must be after adjustments have been made | -- Type & extension overrides must be after adjustments have been made | ||
-- for any image overrides | -- for any image overrides | ||
local ovrTypeExt = typeExtOverrides[iconType] | local ovrTypeExt, ovrTypeExtTable = nil, typeExtOverrides[iconType] | ||
if | if ovrTypeExtTable ~= nil then | ||
ovrTypeExt = | ovrTypeExt = ovrTypeExtTable[img] | ||
end | end | ||
local ovrType = typeOverrides[iconType] | local ovrType = typeOverrides[iconType] | ||
Line 305: | Line 738: | ||
if ovrType ~= nil then | if ovrType ~= nil then | ||
iconType = ovrType | iconType = ovrType | ||
end | |||
if ovrClass ~= nil then | |||
class = ovrClass | |||
end | end | ||
-- There are a couple specific double overrides to be included that don't fit in the above lists | -- There are a couple specific double overrides to be included that don't fit in the above lists | ||
-- If the link requires disambiguation or a section, the modify the link accordingly | |||
-- while preserving the displayed text | |||
local isAmbig, hasSection = ambiguousOverrides[link], linkSection ~= nil and linkSection ~= '' | |||
if isAmbig or hasSection then | |||
if not hasText then | if not hasText then | ||
text = link | text = link | ||
hasText = true | hasText = true | ||
end | end | ||
link = link..' ('..( | if isAmbig then | ||
link = link .. ' (' .. (ambiguousTypeMap[origType] or origType) .. ')' | |||
end | |||
if hasSection then | |||
link = link .. '#' .. linkSection | |||
end | |||
end | end | ||
Line 322: | Line 767: | ||
local txtImg = (iconType ~= nil and iconType ~= '' and img .. '_(' .. iconType .. ')' or img) .. '.' .. ext | local txtImg = (iconType ~= nil and iconType ~= '' and img .. '_(' .. iconType .. ')' or img) .. '.' .. ext | ||
-- Include a link unless no link -and- no text was requested | -- Include a link unless no link -and- no text was requested | ||
local txtLink = '|link=' .. (nolink | local txtLink = '|link=' .. (nolink and '' or link) | ||
resultText = '[[File:' .. txtImg .. '|' .. txtSize .. 'x' .. txtSize .. 'px' .. txtLink .. ']]' | resultText = '[[File:' .. txtImg .. '|' .. txtSize .. 'x' .. txtSize .. 'px|alt=' .. altText .. txtLink .. ']]' | ||
if class ~= nil and class ~= '' then | |||
resultText = '<span class="'..class..'">'..resultText..'</span>' | |||
end | |||
end | end | ||
Line 341: | Line 789: | ||
if menu then | if menu then | ||
return '{| class="articletable" style="display:inline-block;vertical-align:middle;"\r\n|-\r\n|' .. resultText .. '\r\n|}' | return '{| class="articletable" style="display:inline-block;vertical-align:middle;"\r\n|-\r\n|' .. expIcon .. resultText .. '\r\n|}' | ||
elseif not noicon then | elseif not noicon and not nospan then | ||
return '<span style="display:inline-block">' .. resultText .. '</span>' | return '<span style="display:inline-block">' .. expIcon .. resultText .. '</span>' | ||
else | else | ||
return resultText | return resultText | ||
Line 357: | Line 805: | ||
function p._SkillReq(skill, level, showText) | function p._SkillReq(skill, level, showText) | ||
local result = p.Icon({skill, type='skill', notext='true | local altText = (showText and '') or skill | ||
local result = p.Icon({skill, type='skill', notext=(showText and '' or true), nospan=true, alt=altText}) | |||
if level == nil then level = 'Unknown [[Category:Pages with script errors]]' end | if level == nil then level = 'Unknown [[Category:Pages with script errors]]' end | ||
result = result.." Level "..level | result = result.." Level "..level | ||
Line 385: | Line 831: | ||
iconname = linkname..' I' | iconname = linkname..' I' | ||
end | end | ||
local altTextItem = (showText and '') or linkname | |||
local altTextMastery = (showText and '') or ' Mastery' | |||
local result = 'Level '..level..' ' | local result = 'Level '..level..' ' | ||
result = result..p.Icon({linkname, img=iconname, type='item', notext = true})..p.Icon({'Mastery', notext=true}) | result = result..p.Icon({linkname, img=iconname, type='item', notext=true, nospan=true, alt=altTextItem})..p.Icon({'Mastery', notext=true, nospan=true, alt=altTextMastery}) | ||
if showText then result = result..'[['..linkname..']] [[Mastery]]' end | if showText then result = result..'[['..linkname..']] [[Mastery]]' end | ||
result = '<span style="display:inline-block">'..result..'</span>' | result = '<span style="display:inline-block">'..result..'</span>' | ||
Line 401: | Line 849: | ||
end | end | ||
function p._Currency(fileName, link, | function p._Currency(fileName, link, altText, amount, maxAmount) | ||
local | local ret = {} | ||
table.insert(ret, '<span style="display:inline-block">') | |||
-- Currency icon | |||
if fileName ~= nil then | if fileName ~= nil then | ||
table.insert(ret, '[[File:' .. fileName .. '|25px') | |||
if link ~= nil then | if link ~= nil then | ||
table.insert(ret, '|link=' .. link) | |||
end | end | ||
table.insert(ret, '|alt=' .. ((altText == nil and '') or altText) .. ']]') | |||
end | end | ||
-- Currency amounts | |||
return '<span style=" | if tonumber(amount) ~= nil then | ||
local function numColour(amount) | |||
if tonumber(amount) < 0 then | |||
return '<span style="color:red;">' .. formatnum(amount) .. '</span>' | |||
else | |||
return formatnum(amount) | |||
end | |||
end | |||
table.insert(ret, ' ' .. numColour(amount)) | |||
if (tonumber(maxAmount) ~= nil and maxAmount > amount) then | |||
table.insert(ret, ' - ' .. numColour(maxAmount)) | |||
end | |||
end | |||
table.insert(ret, '</span>') | |||
return table.concat(ret) | |||
end | end | ||
function p.GP(amt, maxamt) | function p.GP(amt, maxamt) | ||
return p._Currency('Coins.svg', 'Coins', amt, maxamt) | return p._Currency('Coins.svg', 'Coins', 'GP', amt, maxamt) | ||
end | end | ||
function p.SC(amt, maxamt) | function p.SC(amt, maxamt) | ||
return p._Currency('Slayer Coins.svg', 'Currency#Slayer Coins', amt, maxamt) | return p._Currency('Slayer Coins.svg', 'Currency#Slayer Coins', 'SC', amt, maxamt) | ||
end | end | ||
function p.RC(amt, maxamt) | function p.RC(amt, maxamt) | ||
return p._Currency('Raid_Coins.svg', 'Currency#Raid Coins', amt, maxamt) | return p._Currency('Raid_Coins.svg', 'Currency#Raid Coins', 'RC', amt, maxamt) | ||
end | |||
--Adding a shortcut function for this | |||
function p.TotH() | |||
return p.Icon({'Throne of the Herald Expansion', notext=true, img='TotH', alt=''}) | |||
end | |||
function p.AoD() | |||
return p.Icon({'Atlas of Discovery Expansion', notext=true, img='AoD', alt=''}) | |||
end | |||
-- Prework to have function call available for when DLC releases. | |||
-- Remove comments and uncomment line below when the image is available. | |||
function p.ItA() | |||
--return p.Icon({'Into the Abyss Expansion', notext=true, img='ItA', alt=''}) | |||
return nil | |||
end | |||
function p.getExpansionIcon(id) | |||
local ns, _ = Shared.getLocalID(id) | |||
if ns == 'melvorTotH' then | |||
return p.TotH()..' ' | |||
elseif ns == 'melvorAoD' then | |||
return p.AoD()..' ' | |||
else | |||
return '' | |||
end | |||
end | end | ||
return p | return p |
edits