Index: Maexxna.lua =================================================================== --- Maexxna.lua (revision 6778) +++ Maexxna.lua (working copy) @@ -11,6 +11,10 @@ L:RegisterTranslations("enUS", function() return { cmd = "maexxna", + + wrap_cmd = "wrap", + wrap_name = "Web Wrap Alert", + wrap_desc = "Warns who gets cocooned on the wall", spray_cmd = "spray", spray_name = "Web Spray Alert", @@ -20,6 +24,7 @@ enrage_name = "Enrage Alert", enrage_desc = "Warn for enrage", + webwrapwarn = " is wrapped to the wall!", webwraptrigger = "(.*) (.*) afflicted by Web Wrap.", webspraytrigger = "is afflicted by Web Spray.", @@ -86,7 +91,7 @@ BigWigsMaexxna = BigWigs:NewModule(boss) BigWigsMaexxna.zonename = AceLibrary("Babble-Zone-2.0")("Naxxramas") BigWigsMaexxna.enabletrigger = boss -BigWigsMaexxna.toggleoptions = {"spray", "enrage", "bosskill"} +BigWigsMaexxna.toggleoptions = {"wrap", "spray", "enrage", "bosskill"} BigWigsMaexxna.revision = tonumber(string.sub("$Revision$", 12, -3)) ------------------------------ @@ -95,12 +100,14 @@ function BigWigsMaexxna:OnEnable() self.enrageannounced = nil + self.announcedWrapVictims = {} self:RegisterEvent("CHAT_MSG_MONSTER_EMOTE") self:RegisterEvent("PLAYER_REGEN_ENABLED") self:RegisterEvent("PLAYER_REGEN_DISABLED") self:RegisterEvent("UNIT_HEALTH") self:RegisterEvent("CHAT_MSG_COMBAT_HOSTILE_DEATH", "GenericBossDeath") + self:RegisterEvent("CHAT_MSG_SPELL_PERIODIC_SELF_DAMAGE", "SprayEvent") self:RegisterEvent("CHAT_MSG_SPELL_PERIODIC_FRIENDLYPLAYER_DAMAGE", "SprayEvent") self:RegisterEvent("CHAT_MSG_SPELL_PERIODIC_PARTY_DAMAGE", "SprayEvent") @@ -114,22 +121,32 @@ if string.find(msg, L"webspraytrigger") then self:TriggerEvent("BigWigs_SendSync", "MaexxnaWebspray") end + + local _, _, victim, type = string.find(msg, L"webwraptrigger") + if victim then + if type == L"are" then victim = UnitName("player") end + self:TriggerEvent("BigWigs_SendSync", "MaexxnaWebwrap "..victim) + end end +function BigWigsMaexxna:BigWigs_RecvSync( sync, victim ) + if sync == "MaexxnaWebspray" then + self:TriggerEvent("BigWigs_Message", L"webspraywarn", "Red") + self:ScheduleEvent("BigWigs_Message", 10, L"webspraywarn30sec", "Yellow") + self:ScheduleEvent("BigWigs_Message", 20, L"webspraywarn20sec", "Yellow") + self:ScheduleEvent("BigWigs_Message", 30, L"webspraywarn10sec", "Yellow") + self:ScheduleEvent("BigWigs_Message", 35, L"webspraywarn5sec", "Yellow") + self:TriggerEvent("BigWigs_StartBar", self, L"webspraybar", 40, 1, "Interface\\Icons\\Ability_Ensnare", "Green", "Yellow", "Orange", "Red") + elseif sync == "MaexxnaWebwrap" then -function BigWigsMaexxna:BigWigs_RecvSync( sync ) - if sync ~= "MaexxnaWebspray" then return end - - self:TriggerEvent("BigWigs_Message", L"webspraywarn", "Red") - self:ScheduleEvent("BigWigs_Message", 10, L"webspraywarn30sec", "Yellow") - self:ScheduleEvent("BigWigs_Message", 20, L"webspraywarn20sec", "Yellow") - self:ScheduleEvent("BigWigs_Message", 30, L"webspraywarn10sec", "Yellow") - self:ScheduleEvent("BigWigs_Message", 35, L"webspraywarn5sec", "Yellow") - self:TriggerEvent("BigWigs_StartBar", self, L"webspraybar", 40, 1, "Interface\\Icons\\Ability_Ensnare", "Green", "Yellow", "Orange", "Red") + announcedWrapVictims[victim] = true + + if not announcedWrapVictims[victim] then + self:TriggerEvent("BigWigs_Message", victim .. L"webwrapwarn", "Red") + end + end end - - function BigWigsMaexxna:Scan() if UnitName("target") == boss and UnitAffectingCombat("target") then return true