From: Aleksi Blinnikka Date: Tue, 24 Apr 2018 20:15:53 +0000 (+0300) Subject: Add a GTFO implementation X-Git-Url: https://www.aleksib.fi/git/wowui.git/commitdiff_plain/20f8c5a874b5813a9cc639babb497c048e556e66?ds=inline Add a GTFO implementation --- diff --git a/OmaGtfo/Gtfo.lua b/OmaGtfo/Gtfo.lua new file mode 100644 index 0000000..539673a --- /dev/null +++ b/OmaGtfo/Gtfo.lua @@ -0,0 +1,173 @@ +-- Gtfo.lua +local _; +local print, tonumber, pairs = print, tonumber, pairs; +local format = string.format; +local strsplit = strsplit; +local UnitGUID = UnitGUID; +local UnitExists, UnitIsUnit = UnitExists, UnitIsUnit; +local UnitBuff, UnitDebuff = UnitBuff, UnitDebuff; +local UnitGroupRolesAssigned = UnitGroupRolesAssigned; +local PlaySoundFile = PlaySoundFile; +local playerGuid, guids; +local playerTank; +local printAll = false; +local frame = CreateFrame("Frame"); +frame:Hide(); + +local sounds = { + "Interface\\Addons\\OmaGtfo\\sounds\\alarmbuzzer.ogg", + "Interface\\Addons\\OmaGtfo\\sounds\\alarmbeep.ogg", + "Interface\\Addons\\OmaGtfo\\sounds\\alarmdouble.ogg", + "Interface\\Addons\\OmaGtfo\\sounds\\alarmbuzz.ogg", +}; +local taken = OmaGTFO.DmgTaken; +local caused = OmaGTFO.DmgDone; +local environs = { + ["Drowning"] = sounds[1], + ["Fatigue"] = sounds[1], + ["Lava"] = sounds[2], + ["Fire"] = sounds[2], + ["Slime"] = sounds[2], +}; + +local function mobId(guid) + local mob, _, _, _, _, id = strsplit("-", guid); + if mob and (mob == "Creature" or mob == "Vehicle" or mob == "Pet") then + return tonumber(id); + end + return nil; +end + +-- negatingIgnoreTime-like functionality not implemented +local events = { + ["SPELL_DAMAGE"] = function(event, source, spellid, spellname, _, arg1, arg2) + if (event == "SPELL_AURA_APPLIED" or event == "SPELL_AURA_APPLIED_DOSE" or + event == "SPELL_AURA_REFRESH") and arg1 ~= "DEBUFF" then + return; + elseif taken[spellid] then + -- TODO uncomment checks when they're in use + local spell = taken[spellid]; + local sound = spell.sound; + if spell.eventType and spell.eventType ~= event then return end + --if (event == "SPELL_MISSED" or event == "SPELL_PERIODIC_MISSED") and not spell.always then return end + if spell.negatingDebuff and UnitDebuff("player", spell.negatingDebuff) then return end + --if spell.negatingBuff and UnitBuff("player", spell.negatingBuff) then return end + --if spell.affirmingDebuff and not UnitDebuff("player", spell.affirmingDebuff) then return end + --if spell.mobs and source and not spell.mobs[mobId(source)] then return end + --if spell.ignoreSelf and source == playerGuid then return end + if spell.tankMechanic and playerTank then + if spell.tankMechanic == true then return end + sound = spell.tankMechanic; + end + if spell.applicationOnly then + if event ~= "SPELL_AURA_APPLIED" and event ~= "SPELL_AURA_APPLIED_DOSE" and + event ~= "SPELL_AURA_REFRESH" then + return; + elseif spell.minStacks and (event ~= "SPELL_AURA_APPLIED_DOSE" or + not arg2 or arg2 <= spell.minStacks) then + return; + end + end + if spell.minDamage then + local damage = tonumber(arg1) or 0; + if damage < spell.minDamage then return end + end + if spell.multipleHitsTime then -- only alarm if multiple hits within a certain time + local now, prevHit = GetTime(), spell.prevHit; + spell.prevHit = now; + if prevHit then + if now - prevHit > spell.multipleHitsTime then + return; + end + else + return; + end + end + + return PlaySoundFile(sounds[sound], "SFX"); + --elseif printAll then -- TODO uncomment when wanting to print all non-tracked events + -- return print(event, spellid, spellname); + end + end, + ["ENVIRONMENTAL_DAMAGE"] = function(_, _, env) + if environs[env] then return PlaySoundFile(environs[env], "SFX") end + end, +}; +events["SPELL_MISSED"] = events["SPELL_DAMAGE"]; +events["SPELL_PERIODIC_DAMAGE"] = events["SPELL_DAMAGE"]; +events["SPELL_PERIODIC_MISSED"] = events["SPELL_DAMAGE"]; +events["SPELL_ENERGIZE"] = events["SPELL_DAMAGE"]; +events["SPELL_INSTAKILL"] = events["SPELL_DAMAGE"]; +events["SPELL_AURA_APPLIED"] = events["SPELL_DAMAGE"]; +events["SPELL_AURA_APPLIED_DOSE"] = events["SPELL_DAMAGE"]; +events["SPELL_AURA_REFRESH"] = events["SPELL_DAMAGE"]; + +local function clog(_, event, _, sourceGuid, _, _, _, destGuid, _, _, _, ...) + -- TODO vehicle support? + if destGuid == playerGuid then + if events[event] then return events[event](event, sourceGuid, ...) end + elseif sourceGuid == playerGuid and event == "SPELL_DAMAGE" then + local spellid = ...; + if guids[destGuid] and caused[spellid] then + return PlaySoundFile(sounds[caused[spellid]], "SFX"); + end + end +end + +local function updateGuids() + guids = {}; + if IsInGroup() then + if IsInRaid() then + for i = 1,40 do + local unit = format("raid%i", i); + if not UnitExists(unit) then break end + if not UnitIsUnit(unit, "player") then + guids[UnitGUID(unit)] = true; + end + end + else + for i = 1,4 do + local unit = format("party%i", i); + if not UnitExists(unit) then break end + guids[UnitGUID(unit)] = true; + end + end + end +end + +local function updateRole() + playerTank = UnitGroupRolesAssigned("player") == "TANK"; +end + +local realEvents = { + ["COMBAT_LOG_EVENT_UNFILTERED"] = clog, + ["GROUP_ROSTER_UPDATE"] = updateGuids, + ["PLAYER_ROLES_ASSIGNED"] = updateRole, + ["MIRROR_TIMER_START"] = function(timer, _, _, scale) + if (timer == "EXHAUSTION" and scale < 0) then + return PlaySoundFile(sounds[1], "SFX"); + end + end, +}; +local function handleEvent(frame, event, ...) + realEvents[event](...); +end + +frame:SetScript("OnEvent", function() + frame:UnregisterAllEvents(); + playerGuid = UnitGUID("player"); + updateGuids(); + updateRole(); + frame:SetScript("OnEvent", handleEvent); + frame:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED"); + frame:RegisterEvent("GROUP_ROSTER_UPDATE"); + frame:RegisterEvent("PLAYER_ROLES_ASSIGNED"); + frame:RegisterEvent("MIRROR_TIMER_START"); +end); +frame:RegisterEvent("PLAYER_LOGIN"); + +SLASH_OMAGTFO1 = "/omag"; +function SlashCmdList.OMAGTFO(msg, editBox) + printAll = not printAll; + print("printAll", printAll) +end diff --git a/OmaGtfo/GtfoSpells.lua b/OmaGtfo/GtfoSpells.lua new file mode 100644 index 0000000..ffbea64 --- /dev/null +++ b/OmaGtfo/GtfoSpells.lua @@ -0,0 +1,288 @@ +-- GtfoSpells.lua +OmaGTFO = {}; +OmaGTFO.DmgTaken = { + -- LEGION -- + -- Vault of the Wardens + [199645] = { sound = 3 }, -- Face Kick (Crusher) + [192519] = { sound = 3, applicationOnly = true }, -- Lava (Ash'golm) + [214893] = { sound = 3 }, -- Pulse (Glazer) + [199828] = { sound = 3 }, -- Chaos Nova (Immolanth) + [199773] = { sound = 3 }, -- Burning Fel (Immolanth) + [201041] = { sound = 3 }, -- Madness (Inquisitor) + [193610] = { sound = 3 }, -- Fel Detonation (Glayvianna Soulrender) + [191684] = { sound = 3 }, -- Burning Pitch (Viletongue Belcher) + [194037] = { sound = 3 }, -- Mortar (Foul Mother) + [199918] = { sound = 3, applicationOnly = true }, -- Shadow Crash (Faceless Voidcaster) + [200202] = { sound = 3, applicationOnly = true }, -- Chilled to the Bone (Ash'golm) + [197334] = { sound = 3 }, -- Fel Glaive (Cordana Felsong) + [201037] = { sound = 1 }, -- Seeping Shadows (Kelthrazor) + [214625] = { sound = 1 }, -- Fel Chain (Tirathon Saltheril) + [191853] = { sound = 1 }, -- Furious Flames (Tirathon Saltheril) + [196502] = { sound = 2 }, -- Lingering Gaze (Glazer) + [216319] = { sound = 1 }, -- A Mother's Love (Grimoira) + [222631] = { sound = 1 }, -- Chaos Pyre (Lysanis Shadesoul) + [199229] = { sound = 1 }, -- Fel Fire Wall + [211834] = { sound = 1 }, -- Hellfire + [238691] = { sound = 1 }, -- Spear of Vengeance + -- The Violet Hold + [205101] = { sound = 3 }, -- Soul Eruption (Eredar Shadow Mender) + [204498] = { sound = 3 }, -- Soul Explosion (Portal Guardian) + [202037] = { sound = 3, applicationOnly = true }, -- Frozen (Shivermaw) + [201355] = { sound = 3 }, -- Wing Buffet (Shivermaw) + [201852] = { sound = 3 }, -- Relentless Storm (Shivermaw) + [201598] = { sound = 3 }, -- Congealing Vomit (Festerface) + [202364] = { sound = 1 }, -- Execution (Fel Lord Betrug) + [205014] = { sound = 1 }, -- Seeping Shadows (Lord Malgath) + [201380] = { sound = 1, applicationOnly = true, tankMechanic = true }, -- Frost Breath (Shivermaw) + [201957] = { sound = 1 }, -- Frostbite (Shivermaw) + [204762] = { sound = 1 }, -- Violent Fel Energy (Portal Keeper) + [202266] = { sound = 1 }, -- Icky Goo (Festerface) + -- Darkheart Thicket + [204402] = { sound = 3 }, -- Star Shower (Dreadsoul Ruiner) + [201123] = { sound = 3 }, -- Root Burst (Vilethorn Blossom) + [199063] = { sound = 3, applicationOnly = true }, -- Strangling Roots (Oakheart) + [201273] = { sound = 3 }, -- Blood Bomb (Bloodtainted Fury) + [201400] = { sound = 3 }, -- Dread Inferno (Dreadfire Imp) + [200111] = { sound = 3 }, -- Apocalyptic Fire (Shade of Xavius) + [198916] = { sound = 3 }, -- Vile Burst (Vile Mushroom) + [198408] = { sound = 1 }, -- Nightfall (Archdruid Glaidalis) + [218759] = { sound = 1 }, -- Corruption Pool (Festerhide Grizzly) + [199460] = { sound = 1 }, -- Falling Rocks (Dresaron) + [204976] = { sound = 1 }, -- Noxious Spit (Kudzilla) + -- Eye of Azshara + [195217] = { sound = 3 }, -- Aqua Spout (Hatecoil Arcanist) + [193597] = { sound = 3 }, -- Static Nova (Lady Hatecoil) + [196610] = { sound = 3, applicationOnly = true }, -- Monsoon (Lady Hatecoil) + [191847] = { sound = 3 }, -- Poison Spit (Serpentrix) + [196299] = { sound = 3 }, -- Roiling Storm (Stormwake Hydra) + [196294] = { sound = 3 }, -- Chaotic Tempest (Stormwake Hydra) + [196293] = { sound = 3 }, -- Chaotic Tempest (Stormwake Hydra) + [193088] = { sound = 3 }, -- Ground Slam (King Deepbeard) + [192794] = { sound = 3 }, -- Lightning Strike (Wrath of Azshara) + [192675] = { sound = 3 }, -- Mystic Tornado (Wrath of Azshara) + [192619] = { sound = 3 }, -- Massive Deluge (Wrath of Azshara) + [192801] = { sound = 3 }, -- Tidal Wave (Wrath of Azshara) + [192708] = { sound = 3 }, -- Arcane Bomb (Wrath of Azshara) + [196871] = { sound = 1 }, -- Storm (Hatecoil Stormweaver) + [192053] = { sound = 1 }, -- Quicksand (Warlord Parjesh) + [199948] = { sound = 1 }, -- Tempest (Channeler Varisz) + [195473] = { sound = 1, applicationOnly = true }, -- Abrasive Slime (Gritslime Snail) + [191858] = { sound = 1 }, -- Toxic Puddle (Sepentrix) + [193055] = { sound = 1, negatingDebuff = "Gaseous Bubbles" }, -- Call of the Seas + -- Neltharion's Lair + [202089] = { sound = 3 }, -- Scorch (Burning Geode) + [200338] = { sound = 3 }, -- Crystal Wall (Dargrul) + [198475] = { sound = 3 }, -- Strike of the Mountain (Ularogg Cragshaper) + [226406] = { sound = 3, tankMechanic = true }, -- Ember Swipe (Emberhusk Dominator) + [183407] = { sound = 1, multipleHitsTime = 1 }, -- Acid Splatter + [192800] = { sound = 1, minDamage = 1 }, -- Choking Dust (Rokmora) + [183566] = { sound = 1 }, -- Rancid Pool (Tarspitter Lurker) + [188494] = { sound = 1 }, -- Rancid Maw (Naraxas) + [188493] = { sound = 1 }, -- Rancid Maw (Naraxas) + [226388] = { sound = 1 }, -- Rancid Ooze + [210166] = { sound = 1 }, -- Toxic Wretch (Naraxas) + [217090] = { sound = 1 }, -- Magma Wave (Dargrul) + -- Halls of Valor + [198605] = { sound = 3 }, -- Thunderstrike (Valarjar Thundercaller) TODO + [198412] = { sound = 3 }, -- Feedback (Odyn) + [193260] = { sound = 3 }, -- Static Field (Hymdall) + [192206] = { sound = 3 }, -- Sanctify (Olmyr the Enlightened) + [198088] = { sound = 3, applicationOnly = true }, -- Glowing Fragment (Odyn) + [198903] = { sound = 1 }, -- Crackling Storm (Storm Drake) + [193234] = { sound = 1 }, -- Dancing Blade (Hymdall) + [199818] = { sound = 1 }, -- Crackle (Valarjar Thundercaller) + [200682] = { sound = 1, negatingDebuff = "Eye of the Storm" }, -- Eye of the Storm (Solsten) + [193702] = { sound = 1 }, -- Infernal Flames (God-King Skovald) + [193827] = { sound = 1 }, -- Ragnarok (God-King Skovald) + -- The Arcway + [197788] = { sound = 3 }, -- Bombardment (General Xakal) + [197579] = { sound = 3 }, -- Fel Eruption (General Xakal) + [194006] = { sound = 1 }, -- Ooze Puddle (Unstable Amalgamation) + [200040] = { sound = 1 }, -- Nether Venom (Nal'tira) + [199812] = { sound = 1 }, -- Blink Strikes (Nal'tira) + [210750] = { sound = 1 }, -- Collapsing Rift (Withered Manawraith) + [220500] = { sound = 1 }, -- Destabilized Orb (Corstillax) + [211209] = { sound = 1 }, -- Arcane Slicer (Arcane Anomaly) + [196824] = { sound = 1 }, -- Nether Link (Ivanyr) + [220597] = { sound = 1 }, -- Charged Bolt (Ivanyr) + [211745] = { sound = 1 }, -- Fel Strike (Wrathguard Felblade) + [220443] = { sound = 1 }, -- Wake of Shadows (General Xakal) + -- Maw of Souls + [195038] = { sound = 3 }, -- Defiant Strike - finish (Seacursed Soulkeeper) + [193513] = { sound = 3 }, -- Bane (Ymiron, the Fallen King) + [193364] = { sound = 3, applicationOnly = true }, -- Screams of the Dead (Ymiron, the Fallen King) + [194099] = { sound = 3, applicationOnly = true }, -- Bile Breath (The Grimewalker) + [194218] = { sound = 3 }, -- Cosmic Scythe (Harbaron) + [197117] = { sound = 3 }, -- Piercing Tentacle (Helya) + [195309] = { sound = 3 }, -- Swirling Water (Helya) + [197858] = { sound = 3 }, -- Turbulent Waters (Helya) + [202472] = { sound = 3 }, -- Tainted Essence (Helya) + [216107] = { sound = 1 }, -- Convulsive Shadows (Shroudseeker) + [194102] = { sound = 1 }, -- Poisonous Sludge (The Grimewalker) + [195035] = { sound = 1 }, -- Defiant Strike (Seacursed Soulkeeper) + [194235] = { sound = 1 }, -- Nether Rip (Harbaron) + [227234] = { sound = 1 }, -- Corrupted Bellow (Helya) + -- Court of Stars + [209027] = { sound = 3 }, -- Quelling Strike (Duskwatch Guard) + [209477] = { sound = 3 }, -- Wild Detonation (Mana Wyrm) + [209404] = { sound = 3 }, -- Seal Magic (Duskwatch Arcanist) + [206574] = { sound = 3 }, -- Resonant Slash (Patrol Guard Gerdo) + [219498] = { sound = 3 }, -- Streetsweeper (Patrol Guard Gerdo) + [209378] = { sound = 3, applicationOnly = true }, -- Whirling Blades (Imacu'tya) + [207979] = { sound = 3 }, -- Shockwave (Jazshariu) + [207887] = { sound = 3 }, -- Infernal Eruption (Talixae Flamewreath) + [211457] = { sound = 3 }, -- Infernal Eruption (Talixae Flamewreath) + [224333] = { sound = 3 }, -- Enveloping Winds (Advisor Melandrus) + -- TODO Arcane Lockdown ? + [209027] = { sound = 1 }, -- Disrupting Energy (Guardian Construct) + [211391] = { sound = 1 }, -- Felblaze Puddle (Legion Hound) + -- Black Rook Hold + [196517] = { sound = 3 }, -- Shirling Scythe (Amalgam of Souls) + [194956] = { sound = 3 }, -- Reap Soul (Amalgam of Souls) + [194960] = { sound = 3 }, -- Soul Echoes (Amalgam of Souls) + [200256] = { sound = 3 }, -- Phased Explosion (Arcane Minion) + [200261] = { sound = 3 }, -- Bonebreaking Strike (Soul-torn Champion) + [222397] = { sound = 3 }, -- Boulder Crush + [222417] = { sound = 3, applicationOnly = true }, -- Boulder Crush + [214002] = { sound = 3 }, -- Raven's Dive (Risen Lancer) + [199567] = { sound = 3 }, -- Dark Obliteration (Latosius) + [198820] = { sound = 3 }, -- Dark Blast (Latosius) + [199097] = { sound = 3, applicationOnly = true }, -- Cloud of Hypnosis (Latosius) + [211688] = { sound = 3 }, -- Overwhelming Detonation (Braxas the Fleshcarver) + [224188] = { sound = 3, applicationOnly = true, minStacks = 1 }, -- Hateful Charge (Smashspite the Hateful) + [221838] = { sound = 3, applicationOnly = true }, -- Disorienting Gas (Kelorn Nightblade) + [198781] = { sound = 3 }, -- Whirling Blade (Kur'talos Ravencrest) + [200914] = { sound = 3, tankMechanic = true }, -- Indigestion (Wyrmtongue Scavenger) + [200344] = { sound = 1 }, -- Arrow Barrage (Risen Archer) + [221131] = { sound = 1, negatingDebuff = "Arcane Overcharge" }, -- Arcane Overcharge (Archmage Galeorn) + [220922] = { sound = 1 }, -- Overwhelming Release (Archmage Galeorn) + [197521] = { sound = 1 }, -- Blazing Trail (Illysanna Ravencrest) + [197821] = { sound = 1 }, -- Felblazed Ground (Illysanna Ravencrest) + [198501] = { sound = 1 }, -- Fel Vomitus (Smashspite the Hateful) + [221680] = { sound = 1 }, -- Fel Residue (Braxas the Fleshcarver) + [221866] = { sound = 1, tankMechanic = true }, -- Blade Barrage (Kelorn Nightblade) + [198245] = { sound = 1 }, -- Brutal Haymaker (Smashspite the Hateful) + -- Return to Karazhan + [227416] = { sound = 3 }, -- Wondrous Radiance (Galindre) + [227776] = { sound = 3 }, -- Magic Magnificent (Galindre) + [227917] = { sound = 3 }, -- Poetry Slam (Ghostly Understudy) + [227925] = { sound = 3 }, -- Final Curtain (Ghostly Understudy) + [227977] = { sound = 3, applicationOnly = true }, -- Flashlight (Skeletal Usher) + [227339] = { sound = 3 }, -- Mezair (Midnight) + [227645] = { sound = 3 }, -- Spectral Charge (Midnight) + [227532] = { sound = 3 }, -- Unstable Energy (Damaged Golem) + [230044] = { sound = 3, tankMechanic = true }, -- Cleave (Wrathguard Flamebringer) + [229988] = { sound = 3 }, -- Burning Tile + [229597] = { sound = 3 }, -- Fel Mortar (Fel Bat) + [229696] = { sound = 3 }, -- Stampede (Rat) + [227620] = { sound = 3 }, -- Arcane Bomb (Mana Devourer) + [229384] = { sound = 3 }, -- Queen Move + [229563] = { sound = 3 }, -- Knight Move + [229427] = { sound = 3 }, -- Royal Slash (King) + [229545] = { sound = 3 }, -- Bishop Move + [229559] = { sound = 3 }, -- Bishop Move + [229285] = { sound = 3 }, -- Bombardment (Viz'aduum the Watcher) + [229161] = { sound = 3 }, -- Explosive Shadows (Viz'aduum the Watcher) + [229151] = { sound = 3 }, -- Disintegrate (Viz'aduum the Watcher) + [227465] = { sound = 1 }, -- Power Discharge (Curator) + [228808] = { sound = 1, negatingDebuff = "Ignite Soul" }, -- Charred Earth (Nightbane) + [228001] = { sound = 1 }, -- Pennies From Heaven (Ghostly Philathropist) + [227848] = { sound = 1, minStacks = 1, applicationOnly = true }, -- Sacred Ground (Maiden of Virtue) + [227473] = { sound = 1 }, -- Whirling Edge (Lord Robin Daris) + [229682] = { sound = 1 }, -- Gleeful Immolation (Gleeful Immolator) + [229677] = { sound = 1 }, -- Fel Bomb (Infused Pyromancer) + [227806] = { sound = 1, minStacks = 2, applicationOnly = true }, -- Ceaseless Winter (Shade of Medivh) + [229905] = { sound = 1 }, -- Soul Harvest (Viz'aduum the Watcher) + [230431] = { sound = 1 }, -- Seeping Fel Power (Viz'aduum the Watcher) + [229250] = { sound = 1 }, -- Fel Flames (Viz'aduum the Watcher) + [229248] = { sound = 1, minDamage = 1 }, -- Fel Flames (Viz'aduum the Watcher) + [228993] = { sound = 1 }, -- Caustic Pool (Coldmist Stalker) + -- Cathedral of Eternal Night + [239558] = { sound = 3, tankMechanic = true }, -- Shadow Swipe (Dreadwing) + [237599] = { sound = 3, tankMechanic = true }, -- Devastating Swipe (Helblaze Felbringer) + [239201] = { sound = 3 }, -- Fel Glare (Gazerax) + [239217] = { sound = 3 }, -- Blinding Glare (Gazerax) + [237276] = { sound = 3, minDamage = 1500000 }, -- Pulverizing Cudgel (Thrashbite the Scornful) + [238469] = { sound = 3 }, -- Scornful Charge (Thrashbite the Scornful) + [236543] = { sound = 3 }, -- Felsoul Cleave (Domatrax) + [238583] = { sound = 3, applicationOnly = true }, -- Devour Magic (Felblight Stalker) + [238656] = { sound = 1 }, -- Shadow Wave (Dul'zak) + [237325] = { sound = 1, applicationOnly = true }, -- Toxic Pollen (Felborne Botanist) + [240951] = { sound = 1, tankMechanic = true }, -- Destructive Rampage (Thrashbite the Scornful) + [233177] = { sound = 1 }, -- Carrion Swarm (Mephistroth) + [237583] = { sound = 1 }, -- Burning Celerity + [240295] = { sound = 1 }, -- Searing Rend + -- Seat of the Triumvirate + [248130] = { sound = 3 }, -- Darkened Remnant (Rift Warden) + [246026] = { sound = 3, applicationOnly = true }, -- Void Trap (Saprish) + [250188] = { sound = 3 }, -- Void Fragment + [248067] = { sound = 3, tankMechanic = true }, -- Grand Swing (Umbral War-Adept) + [246900] = { sound = 3, applicationOnly = true }, -- Dark Outbreak (Void Discharge) + [244588] = { sound = 1 }, -- Void Sludge (Zuraal the Ascended) + [244906] = { sound = 1 }, -- Collapsing Void (Viceroy Nezhar) + [250820] = { sound = 1, applicationOnly = true }, -- Growing Pressure + -- Antorus + [245861] = { sound = 1 }, -- Searing Rend + [244590] = { sound = 1 }, -- Molten Hot Fel + [249297] = { sound = 4, eventType = "SPELL_AURA_REFRESH" }, -- Flames of Reorigination + [244532] = { sound = 3 }, -- Fel Bombardment (Garothi Worldbreaker) + [254760] = { sound = 3, tankMechanic = true }, -- Corrupting Maw (Felhounds of Sargeras) + [244163] = { sound = 3 }, -- Molten Flare (Felhounds of Sargeras) + [244071] = { sound = 3, applicationOnly = true }, -- Weight of Darkness (Felhounds of Sargeras) + [244131] = { sound = 1 }, -- Consuming Sphere (Felhounds of Sargeras) + [254403] = { sound = 1 }, -- Consuming Sphere (Felhounds of Sargeras) + [245121] = { sound = 3 }, -- Entropic Blast (Antoran High Command) + [244892] = { sound = 3, tankMechanic = true }, -- Exploit Weakness (Antoran High Command) + [253039] = { sound = 1, tankMechanic = 2 }, -- Bladestorm (Antoran High Command) + [243984] = { sound = 3, multipleHitsTime = 1 }, -- Collapsing World (Portal Keeper Hasabel) + [244001] = { sound = 3 }, -- Felstorm Barrage (Portal Keeper Hasabel) + [244601] = { sound = 3 }, -- Supernova (Portal Keeper Hasabel) + [250701] = { sound = 3, tankMechanic = true }, -- Fel Swipe (Eonar the Life-Binder) + [248795] = { sound = 1 }, -- Fel Wake (Eonar the Life-Binder) + [247388] = { sound = 3 }, -- Pulse Grenade (Imonar the Soulhunter) + [247681] = { sound = 3 }, -- Pulse Grenade (Imonar the Soulhunter) + [247641] = { sound = 3, applicationOnly = true }, -- Stasis Trap (Imonar the Soulhunter) + [247962] = { sound = 3 }, -- Blastwire (Imonar the Soulhunter) + [248321] = { sound = 3, applicationOnly = true }, -- Conflagration (Imonar the Soulhunter) + [247932] = { sound = 3, applicationOnly = true }, -- Shrapnel Blast (Imonar the Soulhunter) + [254919] = { sound = 3, tankMechanic = true }, -- Forging Strike (Kin'garoth) + [246634] = { sound = 3 }, -- Apocalypse Blast (Kin'garoth) + [258021] = { sound = 1 }, -- Purging Protocol (Kin'garoth) + [246840] = { sound = 1 }, -- Ruiner (Kin'garoth) + [257644] = { sound = 3, tankMechanic = true }, -- Shadow Strike (Varimathras) + [244006] = { sound = 3 }, -- Dark Eruption (Varimathras) + [243963] = { sound = 1 }, -- Alone in the Darkness (Varimathras) + [246374] = { sound = 3 }, -- Shadow Blades (The Coven of Shivarra) + [253020] = { sound = 1 }, -- Storm of Darkness (The Coven of Shivarra) + [245674] = { sound = 1 }, -- Flames of Khaz'goroth (The Coven of Shivarra) + [245921] = { sound = 1 }, -- Spectral Army of Norgannon (The Coven of Shivarra) + [245634] = { sound = 1 }, -- Whirling Saber (The Coven of Shivarra) + [254022] = { sound = 3 }, -- Corrupt Aegis (Aggramar) + [246014] = { sound = 3, applicationOnly = true }, -- Searing Tempest (Aggramar) + [244291] = { sound = 3, tankMechanic = true }, -- Foe Breaker (Aggramar) + [244736] = { sound = 3, applicationOnly = true }, -- Wake of Flame (Aggramar) + [245391] = { sound = 3 }, -- Flare (Aggramar) + [244686] = { sound = 3 }, -- Meteor Swarm (Aggramar) + [248499] = { sound = 3, tankMechanic = true }, -- Sweeping Scythe (Argus the Unmaker) + [251815] = { sound = 3 }, -- Edge of Obliteration (Argus the Unmaker) + [257299] = { sound = 3, applicationOnly = true }, -- Ember of Rage (Argus the Unmaker) + [248167] = { sound = 1 }, -- Death Fog (Argus the Unmaker) + [255646] = { sound = 1 }, -- Golganneth's Wrath (Argus the Unmaker) + + + -- BATTLE FOR AZEROTH -- +}; + +OmaGTFO.DmgDone = { + -- LEGION -- + -- Emerald Nightmare + [203097] = 1, -- Rot (Nythendra) + [203788] = 1, -- Volatile Infection (Emeriss) + -- Nighthold + [208501] = 1, -- Sterilize (Trilliax) + -- Antorus + [249297] = 1, -- Flames of Reorigination + + + -- BATTLE FOR AZEROTH -- +}; diff --git a/OmaGtfo/OmaGtfo.toc b/OmaGtfo/OmaGtfo.toc new file mode 100644 index 0000000..86ddffc --- /dev/null +++ b/OmaGtfo/OmaGtfo.toc @@ -0,0 +1,8 @@ +## Interface: 70300 +## Title: Oma GTFO +## Version: 1.0 +## Author: schyrio +## Notes: My GTFO + +GtfoSpells.lua +Gtfo.lua diff --git a/OmaGtfo/sounds/alarmbeep.ogg b/OmaGtfo/sounds/alarmbeep.ogg new file mode 100644 index 0000000..6186d6b Binary files /dev/null and b/OmaGtfo/sounds/alarmbeep.ogg differ diff --git a/OmaGtfo/sounds/alarmbuzz.ogg b/OmaGtfo/sounds/alarmbuzz.ogg new file mode 100644 index 0000000..ae1d5a8 Binary files /dev/null and b/OmaGtfo/sounds/alarmbuzz.ogg differ diff --git a/OmaGtfo/sounds/alarmbuzzer.ogg b/OmaGtfo/sounds/alarmbuzzer.ogg new file mode 100644 index 0000000..b26884f Binary files /dev/null and b/OmaGtfo/sounds/alarmbuzzer.ogg differ diff --git a/OmaGtfo/sounds/alarmdouble.ogg b/OmaGtfo/sounds/alarmdouble.ogg new file mode 100644 index 0000000..ec31a55 Binary files /dev/null and b/OmaGtfo/sounds/alarmdouble.ogg differ