Skip to content

Instantly share code, notes, and snippets.

@acastaner
Last active March 16, 2022 09:35
Show Gist options
  • Save acastaner/f9f5a66d462f916c7287d0cf17fb1b10 to your computer and use it in GitHub Desktop.
Save acastaner/f9f5a66d462f916c7287d0cf17fb1b10 to your computer and use it in GitHub Desktop.
Dwobin Spell Reflection Tracker
--- Spell Reflection Tracker update for SOFO --
aura_env.reflectableSpells = {}
local addSpell = function(spellID)
aura_env.reflectableSpells[spellID] = true
end
--- Sanctum of Domination ---
---Bosses---
--- Eye of the Jailer ---
addSpell(350453) -- Deathseeker Eye - Spellname: Piercing Lens - Reflect result: Reflect no dmg
addSpell(348969) -- Eye of the Jailer - Spellname: Immediate Extermination - Reflect result: Reflect 1 tick
--- The Nine ---
addSpell(350283) -- Signe - Spellname: Soulful Blast - Reflect result: Reflect with dmg
--- Soulrender Dormazain ---
addSpell(350801) -- Soulrender Dormazain - Spellname: Unleashed Tyranny - Reflect result: REFLECT with big damage
addSpell(354231) -- Soulrender Dormazain - Spellname: Soul Manacles - Reflect result: Reflect 1 tick
--- Fatescribe Roh-Kalo ---
addSpell(353398) -- Fatespawn Anomaly - Spellname: Anomalous Blast - Reflect result: Reflect with damage
addSpell(353603) -- Fatescribe Roh-Kalo - Spellname: Diviner's Probe - Reflect result: Deflect
addSpell(353931) -- Fatescribe Roh-Kalo - Spellname: Twist Fate - Reflect result: Reflect and prevent debuff
--- Sylvanas Windrunner ---
addSpell(352650) -- Sylvanas Windrunner - Spellname: Ranger's Heartseeker - Reflect result: deflect 1 tick
addSpell(358181) -- Sylvanas Windrunner - Spellname: Banshee's Blades - Reflect result: REFLECT magic portion
---Trash---
addSpell(355072) -- Mawsworn Darkcaster - Spellname: Pain Blast - Reflect result: 7.58 K
addSpell(355072) -- Mawsworn Darkcaster - Spellname: Pain Blast - Reflect result: 7.58 K
addSpell(356139) -- Mawsworn Lancer - Spellname: Empower Lance - Reflect result: REFLECT
addSpell(358226) -- Mawsworn Embermage - Spellname: Firebolt - Reflect result: 6.31 K
--- Tazavesh ---
addSpell(355930) -- Interrogation Specialist - Spellname: Spark Burn - Reflect result: REFLECT
addSpell(354297) -- Support Officer - Spellname: Hyperlight Bolt - Reflect result: REFLECT
addSpell(355225) -- Fishmancer - Spellname: Waterbolt - Reflect result: REFLECT
addSpell(352347) -- Vault Purifier - Spell Name: Valorous Bolt - Reflect result: REFLECT
--- Korthia ---
addSpell(355887) -- Mawsworn Gatekeeper/Mawsworn Interrogator -- Pain Spike
--- The Maw ---
addSpell(346243) -- Ghastly Willbreaker -- Shatter Resolve
addSpell(329383) -- Nascent Shade - Spellname: Suffering - Reflect result: 1.92 K
addSpell(304946) -- Mawsworn Skylurker - Spellname: Shadow Rip - Reflect result: REFLECT
addSpell(343104) -- Blazing Stygia - Spellname: Scorch - Reflect result: 1.68 K
addSpell(275983) -- Magmic Flamebinder - Spellname: Firebolt - Reflect result: 1.14 K
addSpell(346483) -- Inquisitor Devaki - Spellname: Painful Burst - Reflect result: REFLECT
addSpell(336763) -- Resonant Agony - Spellname: Touch of Anguish - Reflect result: REFLECT
addSpell(335680) -- Mawsworn Collector - Spellname: Pain Spike - Reflect result: REFLECT
addSpell(330958) -- Mawsworn Deathsinger - Spellname: Soulfrost Shard - Reflect result: 2.68 K
--- Torghast ---
addSpell(292926) -- Lord of Torment - Spellname: Eternal Torment - Reflect result: REFLECT
addSpell(305136) -- Empowered Coldheart Agent - Spellname: Shadow Spear - Reflect result: 8.06 K
--- Bastion ---
addSpell(342168) -- Dark Watcher - Spellname: Valiant Bolt - Reflect result: REFLECT
addSpell(341078) -- Dark Watcher - Spellname: Exoneration - Reflect result: REFLECT
--- Ardenweald ---
addSpell(322745) -- Runestag - Spellname: Dreaming Charge - Reflect result: REFLECT
addSpell(340678) -- Blighted Darkcaster - Spellname: Death Bolt - Reflect result: 2.34 K
addSpell(338955) -- Gorm Harrier - Spellname: Acidic Injection - Reflect result: REFLECT
addSpell(256865) -- Drust Shadowflayer - Spellname: Ruinous Bolt - Reflect result: 2.37 K
addSpell(325183) -- Drustcrazed Tender - Spellname: Bruising Strike - Reflect result: REFLECT
addSpell(320067) -- Drustcrazed Keeper - Spellname: Faerie Dust - Reflect result: REFLECT
addSpell(320081) -- Drustcrazed Keeper - Spellname: Whimsy Barb - Reflect result: REFLECT
addSpell(278919) -- Blighted Subduer - Spellname: Dark Claw - Reflect result: REFLECT
addSpell(323446) -- Silentwing Ardenmoth - Spellname: Anima Toxin - Reflect result: REFLECT
addSpell(322745) -- Highland Bull - Spellname: Dreaming Charge - Reflect result: REFLECT
addSpell(338921) -- Gorm Secretor - Spellname: Sticky Secretion - Reflect result: REFLECT
addSpell(322980) -- Evolving Mite - Spellname: Acidic Spit - Reflect result: REFLECT
addSpell(340848) -- Dustbrawl - Spellname: Sand Blast - Reflect result: REFLECT
addSpell(268792) -- Desiccated Duster - Spellname: Sand Blast - Reflect result: 3.35 K
addSpell(341084) -- Blighted Overseer - Spellname: Spirit Bolt - Reflect result: REFLECT
addSpell(340759) -- Blighted Overseer - Spellname: Manifest Dread - Reflect result: REFLECT
addSpell(324483) -- Possessed Guardian - Spellname: Anima-Charged Spear - Reflect result: REFLECT
--- Maldraxxus ---
addSpell(318243) -- Runespeaker Malcorn - Spellname: Necrotic Bolt - Reflect result: REFLECT
addSpell(315076) -- Runespeaker Jorg - Spellname: Spectral Bolt - Reflect result: 1.34 K
addSpell(318312) -- Runespeaker Malcorn - Spellname: Decaying Touch - Reflect result: REFLECT
addSpell(332650) -- Ritual Runeweaver - Spellname: Necrotic Bolt - Reflect result: 447
addSpell(330958) -- Master Runeshaper - Spellname: Soulfrost Shard - Reflect result: 1.55 K
addSpell(330926) -- Master Runeshaper - Spellname: Death Bolt - Reflect result: REFLECT
addSpell(288710) -- Fireforge Enchanter - Spellname: Fireball - Reflect result: REFLECT
addSpell(330569) -- Fatal Coalescence - Spellname: Deathbolt Rift - Reflect result: REFLECT
--- Revendreth ---
addSpell(333435) -- Tollkeeper Varaboss - Spellname: Exact Toll - Reflect result: REFLECT
addSpell(328414) -- Renegade Collector - Spellname: Soul Flay - Reflect result: REFLECT
addSpell(342947) -- Muckribbon - Spellname: Numbing Poison - Reflect result: REFLECT
addSpell(331906) -- Unstable Muck - Spellname: Fling Muck - Reflect result: REFLECT
addSpell(328411) -- Manor Leecher - Spellname: Dark Bolt - Reflect result: REFLECT
addSpell(315076) -- Maldraxxi Defector - Spellname: Spectral Bolt - Reflect result: 1.34 K
addSpell(318312) -- Maldraxxi Defector - Spellname: Decaying Touch - Reflect result: REFLECT
addSpell(333616) -- Devourer Mite - Spellname: Devour Essence - Reflect result: REFLECT 1 Tick
addSpell(326032) -- Manifestation of Gluttony - Spellname: Relentless Feeding - Reflect result: REFLECT
addSpell(325932) -- Manifestation of Pride - Spellname: Unmitigated Hubris - Reflect result: REFLECT
addSpell(337346) -- Vain Courtier - Spellname: Arcane Bolt - Reflect result: REFLECT
addSpell(335474) -- Manifestation of Fatigue - Spellname: Weary Soul - Reflect result: REFLECT
addSpell(328413) -- Ardent Loyalist - Spellname: Sorrowful Burden - Reflect result: REFLECT
addSpell(341962) -- Duke Vielle - Spellname: Forced Contrition - Reflect result: REFLECT
addSpell(318255) -- Ash Crawler - Spellname: Ashen Bolt - Reflect result: REFLECT
addSpell(331811) -- Lightbound Scorcher - Spellname: Holy Bolt - Reflect result: 1.67 K
addSpell(330409) -- Feral Ritualist - Spellname: Wild Blast - Reflect result: 1.43 K
addSpell(330604) -- Tower Creeper - Spellname: Grim Venom - Reflect result: REFLECT
addSpell(338011) -- Primordial Sludge - Spellname: Sludge Bolt - Reflect result: REFLECT
--- Castle Nathria ---
--- Huntsman Altimor ---
addSpell(334852) -- Petrifying Howl - Huntsman Altimor
addSpell(335114) -- Sinseeker - Huntsman Altimor
--- Sun King's Salvation ---
addSpell(328885) -- Greater Castigation - Sun King's Salvation
--- Lady Inerva Darkvein ---
addSpell(331573) -- Unconscionable Guilt - Lady Inerva Darkvein
addSpell(342321) -- Concentrated Anima - Lady Inerva Darkvein
addSpell(342320) -- Lightly Concentrated Anima - Lady Inerva Darkvein
--- The Council of Blood ---
addSpell(330968) -- Throw Food - The Council of Blood
addSpell(346800) -- Waltz of Blood - The Council of Blood
addSpell(346654) -- Drain Essence - The Council of Blood
addSpell(331634) -- Dark Recital - The Council of Blood
--- Sire Denathrius ---
addSpell(326005) -- Indignation - Sire Denathrius
addSpell(326994) -- Blood Price - Sire Denathrius
addSpell(326851) -- Blood Price - Sire Denathrius
--- De Other Side ---
addSpell(322736) -- Piercing Barb - Hakkar the Soulflayer
addSpell(323166) -- Corrupted Blood - Hakkar the Soulflayer
addSpell(320008) -- Frostbolt - The Manastorms
addSpell(320230) -- Explosive Contrivance - Dealer Xy'exa
addSpell(323687) -- Arcane Lightning - Dealer Xy'exa
addSpell(325258) -- Master of Death - Mueh'zala
addSpell(327646) -- Soulcrusher - Mueh'zala
-- Trash --
addSpell(332705) -- Smite
addSpell(332707) -- Shadow Word: Pain
addSpell(332605) -- Hex
addSpell(334076) -- Shadowcore
addSpell(332196) -- Discharge
addSpell(328707) -- Scribe
addSpell(333641) -- Reaver
addSpell(332234) -- Essential Oil
addSpell(333711) -- Decript Bite
addSpell(323544) -- Blood Nova
--- Halls of Atonement ---
addSpell(322977) -- Sinlight Visions - Halkias
addSpell(328322) -- Villainous Bolt - Ecehlon
addSpell(323538) -- Bolt of Power - High Adjucator Aleez
addSpell(328791) -- Ritual of Woe - Lord Chamberlain
-- Trash --
addSpell(338003) -- Wicked Bolt
addSpell(325700) -- Collect Sins
addSpell(326829) -- Wicked Bolt
--- Mists of Tirna Scithe ---
addSpell(323057) -- Spirit Bolt - Ingra Maloch
-- Trash --
addSpell(324923) -- Bramble Burst
addSpell(326319) -- Spirit Bolt
addSpell(322767) -- Drust Harvester - Spellname: Spirit Bolt - Reflect result: REFLECT
addSpell(322557) -- Soul Split
addSpell(331718) -- Spear Flurry
addSpell(325223) -- Anima Injection
addSpell(325418) -- Volatile Acid
addSpell(322487) -- Tirnenn Villager - Spellname: Overgrowth - Reflect result: REFLECT
--- Plaguefall ---
addSpell(324527) -- Plaguestomp - Globrog
addSpell(329110) -- Slime Injection - Doctor Ickus
-- Trash --
addSpell(328475) -- Enveloping Webbing
addSpell(327995) -- Doom Shroom
addSpell(327552) -- Doom Shroom
addSpell(328002) -- Hurl Spores
addSpell(328180) -- Gripping Infection
addSpell(328094) -- Pestilence Bolt
addSpell(334926) -- Wretched Phlegm
addSpell(320512) -- Corroded Claws
--- Sanguine Depths ---
addSpell(322554) -- Castigate - Executor Tarvold
-- Trash --
addSpell(326712) -- Dark Bolt
addSpell(321249) -- Shadow Claws
addSpell(326827) -- Dread Bindings
addSpell(326837) -- Gloom Burst
addSpell(326952) -- Fiery Cantrip
addSpell(322169) -- Growing Mistrust
addSpell(321038) -- Wrack Soul
--- Spires of Ascension ---
addSpell(324368) -- Attenuated Barrage - Kin-Tara
addSpell(324608) -- Charged Stomp - Oryphrion
addSpell(334053) -- Purifying Blast - Oryphrion
-- Trash --
addSpell(317661) -- Insidious Venom
addSpell(323804) -- Dark Seeker
--- Necrotic Wake ---
addSpell(320637) -- Fetid Gas - Blightbone
addSpell(328146) -- Fetid Gas - Blightbone
addSpell(328667) -- Frostbolt Volley - Amarth, the Harvester
addSpell(320788) -- Frozen Binds - Nalthor the Rimebinder
addSpell(322274) -- Enfeeble - Nalthor the Rimebinder
-- Trash --
addSpell(334748) -- Drain Fluids
addSpell(320462) -- Necrotic Bolt
addSpell(320170) -- Necrotic Bolt
addSpell(320171) -- Necrotic Bolt
addSpell(333479) -- Spew Disease
addSpell(323347) -- Clinging Darkness
--- Theater of Pain ---
addSpell(320120) -- Plague Bolt - An Affront of Challengers
addSpell(320300) -- Necromantic Bolt - An Affront of Challengers
addSpell(319669) -- Spectral Reach - Kul'tharok
addSpell(324079) -- Reaping Scythe - Mordretha, the Endless Empress
addSpell(324589) -- Death Bolt - Mordretha, the Endless Empress
addSpell(323608) -- Dark Devastation - Mordretha, the Endless Empress
-- Trash --
addSpell(330784) -- Necrotic Bolt
addSpell(330703) -- Decaying Filth
addSpell(333299) -- Curse of Desolation
addSpell(330875) -- Spirit Frost
addSpell(330810) -- Bind Soul
addSpell(332550) -- Soul Touch
-- Sepulcher of the First Ones)
--- Vigilant Guardian ---
addSpell(360162) -- Split Resolution
addSpell(361001) -- Wave of Disintegration
---- Skolex ---
addSpell(359778) -- Ephemera Dust
addSpell(359976) -- Riftmaw
--- Artificer Xy'Mox ---
addSpell(364030) -- Debilitating Ray
addSpell(365801) -- Relic Collapse
addSpell(362885) -- Stasis Trap
--- Dausegne ---
addSpell(363607) -- Domination Bolt
addSpell(361513) -- Obliteration Arc
addSpell(364289) -- Staggering Barrage
--- Prototype Pantheon ---
addSpell(362383) -- Anima Bolt
addSpell(360259) -- Gloom Bolt
addSpell(360618) -- Necrosis
addSpell(364839) -- Sinful Projection
addSpell(361579) -- Withering Nova
-- Lihuvim --
addSpell(364073) -- Degenerate
-- Lords of Dread --
addSpell(360006) -- Cloud of Carrion
-- Do not touch anything below this line. --
local header = "======== |T132361:20|t Spell Reflection Tracker |T132361:20|t ========"
aura_env.nameplateWarning = function()
if C_CVar.GetCVar("nameplateShowEnemies") ~= "1" then
print(header)
print("\124cFFFF0000Enemy Nameplates are NOT enabled.\124r")
print("\124cFFFF0000This WeakAura will not function without Enemy Nameplates enabled.\124r")
print("This warning can be disabled in Custom Options.")
print(header)
end
end
if aura_env.config.nameplateWarning then
aura_env.nameplateWarning()
end
aura_env.nameplateWarningSent = false
aura_env.castTable = {}
aura_env.sortCount = 1
aura_env.spairs = function(t)
local keys = {}
for k in pairs(t) do keys[#keys+1] = k end
table.sort(keys, function(a,b)
return (t[a].endTime == t[b].endTime and t[a].sortCount < t[b].sortCount) or t[a].endTime < t[b].endTime
end)
local i = 0
return function()
i = i + 1
if keys[i] then
return keys[i], t[keys[i]]
end
end
end
aura_env.getBuffInfo = function(spellID)
local _, _, _, _, buffDuration, buffExpirationTime, _, _, _, buffSpellID = WA_GetUnitBuff("player", spellID)
-- build info table
local infoTable = {
isUp = buffSpellID == spellID,
duration = not buffDuration and 0 or buffDuration,
expirationTime = not buffExpirationTime and 0 or buffExpirationTime
}
return infoTable
end
aura_env.firstClone = {}
aura_env.spellReflection = aura_env.getBuffInfo(23920)
aura_env.shouldRun = false
local goingToReflect = nil
aura_env.colorReflectedSpell = function()
if aura_env.config.colorReflectedSpell and aura_env.spellReflection.isUp
and aura_env.spellReflection.expirationTime > aura_env.firstClone.endTime and aura_env.shouldRun then
local region = WeakAuras.GetRegion(aura_env.id, aura_env.firstClone.key)
region.bar.fg:SetVertexColor(aura_env.config.reflectedSpellBarColor[1],aura_env.config.reflectedSpellBarColor[2],
aura_env.config.reflectedSpellBarColor[3],aura_env.config.reflectedSpellBarColor[4])
goingToReflect = aura_env.firstClone.key
end
end
local LCG = LibStub("LibCustomGlow-1.0")
local previousHighlightCast = nil
aura_env.highlight = function()
local region = WeakAuras.GetRegion(aura_env.id, aura_env.highlightCast)
if previousHighlightCast ~= aura_env.highlightCast then
if previousHighlightCast then
local previousRegion = WeakAuras.GetRegion(aura_env.id, previousHighlightCast)
LCG.PixelGlow_Stop(previousRegion.bar)
end
LCG.PixelGlow_Start(region.bar,{1,1,0,1},4,0.25,nil,1,nil,nil,false)
previousHighlightCast = aura_env.highlightCast
end
if goingToReflect then
local gtrRegion = WeakAuras.GetRegion(aura_env.id, goingToReflect)
LCG.PixelGlow_Stop(gtrRegion.bar)
end
goingToReflect = false
end
aura_env.strStartsWith = function(str, start)
return string.sub(str,1,string.len(start)) == start
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment