82a9ac0937
* 5.20 * Update to 5.21 --------- Co-authored-by: Szyler <Szyler@Szyler.com>
159 lines
5.2 KiB
Lua
159 lines
5.2 KiB
Lua
local mod = DBM:NewMod("Kalecgos", "DBM-Sunwell")
|
|
local L = mod:GetLocalizedStrings()
|
|
|
|
mod:SetRevision(("$Revision: 5021 $"):sub(12, -3))
|
|
mod:SetCreatureID(24850)
|
|
|
|
mod:RegisterCombat("combat")
|
|
|
|
mod:RegisterEvents(
|
|
"SPELL_CAST_START",
|
|
"SPELL_CAST_SUCCESS",
|
|
"SPELL_AURA_APPLIED",
|
|
"SPELL_AURA_APPLIED_DOSE",
|
|
"UNIT_DIED"
|
|
)
|
|
|
|
local warnPortal = mod:NewAnnounce("WarnPortal", 4, 46021)
|
|
|
|
local specWarnBuffet = mod:NewSpecialWarningStack(2145512, nil, 10) -- 2145512, 2145513 SPELL_AURA_APPLIED
|
|
local timerNextBuffet = mod:NewNextTimer(8, 2145512) -- 2145512, 2145513 SPELL_AURA_APPLIED
|
|
|
|
local timerBreathCast = mod:NewCastTimer(2, 2145511) -- 2145509, 2145510, 2145511 SPELL_CAST_START
|
|
local timerNextBreath = mod:NewNextTimer(20, 2145511) -- 2145509, 2145510, 2145511 SPELL_CAST_START
|
|
|
|
local timerSpectralBlast = mod:NewCastTimer(4, 2145504) -- 2145503, 2145504 SPELL_CAST_START
|
|
local timerNextSpectralBlast = mod:NewNextTimer(25, 2145504) -- 2145503, 2145504 SPELL_CAST_START
|
|
local timerTargetSpectralBlast = mod:NewTargetTimer(4, 2145504) -- 2145503, 2145504 SPELL_CAST_START
|
|
local warnSpectralBlastYOU = mod:NewSpecialWarningYou(2145504, 4) -- 2145503, 2145504 SPELL_CAST_START
|
|
|
|
local timerNextTailSweep = mod:NewNextTimer(30, 2145506) -- 2145506 Spell_cast_success
|
|
|
|
local warnDescentIntoMadness = mod:NewSpecialWarningStack(2145501, nil, 5) -- 22145501 SPELL_AURA_APPLIED
|
|
|
|
local warnCastMindWipe = mod:NewSpellAnnounce(2145524, 2) -- 2145524 SPELL_CAST_START
|
|
local warnStackMindWipe = mod:NewSpecialWarningStack(2145524, nil, 4) -- 2145524 SPELL_CAST_START
|
|
local timerCastMindWipe = mod:NewCastTimer(2, 2145524) -- 2145524 SPELL_CAST_START
|
|
local timerNextMindWipe = mod:NewNextTimer(25, 2145524) -- 2145524 SPELL_CAST_START
|
|
|
|
local warnCorruptorsTouch = mod:NewSpellAnnounce(2145523, 2) -- 2145523 SPELL_AURA_APPLIED
|
|
local timerNextCorruptorsTouch = mod:NewNextTimer(20, 2145523) -- 2145523 SPELL_AURA_APPLIED
|
|
|
|
local berserkTimer = mod:NewBerserkTimer(600)
|
|
|
|
mod:AddBoolOption("HealthFrame", true)
|
|
mod:AddBoolOption("RangeFrame", true)
|
|
mod:AddBoolOption("ShowFrame", true)
|
|
-- mod:AddBoolOption("FrameLocked", false)
|
|
-- mod:AddBoolOption("FrameClassColor", true, nil, function()
|
|
-- mod:UpdateColors()
|
|
-- end)
|
|
-- mod:AddBoolOption("FrameUpwards", false, nil, function()
|
|
-- mod:ChangeFrameOrientation()
|
|
-- end)
|
|
-- mod:AddEditboxOption("FramePoint", "CENTER")
|
|
-- mod:AddEditboxOption("FrameX", 150)
|
|
-- mod:AddEditboxOption("FrameY", -50)
|
|
|
|
local portCount = 1
|
|
|
|
function mod:TargetSpectralBlast()
|
|
local target = nil
|
|
target = mod:GetBossTarget(24850)
|
|
if target == UnitName("player") then
|
|
warnSpectralBlastYOU:Show()
|
|
end
|
|
timerTargetSpectralBlast:Start(target)
|
|
end
|
|
|
|
function mod:OnCombatStart(delay)
|
|
portCount = 1
|
|
|
|
timerNextSpectralBlast:Start(8-delay)
|
|
timerNextBuffet:Start(10-delay)
|
|
timerNextBreath:Start(15-delay)
|
|
timerNextTailSweep:Start(21-delay)
|
|
berserkTimer:Start(-delay)
|
|
|
|
-- if self.Options.ShowFrame then
|
|
-- self:CreateFrame()
|
|
-- end
|
|
if self.Options.RangeFrame then
|
|
DBM.RangeCheck:Show()
|
|
end
|
|
if self.Options.HealthFrame then
|
|
DBM.BossHealth:Clear()
|
|
DBM.BossHealth:AddBoss(24850, L.name)
|
|
DBM.BossHealth:AddBoss(24892, L.Demon)
|
|
end
|
|
end
|
|
|
|
function mod:OnCombatEnd()
|
|
-- self:DestroyFrame()
|
|
DBM.RangeCheck:Hide()
|
|
end
|
|
|
|
function mod:SPELL_AURA_APPLIED(args)
|
|
if args:IsSpellID(2145512, 2145513) and args.amount and args.amount >= 3 then
|
|
if args.destName == UnitName("Player") then
|
|
specWarnBuffet:Show(args.amount or 1)
|
|
end
|
|
timerNextBuffet:Start()
|
|
elseif args:IsSpellID(2145501, 2145502) and args.amount and args.amount >= 10 and args.amount % 5 == 0 then
|
|
warnDescentIntoMadness:Show(args.amount or 1)
|
|
elseif args:IsSpellID(2145524) then
|
|
if args.destName == UnitName("Player") then
|
|
warnStackMindWipe:Show(args.amount or 1)
|
|
end
|
|
warnStackMindWipe:Show(args.destName)
|
|
elseif args:IsSpellID(2145523) then
|
|
warnCorruptorsTouch:Show()
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_CAST_START(args)
|
|
if args:IsSpellID(2145509, 2145510, 2145511) then
|
|
timerBreathCast:Start()
|
|
timerNextBreath:Start()
|
|
elseif args:IsSpellID(2145503, 2145504) then
|
|
timerSpectralBlast:Start()
|
|
timerNextSpectralBlast:Start()
|
|
self:ScheduleMethod(0.2, "TargetSpectralBlast")
|
|
elseif args:IsSpellID(2145524) then
|
|
warnCastMindWipe:Show()
|
|
timerCastMindWipe:Start()
|
|
timerNextMindWipe:Start()
|
|
elseif args:IsSpellID(2145523) then
|
|
timerNextCorruptorsTouch:Start()
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_CAST_SUCCESS(args)
|
|
if args:IsSpellID(2145506) then
|
|
timerNextTailSweep:Start()
|
|
end
|
|
end
|
|
|
|
mod.SPELL_AURA_APPLIED_DOSE = mod.SPELL_AURA_APPLIED
|
|
|
|
|
|
function mod:UNIT_DIED(args)
|
|
if self:GetCIDFromGUID(args.destGUID) == 24892 then
|
|
DBM:EndCombat(self)
|
|
end
|
|
-- if bit.band(args.destFlags, COMBATLOG_OBJECT_TYPE_PLAYER) ~= 0 then
|
|
-- local grp
|
|
-- if GetNumRaidMembers() > 0 then
|
|
-- for i = 1, GetNumRaidMembers() do
|
|
-- local name, _, subgroup = GetRaidRosterInfo(i)
|
|
-- if name == args.destName then
|
|
-- grp = subgroup
|
|
-- break
|
|
-- end
|
|
-- end
|
|
-- else
|
|
-- grp = 0
|
|
-- end
|
|
-- self:RemoveEntry(("%s (%d)"):format(args.destName, grp or 0))
|
|
-- end
|
|
end |