dc8afd6584
Co-authored-by: Szyler <Szyler@Szyler.com>
104 lines
3.0 KiB
Lua
104 lines
3.0 KiB
Lua
local mod = DBM:NewMod("LurkerBelow", "DBM-Serpentshrine")
|
|
local L = mod:GetLocalizedStrings()
|
|
|
|
mod:SetRevision(("$Revision: 183 $"):sub(12, -3))
|
|
mod:SetCreatureID(21217)
|
|
mod:RegisterCombat("combat", 21217)
|
|
|
|
mod:RegisterEvents(
|
|
"CHAT_MSG_RAID_BOSS_EMOTE",
|
|
"SPELL_AURA_APPLIED",
|
|
"SPELL_CAST_START",
|
|
"SPELL_DAMAGE",
|
|
"SPELL_MISSED"
|
|
)
|
|
|
|
local warnSubmerge = mod:NewAnnounce("WarnSubmerge", 2, "Interface\\AddOns\\DBM-Core\\textures\\CryptFiendBurrow.blp")
|
|
local warnEmerge = mod:NewAnnounce("WarnEmerge", 1, "Interface\\AddOns\\DBM-Core\\textures\\CryptFiendUnBurrow.blp")
|
|
local warnWhirl = mod:NewSpellAnnounce(2137605, 2)
|
|
local warnFocusedFire = mod:NewTargetAnnounce(2137622, 2)
|
|
|
|
local warnFocusedYou = mod:NewSpecialWarningYou(2137622)
|
|
local specWarnSpout = mod:NewSpecialWarningSpell(2137607)
|
|
|
|
local timerSubmerge = mod:NewTimer(135, "TimerSubmerge", "Interface\\AddOns\\DBM-Core\\textures\\CryptFiendBurrow.blp")
|
|
local timerEmerge = mod:NewTimer(60, "TimerEmerge", "Interface\\AddOns\\DBM-Core\\textures\\CryptFiendUnBurrow.blp")
|
|
local timerNextSpout = mod:NewNextTimer(70, 2137607)
|
|
local timerSpout = mod:NewBuffActiveTimer(22, 2137607)
|
|
local timerNextWhirl = mod:NewNextTimer(20, 2137605) --Whirl has 20s next timer, but pushed back by other casts. Need "GetTimer" to push it back (see maiden/mag)
|
|
local timerGeyser = mod:NewNextTimer(20, 2137611)
|
|
|
|
--Ascended mechanics:
|
|
local timerTentacle = mod:NewNextTimer(10, 26391)
|
|
local warnSmash = mod:NewSpecialWarningSpell(2137626)
|
|
|
|
function mod:OnCombatStart(delay)
|
|
submerged = false
|
|
timerNextWhirl:Start(6-delay)
|
|
timerNextSpout:Start(32-delay)
|
|
timerSubmerge:Start(60-delay)
|
|
timerGeyser:Start(10)
|
|
end
|
|
|
|
function mod:SPELL_AURA_APPLIED(args)
|
|
-- if args:IsSpellID(7731) then
|
|
-- DBM:AddMsg("Fishing applied - Pull inc")
|
|
-- else
|
|
if args:IsSpellID(2137622) then
|
|
if args:IsPlayer() then
|
|
warnFocusedYou:Show()
|
|
else
|
|
warnFocusedFire:Show(args.destName)
|
|
end
|
|
end
|
|
end
|
|
|
|
function mod:CHAT_MSG_RAID_BOSS_EMOTE(msg, src)
|
|
if src == L.name and not self:IsInCombat() then
|
|
DBM:StartCombat(self, 0)
|
|
elseif msg:find(L.EmoteEmerge) then
|
|
timerEmerge:Stop()
|
|
timerSubmerge:Start()
|
|
timerNextSpout:Start(8)
|
|
timerNextWhirl:Start(6)
|
|
timerGeyser:Start(30)
|
|
elseif msg:find(L.EmoteSubmerge) then
|
|
timerEmerge:Start()
|
|
timerTentacle:Start()
|
|
timerSubmerge:Stop()
|
|
timerNextSpout:Stop()
|
|
timerGeyser:Stop()
|
|
timerNextWhirl:Stop()
|
|
elseif msg:find(L.EmoteBreath) then
|
|
timerNextWhirl:Start(25)
|
|
specWarnSpout:Show()
|
|
timerSpout:Start()
|
|
timerNextSpout:Start()
|
|
if timerGeyser:GetTime() < 25 then
|
|
timerGeyser:Stop()
|
|
end
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_CAST_START(args)
|
|
if args:IsSpellID(2137626) then
|
|
warnSmash:Show()
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_DAMAGE(args)
|
|
if args:IsSpellID(2137611, 2137612, 2137613, 2137614) then
|
|
timerGeyser:Start()
|
|
elseif args:IsSpellID(2137605) then
|
|
timerNextWhirl:Start()
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_MISSED(args)
|
|
if args:IsSpellID(2137611, 2137612, 2137613, 2137614) then
|
|
timerGeyser:Start()
|
|
elseif args:IsSpellID(2137605) then
|
|
timerNextWhirl:Start()
|
|
end
|
|
end
|