------------------------------ -- Are you local? -- ------------------------------ local boss = AceLibrary("Babble-Boss-2.0")("Patchwerk") local L = AceLibrary("AceLocale-2.0"):new("BigWigs"..boss) ---------------------------- -- Localization -- ---------------------------- L:RegisterTranslations("enUS", function() return { cmd = "Patchwerk", you = "You", are = "are", youhs_cmd = "youhs", youhs_name = "Hateful strike on you alert", youhs_desc = "Warn when you get hateful strike", elsehs_cmd = "elsehs", elsehs_name = "Hateful strike on others alert", elsehs_desc = "Warn when someone else gets hateful strike", enrage_cmd = "enrage", enrage_name = "Enrage Alert", enrage_desc = "Warn for Enrage", trigger1 = "^([^%s]+) ([^%s]+) afflicted by Hateful Strike", enragetrigger = "%s goes into a berserker rage!", enragewarn = "Enrage!", starttrigger1 = "Patchwerk want to play!", starttrigger2 = "Kel'thuzad make Patchwerk his avatar of war!", startwarn = "Patchwerk Engaged! Enrage in 7 minutes!", enragebartext = "Enrage", warn1 = "Enrage in 5 minutes", warn2 = "Enrage in 3 minutes", warn3 = "Enrage in 90 seconds", warn4 = "Enrage in 60 seconds", warn5 = "Enrage in 30 seconds", warn6 = "Enrage in 10 seconds", hswarn1 = "Hateful Strike on you!", hswarn2 = "Hateful Strike on %s!", } end ) L:RegisterTranslations("deDE", function() return { cmd = "patchwerk", enrage_cmd = "enrage", enrage_name = "Wutanfall", enrage_desc = "Warnung, wenn Flickwerk w\195\188tend wird.", enragetrigger = "%s f\195\164llt in Berserkerwut!", -- ? "wird w\195\188tend", enragewarn = "Wutanfall!", starttrigger1 = "Flickwerk spielen m\195\182chte!", -- ? starttrigger2 = "Kel'thuzad macht Flickwerk zu seinem Abgesandten von Krieg!", -- ? startwarn = "Flickwerk angegriffen! Wutanfall in 7 Minuten!", enragebartext = "Wutanfall", warn1 = "Wutanfall in 5 Minuten", warn2 = "Wutanfall in 3 Minuten", warn3 = "Wutanfall in 90 Sekunden", warn4 = "Wutanfall in 60 Sekunden", warn5 = "Wutanfall in 30 Sekunden", warn6 = "Wutanfall in 10 Sekunden", } end ) L:RegisterTranslations("koKR", function() return { enragetrigger = "goes into a berserker rage!", -- 사용되지 않음 enragewarn = "격노!", starttrigger1 = "패치워크랑 놀아줘!", starttrigger2 = "켈투자드님이 패치워크 싸움꾼으로 만들었다.", startwarn = "패치워크 전투시작! 격노 7분후!", enragebartext = "격노", warn1 = "격노 5분후", warn2 = "격노 3분후", warn3 = "격노 90초후", warn4 = "격노 60초후", warn5 = "격노 30초후", warn6 = "격노 10초후", } end ) L:RegisterTranslations("zhCN", function() return { enrage_name = "激怒警报", enrage_desc = "激怒警报", enragetrigger = "变得愤怒了!", enragewarn = "激怒!", starttrigger1 = "帕奇维克要跟你玩!", starttrigger2 = "帕奇维克是克尔苏加德的战神!", startwarn = "帕奇维克已激活 - 7分钟后激怒", enragebartext = "激怒", warn1 = "5分钟后激怒", warn2 = "3分钟后激怒", warn3 = "90秒后激怒", warn4 = "60秒后激怒", warn5 = "30秒后激怒", warn6 = "10秒后激怒", } end ) ---------------------------------- -- Module Declaration -- ---------------------------------- BigWigsPatchwerk = BigWigs:NewModule(boss) BigWigsPatchwerk.zonename = AceLibrary("Babble-Zone-2.0")("Naxxramas") BigWigsPatchwerk.enabletrigger = boss BigWigsPatchwerk.toggleoptions = {"youhs", "elsehs", "enrage", "bosskill"} BigWigsPatchwerk.revision = tonumber(string.sub("$Revision: 9384 $", 12, -3)) ------------------------------ -- Initialization -- ------------------------------ function BigWigsPatchwerk:OnEnable() self.enrageStarted = nil self:RegisterEvent("CHAT_MSG_SPELL_PERIODIC_SELF_DAMAGE", "HSEvent") self:RegisterEvent("CHAT_MSG_SPELL_PERIODIC_FRIENDLYPLAYER_DAMAGE", "HSEvent") self:RegisterEvent("CHAT_MSG_SPELL_PERIODIC_PARTY_DAMAGE", "HSEvent") self:RegisterEvent("CHAT_MSG_COMBAT_HOSTILE_DEATH", "GenericBossDeath") self:RegisterEvent("CHAT_MSG_MONSTER_YELL") self:RegisterEvent("PLAYER_REGEN_ENABLED") end ------------------------------ -- Event Handlers -- ------------------------------ function BigWigsPatchwerk:Scan() if (UnitName("target") == boss and UnitAffectingCombat("target")) then return true elseif (UnitName("playertarget") == boss and UnitAffectingCombat("playertarget")) then return true else local i for i = 1, GetNumRaidMembers(), 1 do if (UnitName("raid"..i.."target") == boss and UnitAffectingCombat("raid"..i.."target")) then return true end end end return false end function BigWigsPatchwerk:CHAT_MSG_MONSTER_YELL( msg ) if self.db.profile.enrage and ( msg == L["starttrigger1"] or msg == L["starttrigger2"] ) then self:TriggerEvent("BigWigs_Message", L["startwarn"], "Red") self:TriggerEvent("BigWigs_StartBar", self, L["enragebartext"], 420, "Interface\\Icons\\Spell_Shadow_UnholyFrenzy", "Green", "Yellow", "Orange", "Red") self:ScheduleEvent("bwpatchwarn1", "BigWigs_Message", 120, L["warn1"], "Green") self:ScheduleEvent("bwpatchwarn2", "BigWigs_Message", 240, L["warn2"], "Yellow") self:ScheduleEvent("bwpatchwarn3", "BigWigs_Message", 330, L["warn3"], "Orange") self:ScheduleEvent("bwpatchwarn4", "BigWigs_Message", 360, L["warn4"], "Orange") self:ScheduleEvent("bwpatchwarn5", "BigWigs_Message", 390, L["warn5"], "Red") self:ScheduleEvent("bwpatchwarn6", "BigWigs_Message", 410, L["warn6"], "Red") end end function BigWigsPatchwerk:HSEvent(msg) local _, _, EPlayer, EType = string.find(msg, L["trigger1"]) if (EPlayer and EType) then if EPlayer == L["you"] and EType == L["are"] and self.db.profile.youhs then self:TriggerEvent("BigWigs_Message", L["warn1"], "Red", true) elseif self.db.profile.elsehs then self:TriggerEvent("BigWigs_Message", string.format(L["warn2"], EPlayer), "Yellow") end end end function BigWigsPatchwerk:PLAYER_REGEN_ENABLED() local go = self:Scan() local running = self:IsEventScheduled("Patchwerk_CheckWipe") if (not go) then self:TriggerEvent("BigWigs_RebootModule", self) elseif (not running) then self:ScheduleRepeatingEvent("Patchwerk_CheckWipe", self.PLAYER_REGEN_ENABLED, 2, self) end end function BigWigsPatchwerk:CHAT_MSG_MONSTER_EMOTE( msg ) if msg == L["enragetrigger"] then if self.db.profile.enrage then self:TriggerEvent("BigWigs_Message", L["enragewarn"], "Red") end self:TriggerEvent("BigWigs_StopBar", self, L["enragebartext"]) self:CancelScheduledEvent("bwpatchwarn1") self:CancelScheduledEvent("bwpatchwarn2") self:CancelScheduledEvent("bwpatchwarn3") self:CancelScheduledEvent("bwpatchwarn4") self:CancelScheduledEvent("bwpatchwarn5") self:CancelScheduledEvent("bwpatchwarn6") end end