vanilla-wow-addons – Rev 1
?pathlinks?
------------------------------
-- Are you local? --
------------------------------
local boss = AceLibrary("Babble-Boss-2.2")["Instructor Razuvious"]
local understudy = AceLibrary("Babble-Boss-2.2")["Deathknight Understudy"]
local L = AceLibrary("AceLocale-2.2"):new("BigWigs"..boss)
----------------------------
-- Localization --
----------------------------
L:RegisterTranslations("enUS", function() return {
cmd = "Razuvious",
shout_cmd = "shout",
shout_name = "Shout Alert",
shout_desc = "Warn for disrupting shout",
shieldwall_cmd = "shieldwall",
shieldwall_name = "Shield Wall Timer",
shieldwall_desc = "Show timer for shieldwall",
startwarn = "Instructor Razuvious engaged! ~25sec to shout!",
starttrigger1 = "The time for practice is over! Show me what you have learned!",
starttrigger2 = "Sweep the leg... Do you have a problem with that?",
starttrigger3 = "Show them no mercy!",
starttrigger4 = "Do as I taught you!",
shouttrigger = "Disrupting Shout",
shout7secwarn = "7 sec to Disrupting Shout",
shout3secwarn = "3 sec to Disrupting Shout!",
shoutwarn = "Disrupting Shout!",
noshoutwarn = "No shout! Next in ~20secs",
shoutbar = "Disrupting Shout",
shieldwalltrigger = "Deathknight Understudy gains Shield Wall.",
shieldwallbar = "Shield Wall",
} end )
L:RegisterTranslations("deDE", function() return {
shout_name = "Unterbrechungsruf",
shout_desc = "Warnung, wenn Instruktor Razuvious Unterbrechungsruf wirkt.",
shieldwall_name = "Schildwall",
shieldwall_desc = "Timer f\195\188r Schildwall.",
startwarn = "Instruktor Razuvious angegriffen! Unterbrechungsruf in ~25 Sekunden!",
starttrigger1 = "Die Zeit des \195\156bens ist vorbei! Zeigt mir, was ihr gelernt habt!",
starttrigger2 = "Streckt sie nieder... oder habt ihr ein Problem damit?",
starttrigger3 = "Lasst keine Gnade walten!",
starttrigger4 = "Befolgt meine Befehle!",
shouttrigger = "Unterbrechungsruf",
shout7secwarn = "Unterbrechungsruf in 7 Sekunden!",
shout3secwarn = "Unterbrechungsruf in 3 Sekunden!",
shoutwarn = "Unterbrechungsruf!",
noshoutwarn = "Kein Ruf! N\195\164chster in ~20 Sekunden",
shoutbar = "Unterbrechungsruf",
shieldwalltrigger = "Reservist der Todesritter bekommt 'Schildwall'.",
shieldwallbar = "Schildwall",
} end )
L:RegisterTranslations("koKR", function() return {
shout_name = "외침 경고",
shout_desc = "분열의 외침에 대한 경고",
shieldwall_name = "방패의 벽 타이머",
shieldwall_desc = "방패의 벽에 대한 타이머 표시",
startwarn = "훈련교관 라주비어스 광폭화! 외침까지 25초!",
starttrigger1 = "훈련은 끝났다!",
starttrigger2 = "다리를 후려 차라! 무슨 문제 있나?",
starttrigger3 = "절대 봐주지 마라!",
starttrigger4 = "훈련받은 대로 해!",
shouttrigger = "훈련교관 라주비어스|1이;가; 분열의 외침|1으로;로; (.+)에게 (.+)의 피해를 입혔습니다.",
shout7secwarn = "7초후 분열의 외침!",
shout3secwarn = "3초후 분열의 외침!",
shoutwarn = "분열의 외침!",
noshoutwarn = "외침 사라짐! 다음은 20초 후",
shoutbar = "분열의 외침",
shieldwalltrigger = "죽음의 기사 수습생|1이;가; 방패의 벽 효과를 얻었습니다.", -- CHECK
shieldwallbar = "방패의 벽",
} end )
L:RegisterTranslations("zhCN", function() return {
shout_name = "怒吼警报",
shout_desc = "瓦解怒吼警报",
shieldwall_name = "盾墙计时器",
shieldwall_desc = "盾墙计时器",
startwarn = "教官拉苏维奥斯已激活,~25秒后瓦解怒吼",
starttrigger1 = "练习时间到此为止!都拿出真本事来!",
starttrigger2 = "绊腿……有什么问题么?",
starttrigger3 = "仁慈无用!",
starttrigger4 = "按我教导的去做!",
shouttrigger = "瓦解怒吼",
shout7secwarn = "7秒后发动瓦解怒吼",
shout3secwarn = "3秒后发动瓦解怒吼!",
shoutwarn = "瓦解怒吼!",
noshoutwarn = "没有怒吼,下次在~20秒后发动",
shoutbar = "瓦解怒吼",
shieldwalltrigger = "死亡骑士学员获得了盾墙的效果。",
shieldwallbar = "盾墙",
} end )
L:RegisterTranslations("zhTW", function() return {
--Razuvious 講師拉祖維斯
shout_name = "怒吼警報",
shout_desc = "混亂怒吼警報",
shieldwall_name = "盾牆計時器",
shieldwall_desc = "盾牆計時器",
startwarn = "講師拉祖維斯已進入戰鬥 - 25 秒後混亂怒吼",
starttrigger1 = "練習時間到此為止!都拿出真本事來!",
starttrigger2 = "絆腿……有什麼問題嗎?",
starttrigger3 = "仁慈無用!",
starttrigger4 = "照我教你的做!",
shouttrigger = "混亂怒吼",
shout7secwarn = "7秒後發動混亂怒吼",
shout3secwarn = "3秒後發動混亂怒吼!",
shoutwarn = "混亂怒吼!",
noshoutwarn = "沒吼! 下次在 20 秒後發動",
shoutbar = "混亂怒吼",
shieldwalltrigger = "死亡騎士實習者獲得了盾牆的效果。",
shieldwallbar = "盾牆",
} end )
L:RegisterTranslations("frFR", function() return {
starttrigger1 = "Les cours sont termin\195\169s ! Montrez%-moi ce que vous avez appris !",
starttrigger2 = "Frappe%-le \195\160 la jambe",
starttrigger3 = "Pas de quartier !",
starttrigger4 = "Faites ce que vous ai appris !",
shouttrigger = "Cri perturbant",
shieldwalltrigger = "Doublure de chevalier de la mort gagne Mur protecteur.",
} end )
----------------------------------
-- Module Declaration --
----------------------------------
BigWigsRazuvious = BigWigs:NewModule(boss)
BigWigsRazuvious.zonename = AceLibrary("Babble-Zone-2.2")["Naxxramas"]
BigWigsRazuvious.enabletrigger = { boss }
BigWigsRazuvious.wipemobs = { understudy }
BigWigsRazuvious.toggleoptions = {"shout", "shieldwall", "bosskill"}
BigWigsRazuvious.revision = tonumber(string.sub("$Revision: 15233 $", 12, -3))
------------------------------
-- Initialization --
------------------------------
function BigWigsRazuvious:OnEnable()
self.timeShout = 30
self.prior = nil
self:RegisterEvent("CHAT_MSG_COMBAT_HOSTILE_DEATH", "GenericBossDeath")
self:RegisterEvent("CHAT_MSG_MONSTER_YELL")
self:RegisterEvent("CHAT_MSG_SPELL_CREATURE_VS_CREATURE_DAMAGE", "Shout")
self:RegisterEvent("CHAT_MSG_SPELL_CREATURE_VS_SELF_DAMAGE", "Shout")
self:RegisterEvent("CHAT_MSG_SPELL_CREATURE_VS_PARTY_DAMAGE", "Shout")
self:RegisterEvent("CHAT_MSG_SPELL_PERIODIC_SELF_BUFFS", "Shieldwall")
self:RegisterEvent("CHAT_MSG_SPELL_PERIODIC_FRIENDLYPLAYER_BUFFS", "Shieldwall")
self:RegisterEvent("CHAT_MSG_SPELL_PERIODIC_PARTY_BUFFS", "Shieldwall")
self:RegisterEvent("CHAT_MSG_SPELL_PERIODIC_CREATURE_BUFFS", "Shieldwall")
self:RegisterEvent("PLAYER_REGEN_ENABLED", "CheckForWipe")
self:RegisterEvent("BigWigs_Message")
self:RegisterEvent("BigWigs_RecvSync")
self:TriggerEvent("BigWigs_ThrottleSync", "RazuviousShout", 5)
self:TriggerEvent("BigWigs_ThrottleSync", "RazuviousShieldwall", 5)
end
function BigWigsRazuvious:CHAT_MSG_MONSTER_YELL( msg )
if msg == L["starttrigger1"] or msg == L["starttrigger2"] or msg == L["starttrigger3"] or msg == L["starttrigger4"] then
if self.db.profile.shout then
self:TriggerEvent("BigWigs_Message", L["startwarn"], "Urgent", nil, "Alarm")
self:ScheduleEvent("bwrazuviousshout7sec", "BigWigs_Message", 18, L["shout7secwarn"], "Attention")
self:ScheduleEvent("bwrazuviousshout3sec", "BigWigs_Message", 22, L["shout3secwarn"], "Urgent", nil, "Alert")
self:TriggerEvent("BigWigs_StartBar", self, L["shoutbar"], 25, "Interface\\Icons\\Ability_Warrior_WarCry")
end
self:ScheduleEvent("bwrazuviousnoshout", self.noShout, self.timeShout, self )
end
end
function BigWigsRazuvious:BigWigs_Message(text)
if text == L["shout7secwarn"] then self.prior = nil end
end
function BigWigsRazuvious:Shieldwall( msg )
if string.find(msg, L["shieldwalltrigger"]) then
self:TriggerEvent("BigWigs_SendSync", "RazuviousShieldwall")
end
end
function BigWigsRazuvious:Shout( msg )
if string.find(msg, L["shouttrigger"]) and not self.prior then
self:TriggerEvent("BigWigs_SendSync", "RazuviousShout")
end
end
function BigWigsRazuvious:noShout()
self:CancelScheduledEvent("bwrazuviousnoshout")
self:ScheduleEvent("bwrazuviousnoshout", self.noShout, self.timeShout - 5, self )
if self.db.profile.shout then
self:TriggerEvent("BigWigs_Message", L["noshoutwarn"], "Attention")
self:ScheduleEvent("bwrazuviousshout7sec", "BigWigs_Message", 13, L["shout7secwarn"], "Attention")
self:ScheduleEvent("bwrazuviousshout3sec", "BigWigs_Message", 17, L["shout3secwarn"], "Urgent", nil, "Alert")
self:TriggerEvent("BigWigs_StartBar", self, L["shoutbar"], 20, "Interface\\Icons\\Ability_Warrior_WarCry")
end
end
function BigWigsRazuvious:BigWigs_RecvSync( sync )
if sync == "RazuviousShout" then
self:CancelScheduledEvent("bwrazuviousnoshout")
self:ScheduleEvent("bwrazuviousnoshout", self.noShout, self.timeShout, self )
if self.db.profile.shout then
self:TriggerEvent("BigWigs_Message", L["shoutwarn"], "Urgent", nil, "Alarm")
self:ScheduleEvent("bwrazuviousshout7sec", "BigWigs_Message", 18, L["shout7secwarn"], "Attention")
self:ScheduleEvent("bwrazuviousshout3sec", "BigWigs_Message", 22, L["shout3secwarn"], "Urgent", nil, "Alert")
self:TriggerEvent("BigWigs_StartBar", self, L["shoutbar"], 25, "Interface\\Icons\\Ability_Warrior_WarCry")
end
self.prior = true
elseif sync == "RazuviousShieldwall" then
if self.db.profile.shieldwall then
self:TriggerEvent("BigWigs_StartBar", self, L["shieldwallbar"], 20, "Interface\\Icons\\Ability_Warrior_ShieldWall")
end
end
end