vanilla-wow-addons – Rev 1
?pathlinks?
------------------------------
-- Are you local? --
------------------------------
local boss = AceLibrary("Babble-Boss-2.2")["Anubisath Defender"]
local L = AceLibrary("AceLocale-2.2"):new("BigWigs"..boss)
----------------------------
-- Localization --
----------------------------
L:RegisterTranslations("enUS", function() return {
cmd = "Defender",
plagueyou_cmd = "plagueyou",
plagueyou_name = "Plague on you alert",
plagueyou_desc = "Warn if you got the Plague",
plagueother_cmd = "plagueother",
plagueother_name = "Plague on others alert",
plagueother_desc = "Warn if others got the Plague",
thunderclap_cmd = "thunderclap",
thunderclap_name = "Thunderclap Alert",
thunderclap_desc = "Warn for Thunderclap",
explode_cmd = "explode",
explode_name = "Explode Alert",
explode_desc = "Warn for Explode",
enrage_cmd = "enrage",
enrage_name = "Enrage Alert",
enrage_desc = "Warn for Enrage",
summon_cmd = "summon",
summon_name = "Summon Alert",
summon_desc = "Warn for add summons",
icon_cmd = "icon",
icon_name = "Place icon",
icon_desc = "Place raid icon on the last plagued person (requires promoted or higher)",
explodetrigger = "Anubisath Defender gains Explode.",
explodewarn = "Exploding!",
enragetrigger = "Anubisath Defender gains Enrage.",
enragewarn = "Enraged!",
summonguardtrigger = "Anubisath Defender casts Summon Anubisath Swarmguard.",
summonguardwarn = "Swarmguard Summoned",
summonwarriortrigger = "Anubisath Defender casts Summon Anubisath Warrior.",
summonwarriorwarn = "Warrior Summoned",
plaguetrigger = "^([^%s]+) ([^%s]+) afflicted by Plague%.$",
plaguewarn = " has the Plague!",
plagueyouwarn = "You have the plague!",
plagueyou = "You",
plagueare = "are",
thunderclaptrigger = "^Anubisath Defender's Thunderclap hits ([^%s]+) for %d+%.",
thunderclapwarn = "Thunderclap!",
} end )
L:RegisterTranslations("deDE", function() return {
plagueyou_name = "Du hast die Seuche",
plagueyou_desc = "Warnung, wenn Du die Seuche hast.",
plagueother_name = "X hat die Seuche",
plagueother_desc = "Warnung, wenn andere Spieler die Seuche haben.",
thunderclap_name = "Donnerknall",
thunderclap_desc = "Warnung vor Donnerknall.",
explode_name = "Explosion",
explode_desc = "Warnung vor Explosion.",
enrage_name = "Wutanfall",
enrage_desc = "Warnung vor Wutanfall.",
summon_name = "Beschw\195\182rung",
summon_desc = "Warnung, wenn Verteidiger des Anubisath Schwarmwachen oder Krieger beschw\195\182rt.",
icon_name = "Symbol",
icon_desc = "Platziert ein Symbol \195\188ber dem Spieler, der die Seuche hat. (Ben\195\182tigt Anf\195\188hrer oder Bef\195\182rdert Status.)",
explodetrigger = "Verteidiger des Anubisath bekommt 'Explodieren'.",
explodewarn = "Explosion!",
enragetrigger = "Verteidiger des Anubisath bekommt 'Wutanfall'.",
enragewarn = "Wutanfall!",
summonguardtrigger = "Verteidiger des Anubisath wirkt Schwarmwache des Anubisath beschw\195\182ren.",
summonguardwarn = "Schwarmwache beschworen!",
summonwarriortrigger = "Verteidiger des Anubisath wirkt Krieger des Anubisath beschw\195\182ren.",
summonwarriorwarn = "Krieger beschworen!",
plaguetrigger = "^([^%s]+) ([^%s]+) von Seuche betroffen%.$",
plaguewarn = " hat die Seuche!",
plagueyouwarn = "Du hast die Seuche!",
plagueyou = "Ihr",
plagueare = "seid",
thunderclaptrigger = "^Verteidiger des Anubisath's Donnerknall trifft ([^%s]+) f\195\188r %d+%.",
thunderclapwarn = "Donnerknall!",
} end )
L:RegisterTranslations("zhCN", function() return {
plagueyou_name = "玩家瘟疫警报",
plagueyou_desc = "你中了瘟疫时发出警报",
plagueother_name = "队友瘟疫警报",
plagueother_desc = "队友中了瘟疫时发出警报",
thunderclap_name = "雷霆一击警报",
thunderclap_desc = "阿努比萨斯防御者发动雷霆一击时发出警报",
explode_name = "爆炸警报",
explode_desc = "阿努比萨斯防御者即将爆炸时发出警报",
enrage_name = "狂怒警报",
enrage_desc = "阿努比萨斯防御者进入狂怒状态时发出警报",
summon_name = "召唤警报",
summon_desc = "阿努比萨斯防御者召唤增援时发出警报",
icon_name = "标记瘟疫",
icon_desc = "团队标记中瘟疫的玩家 (需要助理或更高权限)",
explodetrigger = "阿努比萨斯防御者获得了爆炸的效果。",
explodewarn = "即将爆炸!近战躲开!",
enragetrigger = "阿努比萨斯防御者获得了狂怒的效果。",
enragewarn = "进入狂怒状态!",
summonguardtrigger = "阿努比萨斯防御者施放了召唤阿努比萨斯虫群卫士。",
summonguardwarn = "虫群卫士已被召唤出来",
summonwarriortrigger = "阿努比萨斯防御者施放了召唤阿努比萨斯战士。",
summonwarriorwarn = "阿努比萨斯战士已被召唤出来",
plaguetrigger = "^(.+)受(.+)了瘟疫效果的影响。$",
plaguewarn = "受到瘟疫的影响!快躲开!",
plagueyouwarn = "你受到瘟疫的影响!快跑开!",
plagueyou = "你",
plagueare = "到",
thunderclaptrigger = "^阿努比萨斯防御者的雷霆一击击中(.+)造成%d+点伤害。",
thunderclapwarn = "雷霆一击发动!",
} end )
L:RegisterTranslations("zhTW", function() return {
-- Anubisath Defender 阿努比薩斯防禦者
plagueyou_name = "玩家瘟疫警報",
plagueyou_desc = "你中了瘟疫時發出警報",
plagueother_name = "隊友瘟疫警報",
plagueother_desc = "隊友中了瘟疫時發出警報",
thunderclap_name = "雷霆一擊警報",
thunderclap_desc = "阿努比薩斯防禦者發動雷霆一擊時發出警報",
explode_name = "爆炸警報",
explode_desc = "阿努比薩斯防禦者即將爆炸時發出警報",
enrage_name = "狂怒警報",
enrage_desc = "阿努比薩斯防禦者進入狂怒狀態時發出警報",
summon_name = "召喚警報",
summon_desc = "阿努比薩斯防禦者召喚增援時發出警報",
icon_name = "標記瘟疫",
icon_desc = "團隊標記中瘟疫的玩家 (需要助理或領隊權限)",
explodetrigger = "阿努比薩斯防禦者獲得了爆炸的效果。",
explodewarn = "即將爆炸!近戰躲開!",
enragetrigger = "阿努比薩斯防禦者獲得了狂怒的效果。",
enragewarn = "進入狂怒狀態!",
summonguardtrigger = "阿努比薩斯防禦者施放了召喚阿努比薩斯蟲群衛士。",
summonguardwarn = "蟲群衛士已被召喚出來",
summonwarriortrigger = "阿努比薩斯防禦者施放了召喚阿努比薩斯戰士。",
summonwarriorwarn = "阿努比薩斯戰士已被召喚出來",
plaguetrigger = "^(.+)受到(.*)瘟疫",
plaguewarn = "受到瘟疫的影響!快躲開!*",
plagueyouwarn = "你受到瘟疫的影響!快跑開!",
plagueyou = "你",
plagueare = "了",
thunderclaptrigger = "^阿努比薩斯防禦者的雷霆一擊擊中(.+)造成%d+點傷害。",
thunderclapwarn = "雷霆一擊發動!",
--The thunderclaptrigger use three events,
--CHAT_MSG_SPELL_CREATURE_VS_CREATURE_DAMAGE,
--CHAT_MSG_SPELL_CREATURE_VS_PARTY_DAMAGE and
--CHAT_MSG_SPELL_CREATURE_VS_SELF_DAMAGE,
--but tne function BigWigsDefenders:Thunderclap does the same thing.
--The skill affects a lot of players at once in zhTW.
--(See BigWigs\Naxxramas\Maexxna.lua)
--They say it works fine for all other locales.
--Or just simply use thunderclaptrigger = "^阿努比薩斯防禦者的雷霆一擊擊中你", to trigger self ?
--Any idea?
--If anyone knows how to correct it in translation string, mail to me please.
--xinsonic@gmail.com
} end )
L:RegisterTranslations("koKR", function() return {
plagueyou_name = "자신의 역병 경고",
plagueyou_desc = "자신의 역병에 대한 경고",
plagueother_name = "타인의 역병 경고",
plagueother_desc = "타인의 역병에 대한 경고",
thunderclap_name = "천둥벼락 경고",
thunderclap_desc = "천둥벼락에 대한 경고",
explode_name = "폭발 경고",
explode_desc = "폭발에 대한 경고",
enrage_name = "분노 경고",
enrage_desc = "분노에 대한 경고",
summon_name = "소환 경고",
summon_desc = "추가 소환에 대한 경고",
icon_name = "아이콘 지정",
icon_desc = "마지막 역병에 걸린 사람에게 공격대 아이콘 지정(승급자 이상 필요)",
explodetrigger = "아누비사스 문지기|1이;가; 폭파 효과를 얻었습니다.",
explodewarn = "폭파! 떨어지세요!",
enragetrigger = "아누비사스 문지기|1이;가; 분노 효과를 얻었습니다.",
enragewarn = "분노 돌입!",
summonguardtrigger = "아누비사스 문지기|1이;가; 아누비사스 감시병 소환|1을;를; 시전합니다.",
summonguardwarn = "감시병 소환",
summonwarriortrigger = "아누비사스 문지기|1이;가; 아누비사스 전사 소환|1을;를; 시전합니다.",
summonwarriorwarn = "전사 소환",
plaguetrigger = "^([^|;%s]*)(.*)역병에 걸렸습니다%.$", -- "(.*) 역병에 걸렸습니다.",
plaguewarn = "님은 역병에 걸렸습니다. 피하세요",
plagueyouwarn = "당신은 역병에 걸렸습니다! 떨어지세요!",
plagueyou = "", -- "you"
plagueare = "", -- "are"
thunderclaptrigger = "아누비사스 문지기|1이;가; 천둥벼락|1으로;로; (.+)에게 (%d+)의",
thunderclapwarn = "천둥벼락! - 멀리 떨어지세요",
} end )
L:RegisterTranslations("frFR", function() return {
plagueyou_name = "Alerte Peste sur vous",
plagueyou_desc = "Pr\195\169viens quand vous avez la peste.",
plagueother_name = "Alerte Peste sur d'autres",
plagueother_desc = "Pr\195\169viens quand d'autres joueurs ont la peste.",
thunderclap_name = "Alerte Coups de tonnerre",
thunderclap_desc = "Pr\195\169viens des Coups de tonnerre",
explode_name = "Alerte Explosion",
explode_desc = "Pr\195\169viens en cas d'explosion imminente.",
enrage_name = "Alerte Enrag\195\169",
enrage_desc = "Pr\195\169viens quand le gardien s'enrage.",
summon_name = "Alerte invocation",
summon_desc = "Pr\195\169viens quand le gardien invoque des adds.",
icon_name = "Placer une ic\195\180ne",
icon_desc = "Place une ic\195\180ne de raid sur le dernier personnage qui a la peste (requiert d'\195\170tre promus ou plus).",
explodewarn = "Explosion imminente !",
enragewarn = "Enrag\195\169 !",
summonguardwarn = "Garde-Essaim invoqu\195\169 !",
summonwarriorwarn = "Guerrier invoqu\195\169 !",
plaguewarn = " a la peste !",
plagueyouwarn = "Tu as la peste !",
thunderclapwarn = "Coup de tonnerre !",
explodetrigger = "D\195\169fenseur Anubisath gagne Exploser.",
enragetrigger = "D\195\169fenseur Anubisath gagne Enrager.",
summonguardtrigger = "D\195\169fenseur Anubisath lance Invocation d'un Garde-essaim Anubisath.",
summonwarriortrigger = "D\195\169fenseur Anubisath lance Invocation d'un Guerrier Anubisath.",
plaguetrigger = "^([^%s]+) ([^%s]+) les effets de Peste%.$",
plagueyou = "Vous",
plagueare = "subissez",
thunderclaptrigger = "^D\195\169fenseur Anubisath lance Coup de tonnerre",--not sure
} end )
----------------------------------
-- Module Declaration --
----------------------------------
BigWigsDefenders = BigWigs:NewModule(boss)
BigWigsDefenders.zonename = AceLibrary("Babble-Zone-2.2")["Ahn'Qiraj"]
BigWigsDefenders.enabletrigger = boss
BigWigsDefenders.toggleoptions = { "plagueyou", "plagueother", "icon", -1, "thunderclap", "explode", "enrage", "bosskill"}
BigWigsDefenders.revision = tonumber(string.sub("$Revision: 17584 $", 12, -3))
------------------------------
-- Initialization --
------------------------------
function BigWigsDefenders:OnEnable()
self:RegisterEvent("CHAT_MSG_SPELL_PERIODIC_CREATURE_BUFFS")
self:RegisterEvent("CHAT_MSG_SPELL_CREATURE_VS_CREATURE_BUFF")
self:RegisterEvent("CHAT_MSG_SPELL_PERIODIC_SELF_DAMAGE", "CheckPlague")
self:RegisterEvent("CHAT_MSG_SPELL_PERIODIC_FRIENDLYPLAYER_DAMAGE", "CheckPlague")
self:RegisterEvent("CHAT_MSG_SPELL_PERIODIC_PARTY_DAMAGE", "CheckPlague")
self:RegisterEvent("CHAT_MSG_SPELL_CREATURE_VS_CREATURE_DAMAGE", "Thunderclap")
self:RegisterEvent("CHAT_MSG_SPELL_CREATURE_VS_PARTY_DAMAGE", "Thunderclap")
self:RegisterEvent("CHAT_MSG_SPELL_CREATURE_VS_SELF_DAMAGE", "Thunderclap")
self:RegisterEvent("CHAT_MSG_COMBAT_HOSTILE_DEATH")
self:RegisterEvent("BigWigs_RecvSync")
self:TriggerEvent("BigWigs_ThrottleSync", "DefenderEnrage", 10)
self:TriggerEvent("BigWigs_ThrottleSync", "DefenderExplode", 10)
self:TriggerEvent("BigWigs_ThrottleSync", "DefenderThunderclap", 6)
end
------------------------------
-- Event Handlers --
------------------------------
function BigWigsDefenders:CHAT_MSG_COMBAT_HOSTILE_DEATH(msg)
if msg == string.format(UNITDIESOTHER, boss) then
self.core:ToggleModuleActive(self, false)
end
end
function BigWigsDefenders:BigWigs_RecvSync(sync, rest, nick)
if sync == "DefenderExplode" and self.db.profile.explode then
self:TriggerEvent("BigWigs_Message", L["explodewarn"], "Important")
self:TriggerEvent("BigWigs_StartBar", self, L["explodewarn"], 6, "\\Interface\\Icons\\Spell_Fire_SelfDestruct")
elseif sync == "DefenderEnrage" and self.db.profile.enrage then
self:TriggerEvent("BigWigs_Message", L["enragewarn"], "Important")
elseif sync == "DefenderThunderclap" and self.db.profile.thunderclap then
self:TriggerEvent("BigWigs_Message", L["thunderclapwarn"], "Important")
end
end
function BigWigsDefenders:CHAT_MSG_SPELL_PERIODIC_CREATURE_BUFFS(msg)
if msg == L["explodetrigger"] then
self:TriggerEvent("BigWigs_SendSync", "DefenderExplode")
elseif msg == L["enragetrigger"] then
self:TriggerEvent("BigWigs_SendSync", "DefenderEnrage")
end
end
function BigWigsDefenders:CHAT_MSG_SPELL_CREATURE_VS_CREATURE_BUFF(msg)
if not self.db.profile.summon then return end
if msg == L["summonguardtrigger"] then
self:TriggerEvent("BigWigs_Message", L["summonguardwarn"], "Attention")
elseif msg == L["summonwarriortrigger"] then
self:TriggerEvent("BigWigs_Message", L["summonwarriorwarn"], "Attention")
end
end
function BigWigsDefenders:CheckPlague(msg)
local _,_, pplayer, ptype = string.find(msg, L["plaguetrigger"])
if pplayer then
if self.db.profile.plagueyou and pplayer == L["plagueyou"] then
self:TriggerEvent("BigWigs_Message", L["plagueyouwarn"], "Personal", true)
self:TriggerEvent("BigWigs_Message", UnitName("player") .. L["plaguewarn"], "Attention", nil, nil, true)
elseif self.db.profile.plagueother then
self:TriggerEvent("BigWigs_Message", pplayer .. L["plaguewarn"], "Attention")
self:TriggerEvent("BigWigs_SendTell", pplayer, L["plagueyouwarn"])
end
if self.db.profile.icon then
self:TriggerEvent("BigWigs_SetRaidIcon", pplayer)
end
end
end
function BigWigsDefenders:Thunderclap(msg)
if string.find(msg, L["thunderclaptrigger"]) then
self:TriggerEvent("BigWigs_SendSync", "DefenderThunderclap")
end
end