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.
151 lines
4.9 KiB
151 lines
4.9 KiB
local mod = DBM:NewMod(2431, "DBM-Shadowlands", nil, 1192)
|
|
local L = mod:GetLocalizedStrings()
|
|
|
|
mod:SetRevision("20220823223643")
|
|
mod:SetCreatureID(167525)
|
|
mod:SetEncounterID(2410)
|
|
mod:SetReCombatTime(20)
|
|
mod:EnableWBEngageSync()--Enable syncing engage in outdoors
|
|
--mod:SetMinSyncRevision(11969)
|
|
mod:SetUsedIcons(1)
|
|
|
|
mod:RegisterCombat("combat")
|
|
|
|
mod:RegisterEventsInCombat(
|
|
"SPELL_CAST_START 338848 338846 338847",
|
|
"SPELL_CAST_SUCCESS 338851 338849",
|
|
"SPELL_AURA_APPLIED 338850 338847 338851",
|
|
"SPELL_AURA_REMOVED 338851"
|
|
)
|
|
|
|
--TODO, see if Screaming Skull can be target scanned to warn meteor target even faster
|
|
--TODO, anything else?
|
|
local warnFrenzy = mod:NewTargetNoFilterAnnounce(338847, 3, nil, "Tank|Healer|RemoveEnrage")
|
|
local warnScreamingSkull = mod:NewTargetNoFilterAnnounce(338851, 2)
|
|
local warnBoneCleave = mod:NewSpellAnnounce(338846, 3, nil, "Tank|Healer")
|
|
|
|
--local specWarnSpineClaw = mod:NewSpecialWarningDodge(338848, nil, nil, nil, 1, 2)
|
|
local specWarnFrenzy = mod:NewSpecialWarningDispel(338847, "RemoveEnrage", nil, nil, 1, 2)
|
|
local specWarnScreamingSkull = mod:NewSpecialWarningMoveTo(338851, nil, nil, 2, 1, 2)
|
|
local specWarnUnrulyremains = mod:NewSpecialWarningDodge(338849, nil, nil, nil, 2, 2)
|
|
|
|
local timerSpineCrawlCD = mod:NewCDTimer(20.3, 338848, nil, nil, nil, 3)
|
|
local timerFrenzyCD = mod:NewCDTimer(33.2, 338847, nil, nil, nil, 5, nil, DBM_COMMON_L.ENRAGE_ICON)
|
|
local timerScreamingSkullCD = mod:NewCDTimer(26.7, 338851, nil, nil, nil, 3, nil, DBM_COMMON_L.DEADLY_ICON)
|
|
local timerBoneCleaveCD = mod:NewCDTimer(12.3, 338846, nil, "Tank", nil, 5, nil, DBM_COMMON_L.TANK_ICON)
|
|
local timerUnrulyRemainsCD = mod:NewCDTimer(15.6, 338849, nil, nil, nil, 3)--15.6-20
|
|
|
|
mod:AddSetIconOption("SetIconOnSkull", 338851, true, false, {1})
|
|
|
|
--Ugly, but only accurate way to do it
|
|
local function checkBuff(self)
|
|
if IsInRaid() then
|
|
for i = 1, GetNumGroupMembers() do
|
|
local UnitID = "raid"..i.."target"
|
|
local guid = UnitGUID(UnitID)
|
|
if guid then
|
|
local cid = self:GetCIDFromGUID(guid)
|
|
if cid == 167525 then
|
|
if DBM:UnitBuff(338850) then
|
|
return true
|
|
end
|
|
end
|
|
end
|
|
end
|
|
elseif IsInGroup() then
|
|
for i = 1, GetNumSubgroupMembers() do
|
|
local UnitID = "party"..i.."target"
|
|
local guid = UnitGUID(UnitID)
|
|
if guid then
|
|
local cid = self:GetCIDFromGUID(guid)
|
|
if cid == 167525 then
|
|
if DBM:UnitBuff(338850) then
|
|
return true
|
|
end
|
|
end
|
|
end
|
|
end
|
|
else
|
|
local guid = UnitGUID("target")
|
|
if guid then
|
|
local cid = self:GetCIDFromGUID(guid)
|
|
if cid == 167525 then
|
|
if DBM:UnitBuff(338850) then
|
|
return true
|
|
end
|
|
end
|
|
end
|
|
end
|
|
return false
|
|
end
|
|
|
|
function mod:OnCombatStart(delay, yellTriggered)
|
|
if yellTriggered then
|
|
--timerSpineCrawlCD:Start(1)
|
|
--timerFrenzyCD:Start(8)--SUCCESS
|
|
--timerScreamingSkullCD:Start(1)--SUCCESS
|
|
--timerBoneCleaveCD:Start(1)
|
|
--timerUnrulyRemainsCD:Start(1)
|
|
end
|
|
end
|
|
--"<18.46 11:59:08> [CLEU] SPELL_CAST_SUCCESS#Creature-0-4220-2222-501-167525-0000749A40#Mortanis##nil#338849#Unruly Remains#nil#nil", -- [8898]
|
|
--"<18.67 11:59:09> [CLEU] SPELL_SUMMON#Creature-0-4220-2222-501-167525-0000749A40#Mortanis#Creature-0-4220-2222-501-173385-0000749ADC#Unknown#338849#Unruly Remains#nil#nil",
|
|
|
|
function mod:SPELL_CAST_START(args)
|
|
local spellId = args.spellId
|
|
if spellId == 338848 then
|
|
-- self:ScheduleMethod(0.1, "BossTargetScanner", args.sourceGUID, "RetchTarget", 0.1, 6)
|
|
timerSpineCrawlCD:Start(22)
|
|
elseif spellId == 338846 then
|
|
warnBoneCleave:Show()
|
|
timerBoneCleaveCD:Start()
|
|
elseif spellId == 339240 then--Unruly 16 yard
|
|
specWarnUnrulyremains:Show(16)
|
|
elseif spellId == 339241 then--Unruly 24 yard
|
|
specWarnUnrulyremains:Show(24)
|
|
elseif spellId == 338847 then
|
|
timerFrenzyCD:Start()
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_CAST_SUCCESS(args)
|
|
local spellId = args.spellId
|
|
if spellId == 338851 then
|
|
timerScreamingSkullCD:Start()
|
|
elseif spellId == 338849 then--Unruly 8 yard
|
|
specWarnUnrulyremains:Show(8)
|
|
specWarnUnrulyremains:Play("watchstep")
|
|
timerUnrulyRemainsCD:Start()
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_AURA_APPLIED(args)
|
|
local spellId = args.spellId
|
|
if spellId == 338850 then
|
|
timerSpineCrawlCD:Stop()
|
|
elseif spellId == 338847 then
|
|
if self.Options.SpecWarn338847dispel then
|
|
specWarnFrenzy:Show(args.destName)
|
|
specWarnFrenzy:Play("enrage")
|
|
else
|
|
warnFrenzy:Show(args.destName)
|
|
end
|
|
elseif spellId == 338851 then
|
|
if args:IsPlayer() then
|
|
specWarnScreamingSkull:Show(DBM_COMMON_L.ALLIES)
|
|
specWarnScreamingSkull:Play("gathershare")
|
|
else
|
|
warnScreamingSkull:Show(args.destName)
|
|
end
|
|
if self.Options.SetIconOnSkull then
|
|
self:SetIcon(args.destName, 1)
|
|
end
|
|
end
|
|
end
|
|
|
|
function mod:SPELL_AURA_REMOVED(args)
|
|
local spellId = args.spellId
|
|
if spellId == 338851 and self.Options.SetIconOnSkull then
|
|
self:SetIcon(args.destName, 0)
|
|
end
|
|
end
|
|
|