This commit is contained in:
Andrew6810
2022-10-21 06:50:13 -07:00
parent 8571e98fb1
commit 39c0ed874e
466 changed files with 52263 additions and 2 deletions
+120
View File
@@ -0,0 +1,120 @@
local mod = DBM:NewMod("Curator", "DBM-Karazhan")
local L = mod:GetLocalizedStrings()
mod:SetRevision(("$Revision: 163 $"):sub(12, -3))
mod:SetCreatureID(15691)
--mod:RegisterCombat("yell", L.DBM_CURA_YELL_PULL)
mod:RegisterCombat("combat")
mod:RegisterEvents(
"SPELL_AURA_APPLIED",
"CHAT_MSG_MONSTER_YELL",
"UNIT_HEALTH"
)
local warnEvoSoon = mod:NewPreWarnAnnounce(30254, 10, 2)
local warnEvo = mod:NewSpellAnnounce(30254, 3)
local warnArcaneInfusion = mod:NewSpellAnnounce(30403, 3)
local warnTerminate = mod:NewTargetAnnounce(85082, 3)
local specWarnTerminate = mod:NewSpecialWarning(L.TerminationTarget); --,1,85082)
local warnBreakCrystal = mod:NewAnnounce(L.BreakCrystalWarning, 2);
local timerTerminate = mod:NewTargetTimer(10, 85082)
local timerTerminateCD = mod:NewCDTimer(15, 85082) --15 seconds??
local timerEvo = mod:NewBuffActiveTimer(20, 30254)
local timerNextEvo = mod:NewNextTimer(130, 30254)
local timerNextHateful = mod:NewNextTimer(6, 30383)--, mod:IsTank() or mod:IsHealer())
local timerNextHatefulHc = mod:NewNextTimer(6, 85267)--, mod:IsTank() or mod:IsHealer())
local berserkTimer = mod:NewBerserkTimer(720)
local isCurator = false
mod:SetUsedIcons(5, 6, 7)
local terminateIcon = 5;
mod:AddBoolOption(L.CuratorIcon)
mod:AddBoolOption("RangeFrame", true)
local iconText = {
[5] = "{Moon}",
[6] = "{Square}",
[7] = "{Cross}",
};
local iconText2 = {
[5] = "(MOON)",
[6] = "(SQUARE)",
[7] = "(CROSS)",
};
function mod:OnCombatStart(delay)
timerTerminateCD:Start(30-delay)
berserkTimer:Start(-delay)
timerNextEvo:Start(95-delay)
warnEvoSoon:Schedule(85-delay)
warnBreakCrystal:Schedule((95-35)-delay);
if self.Options.RangeFrame then
DBM.RangeCheck:Show(10)
end
isCurator = true
terminateIcon = 5;
self.vb.phase = 1;
end
function mod:OnCombatEnd()
if self.Options.RangeFrame then
DBM.RangeCheck:Hide()
end
end
function mod:SPELL_AURA_APPLIED(args)
if args:IsSpellID(30403) then
warnArcaneInfusion:Show()
timerNextEvo:Stop()
timerEvo:Stop()
self.vb.phase = 2
--warnBreakCrystal:Cancel();
elseif args:IsSpellID(85082) then
if self.Options.CuratorIcon then
terminateIcon = (terminateIcon <= ((mod:IsDifficulty("heroic25") and 5) or (mod:IsDifficulty("heroic10") and 6) or 7)) and 7 or (terminateIcon - 1);
self:SetIcon(args.destName, terminateIcon, 10)
end
warnTerminate:Show(args.destName)
timerTerminate:Start(args.destName)
timerTerminateCD:Start()
if args:IsPlayer() then
local myIconText = self.Options.CuratorIcon and iconText[terminateIcon] or "";
local myIconText2 = self.Options.CuratorIcon and iconText2[terminateIcon] or "";
specWarnTerminate:Show(myIconText2);
SendChatMessage(L.YellTermination:format(myIconText,args.destName,myIconText),"YELL");
end
end
end
function mod:CHAT_MSG_MONSTER_YELL(msg)
if msg == L.DBM_CURA_YELL_OOM then
warnEvoSoon:Cancel()
warnEvo:Show()
timerNextEvo:Start()
timerEvo:Start()
warnEvoSoon:Schedule(125);
warnBreakCrystal:Cancel();
warnBreakCrystal:Schedule(125-30);
end
end
function mod:SPELL_DAMAGE(args)
-----Hateful Strike-----
if args:IsSpellID(33813) then
if self.vb.phase == 2 then
timerNextHateful:Start()
else
timerNextHateful:Start(4)
end
elseif args:IsSpellID(85267) then
if self.vb.phase == 2 then
timerNextHatefulHc:Start()
else
timerNextHatefulHc:Start(4)
end
end
end