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
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
|
|
|