Bastion aims to serve as a highly performant, simplisitic, and expandable World of Warcraft data visualization framework.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Bastion/src/MythicPlusUtils/MythicPlusUtils.lua

171 lines
5.4 KiB

local Tinkr, Bastion = ...
local MythicPlusUtils = {
debuffLogging = false,
random = ''
}
MythicPlusUtils.__index = MythicPlusUtils
function MythicPlusUtils:New()
local self = setmetatable({}, MythicPlusUtils)
self.random = math.random(1000000, 9999999)
self.kickList = {
-- Algeth'ar Academy
[388392] = true, -- Monotonous Lecture
[396812] = true, -- Mystic Blast
[377389] = true, -- Call of the Flock
[396640] = true, -- Healing Touch
[387843] = true, -- Astral Bomb
[387955] = true, -- Celestial Shield
[387910] = true, -- Astral Whirlwind
-- Azure Vault
-- [375602] = true, -- Erratic Growth
[387564] = true, -- Mystic Vapors
-- [386546] = true, -- Waking Bane
[389804] = true, -- Heavy Tome
[377488] = true, -- Icy Bindings
-- Brackenhide
[382249] = true, -- Earth Bolt
[367500] = true, -- Hideous Cackle
[377950] = true, -- Greater Healing Rapids
[385029] = true, -- Screech
[373804] = true, -- Touch of Decay
[381770] = true, -- Gushing Ooze
[374544] = true, -- Burst of Decay
-- Halls of Infusion
[374066] = true, -- Earth Shield
[374339] = true, -- Demoralizing Shout
[374045] = true, -- Expulse
[374080] = true, -- Blasting Gust
[389443] = true, -- Purifying Blast
[395694] = true, -- Elemental Focus
[374563] = true, -- Dazzle
[385141] = true, -- Thunderstorm
[374706] = true, -- Pyretic Burst
[375384] = true, -- Rumbling Earth
[375950] = true, -- Ice Shards
[377348] = true, -- Tidal Divergence
[377402] = true, -- Aqueous Barrier
[387618] = true, -- Infuse
-- Neltharus
[378282] = true, -- Molten Core
[372615] = true, -- Ember Reach
[395427] = true, -- Burning Roar
[372538] = true, -- Melt
[384161] = true, -- Mote of Combustion
[382795] = true, -- Molten Barrier
-- Nokhud
[384365] = true, -- Disruptive Shout
[386024] = true, -- Tempest
[387411] = true, -- Death Bolt Volley
[387606] = true, -- Dominate
[376725] = true, -- Storm Bolt
[384808] = true, -- Guardian Wind
[383823] = true, -- Rally the Clan (CC to interrupt)
[387135] = true, -- Arcing Strike (CC to interrupt)
[373395] = true, -- Bloodcurdling Shout
-- Ruby Life Pools
[373017] = true, -- Roaring Blaze
[392398] = true, -- Crackling Detonation
[392451] = true, -- Flashfire
[385310] = true, -- Lightning Bolt
[375602] = true, -- Erratic Growth
-- [386546] = true, -- Waking Bane
-- [387564] = true, -- Mystic Vapors
[373932] = true, -- Illusionary Bolt
[386546] = true, -- Waking Bane
-- Uldaman
[369675] = true, -- Chain Lightning
[369674] = true, -- Stone Spike
[369823] = true, -- Spiked Carapace
[369603] = true, -- Defensive Bulwark
[369399] = true, -- Stone Bolt
[369400] = true, -- Earthen Ward
-- Court of Stars
[211401] = true, -- Drifting Embers
[211464] = true, -- Fel Detonation
[207980] = true, -- Disintegration Beam
[208165] = true, -- Withering Soul
[207881] = true, -- Infernal Eruption
-- Halls of Valor
[198595] = true, -- Thunderous Bolt
[198959] = true, -- Etch
[192288] = true, -- Searing Light
[199726] = true, -- Unruly Yell
[198750] = true, -- Surge
-- Shadowmoon Burial Grounds
[152818] = true, -- Shadow Mend
[153153] = true, -- Dark Communion (CC to interrupt)
[156776] = true, -- Rending Voidlash
[156722] = true, -- Void Bolt
[398206] = true, -- Death Blast
[156718] = true, -- Necrotic Burst
[153524] = true, -- Plague Spit
-- Temple of the Jade Serpent
[397888] = true, -- Hydrolance
[114646] = true, -- Haunting Gaze
[395859] = true, -- Haunting Scream
[396073] = true, -- Cat Nap
[397914] = true, -- Defiling Mist
[315584] = true
}
Bastion.EventManager:RegisterWoWEvent('UNIT_AURA', function(unit, auras)
2 years ago
if not self.debuffLogging then
return
end
if auras.addedAuras then
local addedAuras = auras.addedAuras
if #addedAuras > 0 then
for i = 1, #addedAuras do
local aura = Bastion.Aura:CreateFromUnitAuraInfo(addedAuras[i])
if not aura:IsBuff() then
WriteFile('bastion-MPlusDebuffs-' .. self.random .. '.lua', [[
AuraName: ]] .. aura:GetName() .. [[
AuraID: ]] .. aura:GetSpell():GetID() .. "\n" .. [[
]] , true)
end
end
end
end
end)
return self
end
function MythicPlusUtils:ToggleDebuffLogging()
self.debuffLogging = not self.debuffLogging
end
function MythicPlusUtils:CastingCriticalKick(unit, percent)
local castingSpell = unit:GetCastingOrChannelingSpell()
if castingSpell then
local spellID = castingSpell:GetID()
if self.kickList[spellID] and unit:IsInterruptibleAt(percent) then
return true
end
end
return false
end
2 years ago
return MythicPlusUtils