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.

95 lines
2.3 KiB

local mod = DBM:NewMod(599, "DBM-Party-WotLK", 6, 275)
local L = mod:GetLocalizedStrings()
if not mod:IsClassic() then
mod.statTypes = "normal,heroic,timewalker"
end
mod:SetRevision("20240428124541")
mod:SetCreatureID(28546)
mod:SetEncounterID(1984)
mod:SetUsedIcons(8)
mod:RegisterCombat("combat")
mod:RegisterEventsInCombat(
"SPELL_AURA_APPLIED 52658 59795",
"SPELL_AURA_REMOVED 52658 59795",
"SPELL_CAST_START 52770"
)
local warningDisperseSoon = mod:NewSoonAnnounce(52770, 2)
local warningDisperse = mod:NewSpellAnnounce(52770, 3)
local warningOverload = mod:NewTargetAnnounce(52658, 2)
local specWarnOverload = mod:NewSpecialWarningMoveAway(52658, nil, nil, nil, 1, 2)
local timerOverload = mod:NewTargetTimer(10, 52658, nil, nil, nil, 3)
mod:AddRangeFrameOption(10, 52658)
mod:AddSetIconOption("SetIconOnOverloadTarget", 52658, true, 0, {8})
local warnedDisperse = false
function mod:OnCombatStart()
warnedDisperse = false
if self:IsClassic() then
self:RegisterShortTermEvents(
"UNIT_HEALTH"
)
else
self:RegisterShortTermEvents(
"UNIT_HEALTH boss1"
)
end
end
function mod:OnCombatEnd()
self:UnregisterShortTermEvents()
if self.Options.RangeFrame then
DBM.RangeCheck:Hide()
end
end
function mod:SPELL_AURA_APPLIED(args)
if args:IsSpellID(52658, 59795) then
if args:IsPlayer() then
specWarnOverload:Show()
specWarnOverload:Play("runout")
if self.Options.RangeFrame then
DBM.RangeCheck:Show(10)
end
else
warningOverload:Show(args.destName)
end
timerOverload:Start(args.destName)
if self.Options.SetIconOnOverloadTarget then
self:SetIcon(args.destName, 8)
end
end
end
function mod:SPELL_AURA_REMOVED(args)
if args:IsSpellID(52658, 59795) then
if args:IsPlayer() and self.Options.RangeFrame then
DBM.RangeCheck:Hide()
end
if self.Options.SetIconOnOverloadTarget then
self:SetIcon(args.destName, 0)
end
end
end
function mod:SPELL_CAST_START(args)
if args.spellId == 52770 then
warningDisperse:Show()
end
end
function mod:UNIT_HEALTH(uId)
if not warnedDisperse and self:GetUnitCreatureId(uId) == 28546 and UnitHealth(uId) / UnitHealthMax(uId) <= 0.54 then
warnedDisperse = true
warningDisperseSoon:Show()
self:UnregisterShortTermEvents()
end
end