------------- OZ
local Oz = DBM:NewBossMod("Oz", DBM_OZ_NAME, DBM_OZ_DESCRIPTION, DBM_KARAZHAN, DBM_KARAZHAN_TAB, 7);
Oz.Version = "1.0";
Oz.Author = "Tandanu";
Oz:RegisterEvents(
"CHAT_MSG_MONSTER_YELL",
"SPELL_CAST_START"
);
Oz:RegisterCombat("YELL", DBM_OZ_YELL_DOROTHEE, nil, nil, DBM_OZ_CRONE_NAME, 25);
Oz:AddOption("RangeCheck", true, DBM_OZ_OPTION_1);
Oz:AddBarOption("Roar")
Oz:AddBarOption("Strawman")
Oz:AddBarOption("Tinhead")
Oz:AddBarOption("Tito")
function Oz:OnCombatStart(delay)
self:StartStatusBarTimer(14.5 - delay, "Roar", "Interface\\Icons\\Ability_Druid_ChallangingRoar");
self:StartStatusBarTimer(24 - delay, "Strawman", "Interface\\Icons\\INV_Helmet_34");
self:StartStatusBarTimer(33 - delay, "Tinhead", "Interface\\Icons\\INV_Helmet_02");
self:StartStatusBarTimer(47.5 - delay, "Tito", "Interface\\Icons\\Ability_Mount_WhiteDireWolf");
end
function Oz:OnCombatEnd()
if self.Options.RangeCheck then
DBM_Gui_DistanceFrame_Hide();
end
end
function Oz:OnEvent(event, arg1)
if event == "CHAT_MSG_MONSTER_YELL" then
if arg1 == DBM_OZ_YELL_ROAR then
self:Announce(DBM_OZ_WARN_ROAR, 2);
elseif arg1 == DBM_OZ_YELL_STRAWMAN then
self:Announce(DBM_OZ_WARN_STRAWMAN, 2);
elseif arg1 == DBM_OZ_YELL_TINHEAD then
self:Announce(DBM_OZ_WARN_TINHEAD, 2);
elseif arg1 == DBM_OZ_YELL_CRONE then
self:Announce(DBM_OZ_WARN_CRONE, 3);
if self.Options.RangeCheck then
DBM_Gui_DistanceFrame_Show();
end
end
elseif event == "SPELL_CAST_START" then
if arg1.spellId == 31014 then
if not self:GetStatusBarTimerTimeLeft("Tito") then
self:StartStatusBarTimer(47.5, "Tito", "Interface\\Icons\\Ability_Mount_WhiteDireWolf");
end
self:UpdateStatusBarTimer("Tito", 46.5, 47.5);
self:Announce(DBM_OZ_WARN_TITO, 2);
end
end
end
-------------------------------BBW
local BBW = DBM:NewBossMod("BigBadWolf", DBM_BBW_NAME, DBM_BBW_DESCRIPTION, DBM_KARAZHAN, DBM_KARAZHAN_TAB, 5);
BBW.Version = "1.0";
BBW.Author = "Tandanu";
BBW:RegisterEvents(
"SPELL_AURA_APPLIED"
);
BBW:RegisterCombat("YELL", DBM_BBW_YELL_1);
BBW:AddOption("FearWarn", true, DBM_BBW_OPTION_1);
BBW:AddOption("Whisper", true, DBM_BBW_OPTION_2);
BBW:AddBarOption("Fear")
BBW:AddBarOption("Red Riding Hood")
BBW:AddBarOption("Next Red Riding Hood")
function BBW:OnEvent(event, arg1)
if event == "SPELL_AURA_APPLIED" then
if arg1.spellId == 30753 then
local target = tostring(arg1.destName)
if target == UnitName("player") then
self:AddSpecialWarning(DBM_BBW_RUN_AWAY)
end
self:SendSync(target)
elseif arg1.spellId == 30752 then
self:StartStatusBarTimer(24, "Fear", "Interface\\Icons\\Ability_Devour");
if self.Options.FearWarn then
self:Announce(DBM_BBW_FEAR_WARN, 2);
end
self:UnScheduleSelf("FearWarning", "soon");
self:ScheduleSelf(23, "FearWarning", "soon");
end
elseif event == "ClearIcon" and arg1 then
DBM.ClearIconByName(arg1);
elseif event == "FearWarning" and arg1 == "soon" and self.Options.FearWarn then
self:Announce(DBM_BBW_FEAR_SOON, 2);
elseif event == "RRHSoonWarn" then
self:Announce(DBM_BBW_RRH_SOON_WARN, 1);
end
end
function BBW:OnSync(target)
if target then
if self.Options.Whisper and self.Options.Announce and DBM.Rank >= 1 then
self:SendHiddenWhisper(DBM_BBW_RUN_AWAY_WHISP, target);
end
self:EndStatusBarTimer("Next Red Riding Hood");
self:StartStatusBarTimer(30, "Next Red Riding Hood", "Interface\\Icons\\INV_Helmet_28");
self:StartStatusBarTimer(20, "Red Riding Hood", "Interface\\Icons\\INV_Helmet_28");
self:Announce(string.format(DBM_BBW_RRH_WARN, target), 3);
self:SetIcon(target, 20);
self:ScheduleSelf(20, "ClearIcon", target);
self:ScheduleSelf(27, "RRHSoonWarn");
end
end
------------------------R&J
local RaJ = DBM:NewBossMod("RomuloAndJulianne", DBM_RJ_NAME, DBM_RJ_DESCRIPTION, DBM_KARAZHAN, DBM_KARAZHAN_TAB, 6);
--Edit by Nightkiller@日落沼澤(kc10577@巴哈;Azael)
RaJ.Version = "1.1";
RaJ.Author = "Tandanu";
RaJ:RegisterEvents(
"SPELL_AURA_APPLIED",
"CHAT_MSG_MONSTER_YELL",
"SPELL_CAST_START"
);
RaJ:RegisterCombat("COMBAT", 5, DBM_RJ_JULIANNE, DBM_RJ_NAME, {DBM_RJ_ROMULO, DBM_RJ_JULIANNE}, 20);
RaJ:AddOption("WarnHeal", true, DBM_RJ_OPTION_1);
RaJ:AddOption("PosionWarn", true, DBM_RJ_OPTION_2);
RaJ:AddBarOption("Heal")
function RaJ:OnEvent(event, arg1)
if event == "SPELL_AURA_APPLIED" then
if arg1.spellId == 30841 then
self:Announce(DBM_RJ_DARING_WARN, 2);
elseif arg1.spellId == 30887 then
self:Announce(DBM_RJ_DEVOTION_WARN, 2);
elseif arg1.spellId == 30822 or arg1.spellId == 30830 then
if target and self.Options.PosionWarn then
self:Announce(string.format(DBM_RJ_POISON_WARN, tostring(arg1.destName)), 2);
end
end
elseif event == "CHAT_MSG_MONSTER_YELL" then
if arg1 == DBM_RJ_PHASE2_YELL then
self:ScheduleSelf(3, "SetPhase");
end
elseif event == "SetPhase" then
self.Phase = 2; --needed for combat end detection, because the "xyz dies." event is fired when you kill one of them in phase 1.
elseif event == "SPELL_CAST_START" then
if arg1.spellId == 30878 and self.Options.WarnHeal then
self:Announce(DBM_RJ_HEAL_WARN);
self:StartStatusBarTimer(2, "Heal", "Interface\\Icons\\Spell_Holy_Heal");
end
end
end
function RaJ:OnCombatStart()
self.Phase = 0;
end
function RaJ:OnCombatEnd()
self.Phase = 0;
end