Co-authored-by: Szyler <Szyler@Szyler.com>
This commit is contained in:
Szyler
2024-03-03 19:23:13 +01:00
committed by GitHub
parent 00255736e5
commit dc8afd6584
53 changed files with 2770 additions and 301 deletions
+51 -24
View File
@@ -10,6 +10,7 @@ mod:RegisterEvents(
"CHAT_MSG_MONSTER_YELL",
"CHAT_MSG_RAID_BOSS_EMOTE",
"SPELL_CAST_START",
"UNIT_DIED",
"UNIT_HEALTH",
"PLAYER_ALIVE"
)
@@ -18,24 +19,29 @@ local warnPhase2 = mod:NewPhaseAnnounce(2)
local warnPhase3 = mod:NewPhaseAnnounce(3)
local warnPhase2Soon = mod:NewAnnounce("Phase 2 Soon", 1)
local warnPhase3Soon = mod:NewAnnounce("Phase 3 Soon", 1)
local warnFireball = mod:NewTargetAnnounce(2105160, 3)
local warnBlastNova = mod:NewCastAnnounce(2105147, 2)
local warnFireball = mod:NewTargetAnnounce(2108300, 3)
local warnBlastNova = mod:NewCastAnnounce(2108401, 2)
local WarnWhelpsSoon = mod:NewAnnounce("Onyxian Whelps soon", 1)
local WarnSpearTarget = mod:NewTimer(30, "%s", 2108415)
local specWarnDeepBreath = mod:NewSpecialWarningMove(18609, 2)
local specWarnFireballYou = mod:NewSpecialWarningYou(2105160, 2)
local specWarnFireballYou = mod:NewSpecialWarningYou(2108300, 2)
local timerFlameBreath = mod:NewCastTimer(2, 2108321)
local timerBreath = mod:NewCastTimer(8, 17086)
local timerBlastNova = mod:NewCastTimer(4, 2105147)
local timerBellowingRoar = mod:NewCastTimer(4, 18431)
local timerFireball = mod:NewCastTimer(4, 2105160)
local timerBlastNova = mod:NewCastTimer(4, 2108401)
local timerBellowingRoar = mod:NewCastTimer(5, 2108326)
local timerFireball = mod:NewTargetTimer(4, 2108300)
local timerIntBlastNova = mod:NewCDTimer(40, 2108401)-- Internal CD for a Guard to cast Blast Nova twice
local timerWhelps = mod:NewTimer(95, "Onyxian Whelps", "Interface\\Icons\\INV_Misc_Head_Dragon_Red")
local timerNextFlameBreath = mod:NewNextTimer(20, 2108321)
local timerNextDeepBreath = mod:NewCDTimer(75, 17086)--Range from 75-80 seconds in between based on where she moves to.
local timerNextBellowingRoar= mod:NewCDTimer(45, 18431)
local timerNextBlastNova = mod:NewCDTimer(32, 2105147)-- +/- a few seconds as it varies depending on Guard movement.
local timerIntBlastNova = mod:NewCDTimer(40, 2105147)-- Internal CD for a Guard to cast Blast Nova twice
-- local timerIntBlastNova2 = mod:NewCDTimer(40, 2105147)-- second one for secondary add
local timerNextBellowingRoar= mod:NewCDTimer(45, 2108326)
local timerNextBlastNova = mod:NewCDTimer(40, 2108401)
local timerNextSecondNova = mod:NewCDTimer(30, 2108401)
local timerNextTailSwipe = mod:NewNextTimer(22, 2108312)
-- local timerIntBlastNova2 = mod:NewCDTimer(40, 2108401)-- second one for secondary add
local lastBlastNova = 0
@@ -43,6 +49,7 @@ local prewarnP2
local warnP2
local prewarnP3
local warnP3
local lastTargetGUID
mod:AddBoolOption(L.FireballMark)
@@ -74,6 +81,9 @@ function mod:OnCombatStart(delay)
warnP2 = 0
prewarnP3 = 0
warnP3 = 0
lastTargetGUID = 0
timerFlameBreath:Start()
timerNextTailSwipe:Start()
end
function mod:CHAT_MSG_MONSTER_YELL(msg)
@@ -97,6 +107,10 @@ function mod:CHAT_MSG_RAID_BOSS_EMOTE(msg)
timerBreath:Start()
timerNextDeepBreath:Stop()
timerNextDeepBreath:Start()
elseif msg:find(L.EmoteSpear) then
name = string.match(msg, "is picked up by (.*)")
--"A scream releases as the spear is picked up by XXX!"
WarnSpearTarget:Show(name);
end
end
@@ -106,6 +120,7 @@ function mod:MassiveFireball()
local myName = UnitName("player")
if target == myName then
specWarnFireballYou:Show()
SendChatMessage("Fireball on "..UnitName("player"), "YELL")
else
warnFireball:Show(target)
end
@@ -116,29 +131,31 @@ function mod:MassiveFireball()
end
function mod:SPELL_CAST_START(args)
if args:IsSpellID(2105158, 2105159, 2105160, 2105161) then
if args:IsSpellID(2108300, 2108301, 2108302, 2108303) then
self:ScheduleMethod(0.4, "MassiveFireball")
end
if args:IsSpellID(2105145, 2105146, 2105147, 2105148) then
warnBlastNova:Show()
timerBlastNova:Start()
timerNextBlastNova:Start()
if GetTime() - lastBlastNova > 20 then --Trying it to only trigger from new Add Blast Nova.
timerIntBlastNova:Start()
elseif args:IsSpellID(2108401, 2108402, 2108403, 2108404) then
if args.sourceGUID ~= lastTargetGUID then
warnBlastNova:Show()
timerBlastNova:Start()
timerNextSecondNova:Start()
timerNextBlastNova:Start()
lastTargetGUID = args.sourceGUIDs
end
lastBlastNova = GetTime()
end
if args:IsSpellID(18431) then
-- if GetTime() - lastBlastNova > 20 then --Trying it to only trigger from new Add Blast Nova.
-- timerIntBlastNova:Start()
-- end
-- lastBlastNova = GetTime()
elseif args:IsSpellID(2108326) then --18431
timerBellowingRoar:Start()
timerNextBellowingRoar:Stop()
timerNextBellowingRoar:Start()
end
--if args:IsSpellID(17086, 18351, 18564, 18576) or args:IsSpellID(18584, 18596, 18609, 18617) then -- 1 ID for each direction
-- specWarnDeepBreath:Show() -- potentially deprecated because all new spell IDs
-- timerBreath:Start()
-- timerNextDeepBreath:Stop()
-- timerNextDeepBreath:Start()
--end
end
end
function mod:UNIT_HEALTH(uId)
@@ -155,4 +172,14 @@ function mod:UNIT_HEALTH(uId)
warnP3 = 1
self:ScheduleMethod(0, "alertP3")
end
end
end
function mod:UNIT_DIED(args)
if args.destGUID == lastTargetGUID then
timerNextSecondNova:Cancel()
lastTargetGUID = 0
end
end
--429201 item of spear
+2 -1
View File
@@ -31,6 +31,7 @@ L:SetOptionLocalization{
L:SetMiscLocalization{
YellP2 = "This meaningless exertion bores me. I'll incinerate you all from above!",
YellP3 = "It seems you'll need another lesson, mortals!",
EmoteDeepBreath = "%s takes in a deep breath..."
EmoteDeepBreath = "%s takes in a deep breath...",
EmoteSpear = "A scream releases as the spear is picked up by"
}