Files
AtlasLoot/Core/TextParsing.lua
T
2026-03-25 18:48:49 -04:00

626 lines
22 KiB
Lua

local AL = AceLibrary("AceLocale-2.2"):new("AtlasLoot");
--------------------------------------------------------------------------------
-- Text replacement function
--------------------------------------------------------------------------------
local TextMap = {
-- Armor types
["#a1#"] = AL["Cloth"],
["#a2#"] = AL["Leather"],
["#a3#"] = AL["Mail"],
["#a4#"] = AL["Plate"],
-- Equipment slots
["#s1#"] = AL["Head"],
["#s2#"] = AL["Neck"],
["#s3#"] = AL["Shoulder"],
["#s4#"] = AL["Back"],
["#s5#"] = AL["Chest"],
["#s6#"] = AL["Shirt"],
["#s7#"] = AL["Tabard"],
["#s8#"] = AL["Wrist"],
["#s9#"] = AL["Hands"],
["#s10#"] = AL["Waist"],
["#s11#"] = AL["Legs"],
["#s12#"] = AL["Feet"],
["#s13#"] = AL["Ring"],
["#s14#"] = AL["Trinket"],
["#s15#"] = AL["Held In Off-hand"],
["#s16#"] = AL["Relic"],
-- Weapon Weilding
["#h1#"] = AL["One-Hand"],
["#h2#"] = AL["Two-Hand"],
["#h3#"] = AL["Main Hand"],
["#h4#"] = AL["Off Hand"],
-- Weapon type
["#w1#"] = AL["Axe"],
["#w2#"] = AL["Bow"],
["#w3#"] = AL["Crossbow"],
["#w4#"] = AL["Dagger"],
["#w5#"] = AL["Gun"],
["#w6#"] = AL["Mace"],
["#w7#"] = AL["Polearm"],
["#w8#"] = AL["Shield"],
["#w9#"] = AL["Staff"],
["#w10#"] = AL["Sword"],
["#w11#"] = AL["Thrown"],
["#w12#"] = AL["Wand"],
["#w13#"] = AL["Fist Weapon"],
["#w14#"] = AL["Fishing Pole"],
["#w15#"] = AL["Spear"],
-- Misc. Equipment
["#e1#"] = AL["Potion"],
["#e2#"] = AL["Food"],
["#e3#"] = AL["Drink"],
["#e4#"] = AL["Bandage"],
["#e5#"] = AL["Arrow"],
["#e6#"] = AL["Bullet"],
["#e7#"] = AL["Mount"],
["#e8#"] = AL["Ammo Pouch"],
["#e9#"] = AL["Quiver"],
["#e10#"] = AL["Bag"],
["#e11#"] = AL["Enchant"],
["#e12#"] = AL["Trade Goods"],
["#e13#"] = AL["Scope"],
["#e14#"] = AL["Key"],
["#e15#"] = AL["Pet"],
["#e16#"] = AL["Idol"],
["#e17#"] = AL["Totem"],
["#e18#"] = AL["Libram"],
["#e19#"] = AL["Darkmoon Faire Card"],
["#e20#"] = AL["Book"],
["#e21#"] = AL["Banner"],
["#e22#"] = AL["Needed to purchase rewards"],
["#e23#"] = AL["Gem"],
["#e24#"] = AL["Use to purchase rewards"],
["#e25#"] = AL["Use to purchase rewards (Horde)"],
["#e26#"] = AL["Use to purchase rewards (Alliance)"],
["#e27#"] = AL["Token"],
["#e28#"] = AL["Crafting Reagent"],
["#e31#"] = AL["random stats"],
["#e32#"] = AL["random resistance"],
["#e33#"] = AL["random colour"],
["#e34#"] = AL["Toy"],
-- Classes
["#c1#"] = AL["Druid"], -- =q13=#c1#
["#c2#"] = AL["Hunter"], -- =q14=#c2#
["#c3#"] = AL["Mage"], -- =q10=#c3#
["#c4#"] = AL["Paladin"], -- =q16=#c4#
["#c5#"] = AL["Priest"], -- =q9=#c5#
["#c6#"] = AL["Rogue"], -- =q12=#c6#
["#c7#"] = AL["Shaman"], -- =q15=#c7#
["#c8#"] = AL["Warlock"], -- =q11=#c8#
["#c9#"] = AL["Warrior"], -- =q17=#c9#
-- Skill
["#sk1#"] = AL["Apprentice"],
["#sk2#"] = AL["Journeyman"],
["#sk3#"] = AL["Expert"],
["#sk4#"] = AL["Artisan"],
-- Professions
["#p1#"] = AL["Alchemy"],
["#p2#"] = AL["Blacksmithing"],
["#p3#"] = AL["Cooking"],
["#p4#"] = AL["Enchanting"],
["#p5#"] = AL["Engineering"],
["#p6#"] = AL["First Aid"],
["#p7#"] = AL["Leatherworking"],
["#p8#"] = AL["Tailoring"],
["#p9#"] = AL["Dragonscale"],
["#p10#"] = AL["Tribal"],
["#p11#"] = AL["Elemental"],
["#p13#"] = AL["Lockpicking"],
["#p14#"] = AL["Gnomish Engineering"],
["#p15#"] = AL["Goblin Engineering"],
["#p16#"] = AL["Survival"],
["#p17#"] = AL["Gardening"],
["#p18#"] = AL["Jewelcrafting"],
-- Reputation
["#r1#"] = AL["Neutral"],
["#r2#"] = AL["Friendly"],
["#r3#"] = AL["Honored"],
["#r4#"] = AL["Revered"],
["#r5#"] = AL["Exalted"],
-- Battleground Factions
["#b1#"] = AL["Stormpike Guard"],
["#b2#"] = AL["Frostwolf Clan"],
["#b3#"] = AL["Silverwing Sentinels"],
["#b4#"] = AL["Warsong Outriders"],
["#b5#"] = AL["The League of Arathor"],
["#b6#"] = AL["The Defilers"],
-- BRDArena
["#brd1#"] = AL["Anub'shiah"],
["#brd2#"] = AL["Eviscerator"],
["#brd3#"] = AL["Gorosh the Dervish"],
["#brd4#"] = AL["Grizzle"],
["#brd5#"] = AL["Hedrum the Creeper"],
["#brd6#"] = AL["Ok'thor the Breaker"],
-- Sunken Temple Mini Bosses
["#st1#"] = AL["Gasher"],
["#st2#"] = AL["Hukku"],
["#st3#"] = AL["Loro"],
["#st4#"] = AL["Mijan"],
["#st5#"] = AL["Zolo"],
["#st6#"] = AL["Zul'Lor"],
-- Misc phrases and mod specific stuff
["#m1#"] = AL["Classes"],
["#m2#"] = AL["This Item Begins a Quest"],
["#m3#"] = AL["Quest Item"],
["#m4#"] = AL["Quest Reward"],
["#m5#"] = AL["Shared"],
["#m6#"] = AL["Horde"], -- =q6=#m
["#m7#"] = AL["Alliance"], -- =q8=#m
["#m8#"] = AL["Unique"],
["#m9#"] = AL["Right Half"],
["#m10#"] = AL["Left Half"],
["#m11#"] = AL["28 Slot Soul"],
["#m12#"] = AL["18 Slot"],
["#m13#"] = AL["10 Slot"],
["#m14#"] = AL["20 Slot"],
["#m15#"] = AL["22 Slot"],
["#m19#"] = AL["Set"],
["#m21#"] = AL["16 Slot"],
["#m22#"] = AL["Schematic: Field Repair Bot 74A"],
["#m23#"] = AL["Container"],
["#m24#"] = AL["Blacksmithing Plans"],
["#m25#"] = AL["Consumable"],
["#m31#"] = AL["Reagent"],
["#m32#"] = AL["Binds when picked up"],
["#m33#"] = AL["Misc"],
["#m34#"] = AL["Use to purchase rewards"],
["#m35#"] = AL["Fireworks"],
["#m36#"] = AL["Used to summon boss"],
["#m37#"] = AL["24 Slot"],
["#m38#"] = AL["Coin"],
["#m39#"] = AL["Bijou"],
["#m40#"] = AL["Doll"],
-- Random names
["#x1#"] = AL["Lord Cobrahn"],
["#x2#"] = AL["Lady Anacondra"],
["#x3#"] = AL["Lord Serpentis"],
["#x4#"] = AL["Druid of the Fang"],
["#x5#"] = AL["Lord Pythas"],
["#x6#"] = AL["Edwin VanCleef"],
["#x7#"] = AL["Captain Greenskin"],
["#x8#"] = AL["Defias Strip Miner"],
["#x9#"] = AL["Overseer/Taskmaster"],
["#x10#"] = AL["Primal Hakkari Kossack"],
["#x11#"] = AL["Primal Hakkari Shawl"],
["#x12#"] = AL["Primal Hakkari Bindings"],
["#x13#"] = AL["Primal Hakkari Sash"],
["#x14#"] = AL["Primal Hakkari Stanchion"],
["#x15#"] = AL["Primal Hakkari Aegis"],
["#x16#"] = AL["Primal Hakkari Girdle"],
["#x17#"] = AL["Primal Hakkari Armsplint"],
["#x18#"] = AL["Primal Hakkari Tabard"],
["#x19#"] = AL["Qiraji Ornate Hilt"],
["#x20#"] = AL["Qiraji Martial Drape"],
["#x21#"] = AL["Qiraji Magisterial Ring"],
["#x22#"] = AL["Qiraji Ceremonial Ring"],
["#x23#"] = AL["Qiraji Regal Drape"],
["#x24#"] = AL["Qiraji Spiked Hilt"],
["#x25#"] = AL["Qiraji Bindings of Dominance"],
["#x26#"] = AL["Vek'nilash's Circlet"],
["#x27#"] = AL["Ouro's Intact Hide"],
["#x28#"] = AL["Husk of the Old God"],
["#x29#"] = AL["Qiraji Bindings of Command"],
["#x30#"] = AL["Vek'lor's Diadem"],
["#x31#"] = AL["Skin of the Great Sandworm"],
["#x32#"] = AL["Carapace of the Old God"],
["#x33#"] = AL["Defender"],
["#x34#"] = AL["Trash Mobs"],
["#x35#"] = AL["Champion"],
["#x36#"] = AL["Centurion"],
["#x37#"] = AL["Herod"],
["#x38#"] = AL["Protector"],
["#x39#"] = AL["Myrmidon"],
["#x40#"] = AL["Defias Pirate"],
["#x41#"] = AL["Prisoner/Insurgent/Convict"],
["#x42#"] = AL["Black Guard Swordsmith"],
["#x43#"] = AL["Crimson Hammersmith"],
["#x44#"] = AL["Shadowforge Flame Keeper"],
["#x45#"] = AL["Anvilrage Marshal"],
["#x46#"] = AL["Anvilrage Captain"],
["#x47#"] = AL["Weapon Technician"],
["#x48#"] = AL["Doomforge Craftsman"],
["#x49#"] = AL["Doomforge Arcanasmith"],
["#x50#"] = AL["Hammered Patron"],
["#x51#"] = AL["Scarshield Warlock"],
["#x52#"] = AL["Firebrand Pyromancer"],
["#x53#"] = AL["Firebrand Grunt"],
["#x54#"] = AL["Firebrand Invoker"],
["#x55#"] = AL["Firebrand Legionnaire"],
["#x56#"] = AL["Spirestone Mystic"],
["#x57#"] = AL["Spirestone Warlord"],
["#x58#"] = AL["Spire Spider/Spiderling"],
["#x59#"] = AL["Blackhand Elite"],
["#x60#"] = AL["Blackhand Assassin"],
["#x61#"] = AL["Death Talon Wyrmguard"],
["#x62#"] = AL["Dark Iron Agent"],
["#x63#"] = AL["Molten Destroyer"],
["#x64#"] = AL["Scarlet Trainee"],
["#x65#"] = AL["Scarlet Commander Mograine"],
["#x66#"] = AL["Guardsman"],
["#x67#"] = AL["Plagued Hatchling"],
["#x68#"] = AL["Scholomance Adept"],
["#x69#"] = AL["Scholomance Dark Summoner"],
["#x70#"] = AL["Spectral Researcher"],
["#x71#"] = AL["Twilight Corrupter"],
["#x72#"] = AL["Thuzadin Shadowcaster"],
["#x73#"] = AL["Crimson Sorcerer"],
["#x74#"] = AL["Crimson Battle Mage"],
["#x75#"] = AL["Spectral Citizen"],
["#x76#"] = AL["Ghoul Ravener"],
["#x77#"] = AL["Crimson Inquisitor"],
["#x78#"] = AL["Atal'ai Witch Doctor"],
["#x79#"] = AL["Murk Worm"],
["#x80#"] = AL["Crimson Templar"],
["#x81#"] = AL["Azure Templar"],
["#x82#"] = AL["Earthen Templar"],
["#x83#"] = AL["Hoary Templar"],
["#x84#"] = AL["The Duke of Zephyrs"],
["#x85#"] = AL["The Duke of Shards"],
["#x86#"] = AL["The Duke of Cynders"],
["#x87#"] = AL["The Duke of Fathoms"],
["#x88#"] = AL["High Marshal Whirlaxis"],
["#x89#"] = AL["Baron Kazum"],
["#x90#"] = AL["Prince Skaldrenox"],
["#x91#"] = AL["Lord Skwol"],
["#x92#"] = AL["Baron Charr"],
["#x93#"] = AL["Avalanchion"],
["#x94#"] = AL["Princess Tempestria"],
["#x95#"] = AL["The Windreaver"],
["#x96#"] = AL["Mr. Smite"],
-- Misc
["#j1#"] = AL["Dungeon 1 Set"],
["#j2#"] = AL["Dungeon 2 Set"],
["#j3#"] = AL["D2 Summonable"],
["#j4#"] = AL["Token Hand-Ins"],
["#j5#"] = AL["Level 60"],
["#j6#"] = AL["Fire Resistance Gear"],
["#j7#"] = AL["Arcane Resistance Gear"],
["#j8#"] = AL["Nature Resistance Gear"],
["#j9#"] = AL["Frost Resistance Gear"],
["#j10#"] = AL["Shadow Resistance Gear"],
["#j11#"] = AL["Master Angler"],
["#j12#"] = AL["First Prize"],
["#j13#"] = AL["Rare Fish Rewards"],
["#j14#"] = AL["Rare Fish"],
["#j15#"] = AL["Fire"],
["#j16#"] = AL["Water"],
["#j17#"] = AL["Earth"],
["#j18#"] = AL["Air"],
-- Blacksmithing Crafted Sets
["#craftbp1#"] = AL["Imperial Plate"],
["#craftbp2#"] = AL["The Darksoul"],
["#craftbp3#"] = AL["Steel Plate"],
["#craftbm1#"] = AL["Bloodsoul Embrace"],
-- Tailoring Crafted Sets
["#craftt1#"] = AL["Augerer's Attire"],
["#craftt2#"] = AL["Shadoweave"],
["#craftt3#"] = AL["Diviner's Garments"],
["#craftt4#"] = AL["Pillager's Garb"],
["#craftt5#"] = AL["Bloodvine Garb"],
["#craftt6#"] = AL["Mooncloth Regalia"],
-- Leatherworking Crafted Sets
["#craftlwl7#"] = AL["Grifter's Armor"],
["#craftlwl8#"] = AL["Primalist's Trappings"],
["#craftlwl1#"] = AL["Volcanic Armor"],
["#craftlwl2#"] = AL["Ironfeather Armor"],
["#craftlwl3#"] = AL["Stormshroud Armor"],
["#craftlwl4#"] = AL["Devilsaur Armor"],
["#craftlwl5#"] = AL["Blood Tiger Harness"],
["#craftlwl6#"] = AL["Primal Batskin"],
["#craftlwm1#"] = AL["Green Dragon Mail"],
["#craftlwm2#"] = AL["Blue Dragon Mail"],
["#craftlwm3#"] = AL["Black Dragon Mail"],
["#craftlwm4#"] = AL["Red Dragon Mail"],
-- Chests, boxes
["#cb1#"] = AL["Doan's Strongbox"],
["#cb7#"] = AL["Fengus's Chest"],
["#cb9#"] = AL["Felvine Shard"],
["#cb10#"] = AL["Unforged Rune Covered Breastplate"],
["#cb13#"] = AL["Malor's Strongbox"],
["#cb16#"] = AL["Gift of Adoration"],
["#cb17#"] = AL["Box of Chocolates"],
["#cb18#"] = AL["Treat Bag"],
["#cb25#"] = AL["Brightly Colored Egg"],
["#cb26#"] = AL["Small Rocket Recipes"],
["#cb27#"] = AL["Large Rocket Recipes"],
["#cb28#"] = AL["Cluster Rocket Recipes"],
["#cb29#"] = AL["Large Cluster Rocket Recipes"],
["#cb30#"] = AL["Warpwood Pod"],
["#cb31#"] = AL["Scarab Coffer"],
["#cb32#"] = AL["Greater Scarab Coffer"],
-- Pre60 Sets
["#pre60s1#"] = AL["Defias Leather"],
["#pre60s2#"] = AL["Embrace of the Viper"],
["#pre60s3#"] = AL["Chain of the Scarlet Crusade"],
["#pre60s4#"] = AL["The Gladiator"],
["#pre60s5#"] = AL["Ironweave Battlesuit"],
["#pre60s6#"] = AL["Necropile Raiment"],
["#pre60s7#"] = AL["Cadaverous Garb"],
["#pre60s8#"] = AL["Bloodmail Regalia"],
["#pre60s9#"] = AL["Deathbone Guardian"],
["#pre60s10#"] = AL["The Postmaster"],
["#pre60s11#"] = AL["Regalia of Undead Cleansing"],
["#pre60s12#"] = AL["Undead Slayer's Armor"],
["#pre60s13#"] = AL["Garb of the Undead Slayer"],
["#pre60s14#"] = AL["Battlegear of Undead Slaying"],
["#pre60s15#"] = AL["Shard of the Gods"],
["#pre60s16#"] = AL["Major Mojo Infusion"],
["#pre60s17#"] = AL["Overlord's Resolution"],
["#pre60s18#"] = AL["Prayer of the Primal"],
["#pre60s19#"] = AL["Zanzil's Concentration"],
["#pre60s20#"] = AL["Spirit of Eskhandar"],
["#pre60s21#"] = AL["The Twin Blades of Hakkari"],
["#pre60s22#"] = AL["Primal Blessing"],
["#pre60s23#"] = AL["Dal'Rend's Arms"],
["#pre60s24#"] = AL["Spider's Kiss"],
-- ZG Sets
["#zgs1#"] = AL["Haruspex's Garb"],
["#zgs2#"] = AL["Predator's Armor"],
["#zgs3#"] = AL["Illusionist's Attire"],
["#zgs4#"] = AL["Freethinker's Armor"],
["#zgs5#"] = AL["Confessor's Raiment"],
["#zgs6#"] = AL["Madcap's Outfit"],
["#zgs7#"] = AL["Augur's Regalia"],
["#zgs8#"] = AL["Demoniac's Threads"],
["#zgs9#"] = AL["Vindicator's Battlegear"],
-- AQ20 Sets
["#aq20s1#"] = AL["Symbols of Unending Life"],
["#aq20s2#"] = AL["Trappings of the Unseen Path"],
["#aq20s3#"] = AL["Trappings of Vaulted Secrets"],
["#aq20s4#"] = AL["Battlegear of Eternal Justice"],
["#aq20s5#"] = AL["Finery of Infinite Wisdom"],
["#aq20s6#"] = AL["Emblems of Veiled Shadows"],
["#aq20s7#"] = AL["Gift of the Gathering Storm"],
["#aq20s8#"] = AL["Implements of Unspoken Names"],
["#aq20s9#"] = AL["Battlegear of Unyielding Strength"],
-- AQ40 Sets
["#aq40s1#"] = AL["Genesis Raiment"],
["#aq40s2#"] = AL["Striker's Garb"],
["#aq40s3#"] = AL["Enigma Vestments"],
["#aq40s4#"] = AL["Avenger's Battlegear"],
["#aq40s5#"] = AL["Garments of the Oracle"],
["#aq40s6#"] = AL["Deathdealer's Embrace"],
["#aq40s7#"] = AL["Stormcaller's Garb"],
["#aq40s8#"] = AL["Doomcaller's Attire"],
["#aq40s9#"] = AL["Conqueror's Battlegear"],
-- T0 Sets
["#t0s1#"] = AL["Wildheart Raiment"],
["#t0s2#"] = AL["Beaststalker Armor"],
["#t0s3#"] = AL["Magister's Regalia"],
["#t0s4#"] = AL["Lightforge Armor"],
["#t0s5#"] = AL["Vestments of the Devout"],
["#t0s6#"] = AL["Shadowcraft Armor"],
["#t0s7#"] = AL["The Elements"],
["#t0s8#"] = AL["Dreadmist Raiment"],
["#t0s9#"] = AL["Battlegear of Valor"],
-- T0.5 Sets
["#t05s1#"] = AL["Feralheart Raiment"],
["#t05s2#"] = AL["Beastmaster Armor"],
["#t05s3#"] = AL["Sorcerer's Regalia"],
["#t05s4#"] = AL["Soulforge Armor"],
["#t05s5#"] = AL["Vestments of the Virtuous"],
["#t05s6#"] = AL["Darkmantle Armor"],
["#t05s7#"] = AL["The Five Thunders"],
["#t05s8#"] = AL["Deathmist Raiment"],
["#t05s9#"] = AL["Battlegear of Heroism"],
-- T1 Sets
["#t1s1#"] = AL["Cenarion Raiment"],
["#t1s2#"] = AL["Giantstalker Armor"],
["#t1s3#"] = AL["Arcanist Regalia"],
["#t1s4#"] = AL["Lawbringer Armor"],
["#t1s5#"] = AL["Vestments of Prophecy"],
["#t1s6#"] = AL["Nightslayer Armor"],
["#t1s7#"] = AL["The Earthfury"],
["#t1s8#"] = AL["Felheart Raiment"],
["#t1s9#"] = AL["Battlegear of Might"],
-- T2 Sets
["#t2s1#"] = AL["Stormrage Raiment"],
["#t2s2#"] = AL["Dragonstalker Armor"],
["#t2s3#"] = AL["Netherwind Regalia"],
["#t2s4#"] = AL["Judgement Armor"],
["#t2s5#"] = AL["Vestments of Transcendence"],
["#t2s6#"] = AL["Bloodfang Armor"],
["#t2s7#"] = AL["The Ten Storms"],
["#t2s8#"] = AL["Nemesis Raiment"],
["#t2s9#"] = AL["Battlegear of Wrath"],
-- T3 Sets
["#t3s1#"] = AL["Dreamwalker Raiment"],
["#t3s2#"] = AL["Cryptstalker Armor"],
["#t3s3#"] = AL["Frostfire Regalia"],
["#t3s4#"] = AL["Redemption Armor"],
["#t3s5#"] = AL["Vestments of Faith"],
["#t3s6#"] = AL["Bonescythe Armor"],
["#t3s7#"] = AL["The Earthshatterer"],
["#t3s8#"] = AL["Plagueheart Raiment"],
["#t3s9#"] = AL["Dreadnaught's Battlegear"],
-- Brood of Nozdormu
["#pob1#"] = AL["Path of the Conqueror"],
["#pob2#"] = AL["Path of the Invoker"],
["#pob3#"] = AL["Path of the Protector"],
-- PvP Epic Horde Sets
["#pvpeh1#"] = AL["Warlord's Sanctuary"],
["#pvpeh2#"] = AL["Warlord's Pursuit"],
["#pvpeh3#"] = AL["Warlord's Regalia"],
["#pvpeh4#"] = AL["Warlord's Raiment"],
["#pvpeh5#"] = AL["Warlord's Vestments"],
["#pvpeh6#"] = AL["Warlord's Earthshaker"],
["#pvpeh7#"] = AL["Warlord's Threads"],
["#pvpeh8#"] = AL["Warlord's Battlegear"],
["#pvpeh9#"] = AL["Warlord's Aegis"],
-- PvP Epic Alliance Sets
["#pvpea1#"] = AL["Field Marshal's Sanctuary"],
["#pvpea2#"] = AL["Field Marshal's Pursuit"],
["#pvpea3#"] = AL["Field Marshal's Regalia"],
["#pvpea4#"] = AL["Field Marshal's Aegis"],
["#pvpea5#"] = AL["Field Marshal's Raiment"],
["#pvpea6#"] = AL["Field Marshal's Vestments"],
["#pvpea7#"] = AL["Field Marshal's Threads"],
["#pvpea8#"] = AL["Field Marshal's Battlegear"],
["#pvpea9#"] = AL["Field Marshal's Earthshaker"],
-- PvP Rare Horde Sets
["#pvprh1#"] = AL["Champion's Refuge"],
["#pvprh2#"] = AL["Champion's Pursuance"],
["#pvprh3#"] = AL["Champion's Arcanum"],
["#pvprh4#"] = AL["Champion's Investiture"],
["#pvprh5#"] = AL["Champion's Guard"],
["#pvprh6#"] = AL["Champion's Stormcaller"],
["#pvprh7#"] = AL["Champion's Dreadgear"],
["#pvprh8#"] = AL["Champion's Battlearmor"],
["#pvprh9#"] = AL["Champion's Redoubt"],
-- PvP Rare Alliance Sets
["#pvpra1#"] = AL["Lieutenant Commander's Refuge"],
["#pvpra2#"] = AL["Lieutenant Commander's Pursuance"],
["#pvpra3#"] = AL["Lieutenant Commander's Arcanum"],
["#pvpra4#"] = AL["Lieutenant Commander's Redoubt"],
["#pvpra5#"] = AL["Lieutenant Commander's Investiture"],
["#pvpra6#"] = AL["Lieutenant Commander's Guard"],
["#pvpra7#"] = AL["Lieutenant Commander's Dreadgear"],
["#pvpra8#"] = AL["Lieutenant Commander's Battlearmor"],
["#pvpra9#"] = AL["Lieutenant Commander's Stormcaller"],
-- Rogue
["#rp1#"] = AL["Poisons"],
["#rp2#"] = AL["Reagent"],
-- Crafting
["#sr#"] = AL["Skill:"],
["#lr#"] = AL["Level:"],
["=so1="] = "|cffff7f3f", -- orange skill
["=so2="] = "|cffffff00", -- yellow skill
["=so3="] = "|cff3fbf3f", -- green skill
["=so4="] = "|cff7f7f7f", -- gray skill
-- Misc PvP Set Text
["#pvps1#"] = AL["Epic Set"],
["#pvps2#"] = AL["Rare Set"],
-- Text colouring
["=q0="] = "|cff9d9d9d", -- poor
["=q1="] = "|cffFFFFFF", -- common
["=q2="] = "|cff1eff00", -- uncommon
["=q3="] = "|cff0070dd", -- rare
["=q4="] = "|cffa335ee", -- epic
["=q5="] = "|cffFF8000", -- legendary
["=q6="] = "|cffFF0000", -- red
["=q7="] = "|cff03c0f6", -- "dropped by" colour
["=q8="] = "|cff2773ff", -- alliance colour, alliance rank colour
["=q9="] = "|cffffffff", -- priest colour
["=q10="] = "|cff68ccef", -- mage colour
["=q11="] = "|cff9382c9", -- warlock colour
["=q12="] = "|cfffff468", -- rogue colour
["=q13="] = "|cffff7c0a", -- druid colour
["=q14="] = "|cffaad372", -- hunter colour
["=q15="] = "|cff2773ff", -- shaman colour
["=q16="] = "|cfff48cba", -- paladin colour
["=q17="] = "|cffc69b6d", -- warrior colour
["=q18="] = "|cffff3100", -- horde rank colour
["=q19="] = "|cffe6cc80", -- horde rank colour
["=ec1="] = "|cffFF8400",
["=ds="] = "|cffFFd200", -- default gold color
-- Dropped by names
["#db1#"] = AL["Patchwerk"],
["#db2#"] = AL["Grobbulus"],
["#db3#"] = AL["Gluth"],
["#db4#"] = AL["Thaddius"],
["#db5#"] = AL["Anub'Rekhan"],
["#db6#"] = AL["Faerlina"],
["#db7#"] = AL["Maexxna"],
["#db8#"] = AL["Noth"],
["#db9#"] = AL["Heigan"],
["#db10#"] = AL["Loatheb"],
["#db11#"] = AL["Razuvious"],
["#db12#"] = AL["Gothik"],
["#db13#"] = AL["The Four Horsemen"],
["#db14#"] = AL["Kel'Thuzad"],
["#db15#"] = AL["Onyxia"],
["#db16#"] = AL["Ragnaros"],
["#db17#"] = AL["Razorgore the Untamed"],
["#db18#"] = AL["Vaelastrasz the Corrupt"],
["#db19#"] = AL["Broodlord Lashlayer"],
["#db20#"] = AL["Firemaw"],
["#db21#"] = AL["Ebonroc"],
["#db22#"] = AL["Flamegor"],
["#db23#"] = AL["Chromaggus"],
["#db24#"] = AL["Nefarian"],
["#db25#"] = AL["Lucifron"],
["#db26#"] = AL["Magmadar"],
["#db27#"] = AL["Gehennas"],
["#db28#"] = AL["Garr"],
["#db29#"] = AL["Baron Geddon"],
["#db30#"] = AL["Shazzrah"],
["#db31#"] = AL["Sulfuron Harbinger"],
["#db32#"] = AL["Golemagg the Incinerator"],
["#db33#"] = AL["Darkmaster Gandling"],
["#db34#"] = AL["Baron Rivendare"],
["#db35#"] = AL["General Drakkisath"],
["#db36#"] = AL["Ras Frostwhisper"],
["#db37#"] = AL["Doctor Theolen Krastinov"],
["#db38#"] = AL["Hearthsinger Forresten"],
["#db39#"] = AL["Solakar Flamewreath"],
["#db40#"] = AL["Archivist Galford"],
["#db41#"] = AL["Maleki the Pallid"],
["#db42#"] = AL["Jandice Barov"],
["#db43#"] = AL["Lorekeeper Polkelt"],
["#db44#"] = AL["Baroness Anastari"],
["#db45#"] = AL["Cannon Master Willey"],
["#db46#"] = AL["Instructor Malicia"],
["#db47#"] = AL["Shadow Hunter Vosh'gajin"],
["#db48#"] = AL["Rattlegore"],
["#db49#"] = AL["Gizrul the Slavener"],
["#db50#"] = AL["Mother Smolderweb"],
["#db51#"] = AL["The Unforgiven"],
["#db52#"] = AL["The Ravenian"],
["#db53#"] = AL["Overlord Wyrmthalak"],
["#db54#"] = AL["War Master Voone"],
["#db55#"] = AL["Nerub'enkan"],
["#db56#"] = AL["Gyth"],
["#db57#"] = AL["Pyroguard Emberseer"],
["#db58#"] = AL["Highlord Omokk"],
["#db59#"] = AL["Warchief Rend Blackhand"],
["#db60#"] = AL["Ramstein the Gorger"],
["#db61#"] = AL["Kirtonos the Herald"],
["#db62#"] = AL["The Beast"],
["#db63#"] = AL["Lord Alexei Barov"],
["#db64#"] = AL["Timmy the Cruel"],
["#db65#"] = AL["Balnazzar"],
-- Zones abbreviations
["#z1#"] = AL["MC"],
["#z2#"] = AL["Scholo"],
["#z3#"] = AL["Strat"],
["#z4#"] = AL["LBRS"],
["#z5#"] = AL["UBRS"],
-- Currency
["#darkmoon#"] = "Interface\\Icons\\INV_Misc_Ticket_Darkmoon_01",
["#ccombat#"] = "Interface\\Icons\\INV_Jewelry_Talisman_06",
["#ctactical#"] = "Interface\\Icons\\INV_Jewelry_Amulet_02",
["#clogistics#"] = "Interface\\Icons\\INV_Jewelry_Necklace_16",
["#cremulos#"] = "Interface\\Icons\\INV_Jewelry_Necklace_14",
["#ccenarius#"] = "Interface\\Icons\\INV_Jewelry_Necklace_12",
["#zandalar#"] = "Interface\\Icons\\INV_Misc_Coin_08",
-- Challenges
["#lvl1#"] = AL["Level One Lunatic Challenge"],
}
local gsub = string.gsub
local SortedTextMap = {}
for k, v in pairs(TextMap) do
tinsert(SortedTextMap, { key = k, value = v })
end
table.sort(SortedTextMap, function(a,b) return strlen(a.value) > strlen(b.value) end)
function AtlasLoot_FixText(text)
if not text then return nil end
for k, v in ipairs(SortedTextMap) do
text = gsub(text, v.key, v.value)
end
return text
end
function AtlasLoot_CompressText(text)
if not text then return nil end
for k, v in ipairs(SortedTextMap) do
local _v = gsub(v.value, "([%(%)%-%+%*%%%?%.%$%^])", "%%%1")
text = gsub(text, _v, v.key)
end
return text
end