Files
Andrew6810 39c0ed874e init
2022-10-21 06:50:13 -07:00

80 lines
2.5 KiB
Lua

local Doomwalker = DBM:NewBossMod("Doomwalker", DBM_DOOMW_NAME, DBM_DOOMW_DESCRIPTION, DBM_SHADOWMOON, DBMGUI_TAB_OTHER_BC, 5);
Doomwalker.Author = "Tandanu";
Doomwalker.Version = "1.0";
Doomwalker.LastQuake = 0;
Doomwalker.LastCharge = 0;
Doomwalker:SetCreatureID(17711)
Doomwalker:RegisterCombat("combat");
Doomwalker:AddOption("RangeCheck", true, DBM_DOOMW_OPTION_1, function()
DBM:GetMod("Doomwalker").Options.RangeCheck = not DBM:GetMod("Doomwalker").Options.RangeCheck;
if DBM:GetMod("Doomwalker").Options.RangeCheck and DBM:GetMod("Doomwalker").InCombat then
DBM_Gui_DistanceFrame_Show();
elseif not DBM:GetMod("Doomwalker").Options.RangeCheck and DBM:GetMod("Doomwalker").InCombat then
DBM_Gui_DistanceFrame_Hide();
end
end
);
Doomwalker:AddOption("QuakeWarn", true, DBM_DOOMW_OPTION_2);
Doomwalker:AddOption("ChargeWarn", true, DBM_DOOMW_OPTION_3);
Doomwalker:AddBarOption("Earthquake Cooldown")
Doomwalker:AddBarOption("Earthquake")
Doomwalker:AddBarOption("Overrun Cooldown")
Doomwalker:RegisterEvents(
"SPELL_AURA_APPLIED",
"SPELL_CAST_START",
"CHAT_MSG_MONSTER_EMOTE"
);
function Doomwalker:OnCombatStart(delay)
if self.Options.RangeCheck then
DBM_Gui_DistanceFrame_Show();
end
end
function Doomwalker:OnCombatEnd()
if self.Options.RangeCheck then
DBM_Gui_DistanceFrame_Hide();
end
end
function Doomwalker:OnEvent(event, arg1)
if event == "SPELL_AURA_APPLIED" then
if (GetTime() - self.LastQuake) > 30 and arg1.spellId == 32686 then
self.LastQuake = GetTime();
if self.Options.QuakeWarn then
self:Announce(DBM_DOOMW_QUAKE_WARN, 3);
end
self:StartStatusBarTimer(52, "Earthquake Cooldown", "Interface\\Icons\\Spell_Nature_Earthquake");
self:StartStatusBarTimer(8, "Earthquake", "Interface\\Icons\\Spell_Nature_Earthquake");
self:ScheduleSelf(52, "QuakeWarn");
end
elseif event == "QuakeWarn" and self.Options.QuakeWarn then
self:Announce(DBM_DOOMW_QUAKE_SOON, 2);
elseif event == "SPELL_CAST_START" then
if (GetTime() - self.LastCharge) > 10 and arg1.spellId == 32637 then
self.LastCharge = GetTime();
if self.Options.ChargeWarn then
self:Announce(DBM_DOOMW_CHARGE, 2);
end
self:StartStatusBarTimer(42, "Overrun Cooldown", "Interface\\Icons\\Ability_Warrior_Charge");
self:ScheduleSelf(41, "ChargeWarn");
end
elseif event == "ChargeWarn" and self.Options.ChargeWarn then
self:Announce(DBM_DOOMW_CHARGE_SOON, 1);
elseif event == "CHAT_MSG_MONSTER_EMOTE" then
if arg1 == DBM_DOOMW_EMOTE_ENRAGE then
self:Announce(DBM_DOOMW_WARN_ENRAGE, 3);
end
end
end