vanilla-wow-addons – Rev 1

Subversion Repositories:
Rev:
------------------------------
--      Are you local?      --
------------------------------

local boss = AceLibrary("Babble-Boss-2.2")["The Prophet Skeram"]
local L = AceLibrary("AceLocale-2.2"):new("BigWigs"..boss)

----------------------------
--      Localization      --
----------------------------

L:RegisterTranslations("enUS", function() return {
        aetrigger = "The Prophet Skeram begins to cast Arcane Explosion.",
        mctrigger = "The Prophet Skeram begins to cast True Fulfillment.",
        splittrigger = "The Prophet Skeram casts Summon Images.",
        aewarn = "Casting Arcane Explosion!",
        mcwarn = "Casting Mind Control!",
        mcplayer = "^([^%s]+) ([^%s]+) afflicted by True Fulfillment.$",
        mcplayerwarn = "%s is mindcontrolled!",
        mcbar = "MC: %s",
        mcyou = "You",
        mcare = "are",
        
        splitwarn = "Splitting!",

        cmd = "Skeram",
        mc_cmd = "mc",
        mc_name = "Mind Control Alert",
        mc_desc = "Warn for Mind Control",

        ae_cmd = "ae",
        ae_name = "Arcane Explosion Alert",
        ae_desc = "Warn for Arcane Explosion",
        
--      split_cmd = "split",
--      split_name = "Split Alert",
--      split_desc = "Warn before Create Image",
} end )

L:RegisterTranslations("frFR", function() return {
        aetrigger = "Le Proph\195\168te Skeram commence \195\160 lancer Explosion des arcanes.",
        mctrigger = "Le Proph\195\168te Skeram commence \195\160 lancer Accomplissement v\195\169ritable.",
        splittrigger = "Le Proph\195\168te Skeram lance Invocation des Images.",
        aewarn = "Incantation d'Explosion des arcanes !",
        mcwarn = "Incantation de Controle Mental !",
        mcplayer = "([^%s]+) ([^%s]+) les effets de Accomplissement v\195\169ritable%.",
        mcplayerwarn = "%s est sous controle mental !",
        mcbar = "CM: %s",
        mcyou = "Vous",
        mcare = "subissez",
        
        splitwarn = "D\195\169multiplication !",

        mc_name = "Alerte Contr\195\180le mental",
        mc_desc = "Pr\195\169viens en cas de contr\195\180le mental.",

        ae_name = "Alerte Explosion des arcanes",
        ae_desc = "Pr\195\169viens lorsque Skeram lance Explosion des arcanes.",
} end )

L:RegisterTranslations("deDE", function() return {
        aetrigger = "Der Prophet Skeram beginnt Arkane Explosion zu wirken.",
        mctrigger = "Der Prophet Skeram beginnt Wahre Erf\195\188llung zu wirken.",
        splittrigger = "Der Prophet Skeram wirkt Abbilder beschw\195\182ren.",
        aewarn = "Arkane Explosion!",
        mcwarn = "Gedankenkontrolle!",
        mcplayer = "^([^%s]+) ([^%s]+) von Wahre Erf\195\188llung betroffen.$",
        mcplayerwarn = "%s steht unter Gedankenkontrolle!",
        mcyou = "Ihr",
        mcare = "seid",
        
        splitwarn = "Abbilder!",

        mc_name = "Gedankenkontrolle",
        mc_desc = "Warnung, wenn jemand unter Gedankenkontrolle steht.",

        ae_name = "Arkane Explosion",
        ae_desc = "Warnung vor Arkaner Explosion.",
        
--      split_name = "Abbilder",
--      split_desc = "Warnung, wenn die Abbilder von Prophet Skeram erscheinen.",
} end )

L:RegisterTranslations("zhCN", function() return {
        aetrigger = "预言者斯克拉姆开始施放魔爆术。",
        mctrigger = "预言者斯克拉姆开始施放充实。",
        splittrigger = "预言者斯克拉姆施放了召唤幻象。",
        aewarn = "正在施放魔爆术 - 迅速打断!",
        mcwarn = "正在施放充实 - 准备变羊!",
        mcplayer = "^(.+)受(.+)了充实效果的影响。",
        mcplayerwarn = "%s 被控制了!变羊!恐惧!",
        mcbar = "控制:%s",
        mcyou = "你",
        mcare = "到",
        
        splitwarn = "即将分裂!",
        
        mc_name = "精神控制警报",
        mc_desc = "精神控制警报",
        
        ae_name = "魔爆术警报",
        ae_desc = "魔爆术警报",
        
--      split_name = "分裂警报",
--      split_desc = "预言者斯克拉姆即将复制镜像时发出警报",
} end )


L:RegisterTranslations("zhTW", function() return {
        -- The Prophet Skeram 預言者斯克拉姆
        aetrigger = "預言者斯克拉姆開始施放魔爆術。",
        mctrigger = "預言者斯克拉姆開始施放充實。",
        splittrigger = "預言者斯克拉姆施放了召喚幻象。",
        aewarn = "施放魔爆術 - 迅速打斷!",
        mcwarn = "施放充實 - 準備變羊!",
        mcplayer = "^(.+)受到(.*)充實",
        mcplayerwarn = "%s 被心靈控制,法師快變羊!",
        mcbar = "MC: %s",
        mcyou = "你",
        mcare = "了",
        
        splitwarn = "即將分裂!",
        
        mc_name = "精神控制警報",
        mc_desc = "預言者斯克拉姆進行精神控制時發出警報",
        
        ae_name = "魔爆術警報",
        ae_desc = "預言者斯克拉姆施放魔爆術時發出警報",
        
--      split_name = "幻影分身警報",
--      split_desc = "預言者斯克拉姆施放幻影分身時發出警報",
} end )

L:RegisterTranslations("koKR", function() return {
        aetrigger = "예언자 스케람|1이;가; 신비한 폭발|1을;를; 시전합니다.",
        mctrigger = "예언자 스케람|1이;가; 예언 실현|1을;를; 시전합니다.",
        splittrigger = "예언자 스케람|1이;가; 환영 소환|1을;를; 시전합니다.", -- By turtl
        aewarn = "신비한 폭발 시전 - 시전 방해!",
        mcwarn = "예언 실현 시전 - 양변 준비!",
        mcplayer = "^([^|;%s]*)(.*)예언 실현에 걸렸습니다%.$", --"(.*)예언 실현에 걸렸습니다.",
        mcplayerwarn = "%s 님이 정신지배되었습니다. 양변! 공포!",
        mcbar = "예언: %s",
        mcyou = "",
        mcare = "",

        splitwarn = "곧 분리 됩니다.!! 경고!!",

        mc_name = "정신 지배 경고",
        mc_desc = "정신 지배에 대한 경고",

        ae_name = "신비한 폭발 경고",
        ae_desc = "신비한 폭발에 대한 경고",
        
--      split_name = "분리 경고",
--      split_desc = "이미지 생성 전 경고",
} end )

----------------------------------
--      Module Declaration      --
----------------------------------

BigWigsSkeram = BigWigs:NewModule(boss)
BigWigsSkeram.zonename = AceLibrary("Babble-Zone-2.2")["Ahn'Qiraj"]
BigWigsSkeram.enabletrigger = boss
BigWigsSkeram.toggleoptions = {"ae", "mc", "bosskill"}
BigWigsSkeram.revision = tonumber(string.sub("$Revision: 16639 $", 12, -3))

------------------------------
--      Initialization      --
------------------------------

function BigWigsSkeram:OnEnable()
        self:RegisterEvent("CHAT_MSG_SPELL_CREATURE_VS_CREATURE_DAMAGE")
        self:RegisterEvent("CHAT_MSG_SPELL_PERIODIC_HOSTILEPLAYER_DAMAGE")
        self:RegisterEvent("CHAT_MSG_COMBAT_HOSTILE_DEATH", "GenericBossDeath")
end

------------------------------
--      Event Handlers      --
------------------------------

-- Note that we do not sync the MC at the moment, since you really only care
-- about people that are MC'ed close to you anyway.
function BigWigsSkeram:CHAT_MSG_SPELL_PERIODIC_HOSTILEPLAYER_DAMAGE(msg)
        local _,_, player, type = string.find(msg, L["mcplayer"])
        if player and type then
                if player == L["mcyou"] and type == L["mcare"] then
                        player = UnitName("player")
                end
                if self.db.profile.mc then
                        self:TriggerEvent("BigWigs_Message", string.format(L["mcplayerwarn"], player), "Important")
                        self:TriggerEvent("BigWigs_StartBar", self, string.format(L["mcbar"], player), 20, "Interface\\Icons\\Spell_Shadow_ShadowWordDominate")
                end
        end
end

function BigWigsSkeram:CHAT_MSG_SPELL_CREATURE_VS_CREATURE_DAMAGE(msg)
        if msg == L["aetrigger"] and self.db.profile.ae then
                self:TriggerEvent("BigWigs_Message", L["aewarn"], "Urgent")
        elseif msg == L["mctrigger"] and self.db.profile.mc then
                self:TriggerEvent("BigWigs_Message", L["mcwarn"], "Urgent")
        elseif msg == L["splittrigger"] and self.db.profile.split then
                self:TriggerEvent("BigWigs_Message", L["splitwarn"], "Important")
        end
end