local mod = DBM : NewMod ( 610 , " DBM-Party-WotLK " , 15 , 278 )
local L = mod : GetLocalizedStrings ( )
if not mod : IsClassic ( ) then
mod.statTypes = " normal,heroic,timewalker "
end
mod : SetRevision ( " 20230311193122 " )
mod : SetCreatureID ( 36658 , 36661 )
mod : SetEncounterID ( 2000 )
mod : DisableESCombatDetection ( )
mod : SetUsedIcons ( 8 )
mod : SetHotfixNoticeRev ( 20220119000000 )
mod : SetMinSyncRevision ( 20220119000000 )
mod : RegisterCombat ( " combat " )
mod : RegisterEvents (
" CHAT_MSG_MONSTER_YELL "
)
mod : RegisterEventsInCombat (
" SPELL_CAST_START 69167 " ,
" SPELL_CAST_SUCCESS 69155 " ,
" SPELL_AURA_APPLIED 69172 " ,
" SPELL_AURA_REMOVED 69172 " ,
" SPELL_PERIODIC_DAMAGE 69238 " ,
" SPELL_PERIODIC_MISSED 69238 " ,
" CHAT_MSG_RAID_BOSS_EMOTE " ,
" UNIT_DIED "
)
local warnForcefulSmash = mod : NewSpellAnnounce ( 69155 , 2 , nil , " Tank " )
local warnOverlordsBrand = mod : NewTargetAnnounce ( 69172 , 4 )
local warnHoarfrost = mod : NewTargetAnnounce ( 69246 , 2 )
local specWarnHoarfrost = mod : NewSpecialWarningMoveAway ( 69246 , nil , nil , nil , 1 , 2 )
local yellHoarfrost = mod : NewYell ( 69246 )
local specWarnHoarfrostNear = mod : NewSpecialWarningClose ( 69246 , nil , nil , nil , 1 , 2 )
local specWarnIcyBlast = mod : NewSpecialWarningMove ( 69238 , nil , nil , nil , 1 , 2 )
local specWarnOverlordsBrand = mod : NewSpecialWarningReflect ( 69172 , nil , nil , nil , 3 , 2 )
local specWarnUnholyPower = mod : NewSpecialWarningSpell ( 69167 , " Tank " , nil , nil , 1 , 2 ) --Spell for now. may change to run away if damage is too high for defensive
local timerCombatStart = mod : NewCombatTimer ( 31 )
local timerOverlordsBrandCD = mod : NewCDTimer ( 12 , 69172 , nil , nil , nil , 3 , nil , DBM_COMMON_L.DEADLY_ICON )
local timerOverlordsBrand = mod : NewTargetTimer ( 8 , 69172 , nil , nil , nil , 5 )
local timerUnholyPower = mod : NewBuffActiveTimer ( 10 , 69167 , nil , " Tank|Healer " , 2 , 5 )
local timerHoarfrostCD = mod : NewCDTimer ( 25.5 , 69246 , nil , nil , nil , 3 )
local timerForcefulSmash = mod : NewCDTimer ( 40 , 69155 , nil , " Tank " , 2 , 5 , nil , DBM_COMMON_L.TANK_ICON ) --Highly Variable. 40-50
mod : AddSetIconOption ( " SetIconOnHoarfrostTarget " , 69246 , true , false , { 8 } )
mod : AddRangeFrameOption ( 8 , 69246 )
function mod : OnCombatStart ( delay )
timerForcefulSmash : Start ( 9 - delay ) --Sems like a WTF
timerOverlordsBrandCD : Start ( - delay )
timerHoarfrostCD : Start ( 31.5 - delay ) --Verify
end
function mod : OnCombatEnd ( )
if self.Options . RangeFrame then
DBM.RangeCheck : Hide ( )
end
end
function mod : SPELL_CAST_START ( args )
if args.spellId == 69167 then -- Unholy Power
specWarnUnholyPower : Show ( )
specWarnUnholyPower : Play ( " justrun " )
timerUnholyPower : Start ( )
end
end
function mod : SPELL_CAST_SUCCESS ( args )
if args.spellId == 69155 then -- Forceful Smash
warnForcefulSmash : Show ( )
timerForcefulSmash : Start ( )
end
end
function mod : SPELL_AURA_APPLIED ( args )
if args.spellId == 69172 then -- Overlord's Brand
timerOverlordsBrandCD : Start ( )
timerOverlordsBrand : Start ( args.destName )
if args : IsPlayer ( ) then
specWarnOverlordsBrand : Show ( args.sourceName )
specWarnOverlordsBrand : Play ( " stopattack " )
else
warnOverlordsBrand : Show ( args.destName )
end
end
end
function mod : SPELL_AURA_REMOVED ( args )
if args.spellId == 69172 then -- Overlord's Brand
timerOverlordsBrand : Stop ( args.destName )
end
end
function mod : SPELL_PERIODIC_DAMAGE ( _ , _ , _ , _ , destGUID , _ , _ , _ , spellId )
if spellId == 69238 and destGUID == UnitGUID ( " player " ) and self : AntiSpam ( ) then -- Icy Blast, MOVE!
specWarnIcyBlast : Show ( )
specWarnIcyBlast : Play ( " runaway " )
end
end
mod.SPELL_PERIODIC_MISSED = mod.SPELL_PERIODIC_DAMAGE
function mod : UNIT_DIED ( args )
if self : GetCIDFromGUID ( args.destGUID ) == 36658 then
DBM : EndCombat ( self )
end
end
function mod : CHAT_MSG_RAID_BOSS_EMOTE ( msg , _ , _ , _ , target )
if msg == L.HoarfrostTarget or msg : find ( L.HoarfrostTarget ) then --Probably don't need this, verify
if not target then return end
timerHoarfrostCD : Start ( )
target = DBM : GetUnitFullName ( target )
if target == UnitName ( " player " ) then
specWarnHoarfrost : Show ( )
specWarnHoarfrost : Play ( " targetyou " )
yellHoarfrost : Yell ( )
if self.Options . RangeFrame then
DBM.RangeCheck : Show ( 8 , nil , nil , nil , nil , 5 )
end
elseif self : CheckNearby ( 8 , target ) then
specWarnHoarfrostNear : Show ( target )
specWarnHoarfrostNear : Play ( " watchstep " )
else
warnHoarfrost : Show ( target )
end
if self.Options . SetIconOnHoarfrostTarget then
self : SetIcon ( target , 8 , 5 )
end
end
end
function mod : CHAT_MSG_MONSTER_YELL ( msg )
if ( msg == L.CombatStart or msg == L.CombatStart ) then
timerCombatStart : Start ( )
end
end