-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathOssirian.lua
208 lines (168 loc) · 7.32 KB
/
Ossirian.lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
------------------------------
-- Are you local? --
------------------------------
local boss = AceLibrary("Babble-Boss-2.2")["Ossirian the Unscarred"]
local L = AceLibrary("AceLocale-2.2"):new("BigWigs"..boss)
----------------------------
-- Localization --
----------------------------
L:RegisterTranslations("enUS", function() return {
cmd = "Ossirian",
supreme_cmd = "supreme",
supreme_name = "Supreme Alert",
supreme_desc = "Warn for Supreme Mode",
debuff_cmd = "debuff",
debuff_name = "Debuff Alert",
debuff_desc = "Warn for Defuff",
supremetrigger = "Ossirian the Unscarred gains Strength of Ossirian.",
supremewarn = "Ossirian Supreme Mode!",
supremedelaywarn = "Supreme in %d seconds!",
debufftrigger = "^Ossirian the Unscarred is afflicted by (.+) Weakness%.$",
debuffwarn = "Ossirian now weak to %s!",
bartext = "Supreme",
expose = "Expose",
["Shadow"] = true,
["Fire"] = true,
["Frost"] = true,
["Nature"] = true,
["Arcane"] = true,
} end )
L:RegisterTranslations("frFR", function() return {
supreme_name = "Alerte Mode Supr\195\170me",
supreme_desc = "Pr\195\169viens lorsque Ossirian passe en mode supr\195\170me.",
debuff_name = "Sensibilit\195\169s",
debuff_desc = "Pr\195\169viens lorsque Ossirian change de Sensibilit\195\169.",
supremetrigger = "Ossirian l'Intouch\195\169 gagne Force d'Ossirian.",
debufftrigger = "^Ossirian l'Intouch\195\169 subit les effets de (.+)%.$",
supremewarn = "Ossirian est en mode Supr\195\170me !",
debuffwarn = "%s pour 45 secondes !",
supremedelaywarn = "Supr\195\170me dans %d secondes !",
bartext = "Supr\195\170me",
["Shadow"] = "Sensibilit\195\169 \195\160 l'Ombre",
["Fire"] = "Sensibilit\195\169 au Feu",
["Frost"] = "Sensibilit\195\169 au Givre",
["Nature"] = "Sensibilit\195\169 \195\160 la Nature",
["Arcane"] = "Sensibilit\195\169 aux Arcanes",
} end )
L:RegisterTranslations("deDE", function() return {
supreme_name = "St\195\164rke des Ossirian",
supreme_desc = "Warnung vor St\195\164rke des Ossirian.",
debuff_name = "Debuff",
debuff_desc = "Warnung vor Debuff.",
supremetrigger = "Ossirian der Narbenlose bekommt 'St\195\164rke des Ossirian'.",
supremewarn = "St\195\164rke des Ossirian!",
supremedelaywarn = "St\195\164rke des Ossirian in %d Sekunden!",
debufftrigger = "Ossirian der Narbenlose ist von (.*)schw\195\164che betroffen%.$",
debuffwarn = "Ossirian f\195\188r 45 Sekunden anf\195\164llig gegen: %s",
bartext = "St\195\164rke des Ossirian",
expose = "Schw\195\164che",
["Shadow"] = "Schatten",
["Fire"] = "Feuer",
["Frost"] = "Frost",
["Nature"] = "Natur",
["Arcane"] = "Arkan",
} end )
L:RegisterTranslations("zhCN", function() return {
supreme_name = "无敌警报",
supreme_desc = "奥斯里安进入无敌状态时发出警报",
debuff_name = "虚弱警报",
debuff_desc = "奥斯里安受到虚弱效果影响时发出警报",
supremetrigger = "无疤者奥斯里安获得了奥斯里安之力的效果。",
supremewarn = "无疤者奥斯里安无敌了!速退!",
supremedelaywarn = "%d秒后奥斯里安无敌",
debufftrigger = "^无疤者奥斯里安受到了(.+)虚弱效果的影响。",
debuffwarn = "奥斯里安新法术弱点: %s",
bartext = "无敌",
expose = "我……败……了。",
["Shadow"] = "暗影",
["Fire"] = "火焰",
["Frost"] = "冰霜",
["Nature"] = "自然",
["Arcane"] = "奥术",
} end )
L:RegisterTranslations("zhTW", function() return {
-- Ossirian the Unscarred 無疤者奧斯里安
supreme_name = "無敵警報",
supreme_desc = "無疤者奧斯里安進入無敵狀態時發出警報",
debuff_name = "虛弱警報",
debuff_desc = "無疤者奧斯里安受到虛弱效果影響時發出警報",
supremetrigger = "無疤者奧斯里安獲得了奧斯里安之力的效果。",
supremewarn = "已經進入了無敵模式!",
supremedelaywarn = "%d 秒後無敵!",
debufftrigger = "^無疤者奧斯里安受到(.+)虛弱的傷害",
debuffwarn = "抗性虛弱 45 秒 : %s - DPS全開!",
bartext = "無敵",
expose = "我...已...失敗。",
["Shadow"] = "暗影",
["Fire"] = "火焰",
["Frost"] = "冰霜",
["Nature"] = "自然",
["Arcane"] = "祕法",
} end )
L:RegisterTranslations("koKR", function() return {
supreme_name = "무적 경고",
supreme_desc = "무적 모드에 대한 경고",
debuff_name = "약화마법 경고",
debuff_desc = "약화마법에 대한 경고",
supremetrigger = "무적의 오시리안|1이;가; 오시리안의 힘 효과를 얻었습니다.",
supremewarn = "오시리안 무적 상태!",
supremedelaywarn = "%d초후 무적 상태 돌입!",
debufftrigger = "무적의 오시리안|1이;가; (.+) 약점에 걸렸습니다.",
debuffwarn = "오시리안이 %s 계열 마법에 약해졌습니다.",
bartext = "무적 상태",
expose = "노출", -- CHECK
["Shadow"] = "암흑",
["Fire"] = "화염",
["Frost"] = "냉기",
["Nature"] = "자연",
["Arcane"] = "비전",
} end )
----------------------------------
-- Module Declaration --
----------------------------------
BigWigsOssirian = BigWigs:NewModule(boss)
BigWigsOssirian.zonename = AceLibrary("Babble-Zone-2.2")["Ruins of Ahn'Qiraj"]
BigWigsOssirian.enabletrigger = boss
BigWigsOssirian.bossSync = "Ossirian"
BigWigsOssirian.toggleoptions = {"supreme", "debuff", "bosskill"}
BigWigsOssirian.revision = tonumber(string.sub("$Revision: 17973 $", 12, -3))
------------------------------
-- Initialization --
------------------------------
function BigWigsOssirian:OnEnable()
self.started = nil
self:RegisterEvent("CHAT_MSG_SPELL_PERIODIC_CREATURE_BUFFS")
self:RegisterEvent("CHAT_MSG_SPELL_PERIODIC_CREATURE_DAMAGE")
self:RegisterEvent("BigWigs_RecvSync")
self:TriggerEvent("BigWigs_ThrottleSync", "OssirianWeakness", 10)
end
function BigWigsOssirian:CHAT_MSG_SPELL_PERIODIC_CREATURE_BUFFS( msg )
if self.db.profile.supreme and arg1 == L["supremetrigger"] then
self:TriggerEvent("BigWigs_Message", L["supremewarn"], "Attention")
end
end
function BigWigsOssirian:CHAT_MSG_SPELL_PERIODIC_CREATURE_DAMAGE( msg )
local _, _, debuffName = string.find(msg, L["debufftrigger"])
if debuffName and debuffName ~= L["expose"] and L:HasReverseTranslation(debuffName) then
self:TriggerEvent("BigWigs_SendSync", "OssirianWeakness "..L:GetReverseTranslation(debuffName))
end
end
function BigWigsOssirian:BigWigs_RecvSync(sync, debuffKey)
if not self.started and sync == "BossEngaged" and rest == self.bossSync then
self:StartFight()
end
if sync ~= "OssirianWeakness" or not debuffKey or not L:HasTranslation(debuffKey) then return end
if self.db.profile.debuff then
self:TriggerEvent("BigWigs_Message", string.format(L["debuffwarn"], L[debuffKey]), "Important")
end
self:CancelScheduledEvent("bwossiriansupreme1")
self:CancelScheduledEvent("bwossiriansupreme2")
self:CancelScheduledEvent("bwossiriansupreme3")
self:TriggerEvent("BigWigs_StopBar", self, L["bartext"])
if self.db.profile.supreme then
self:ScheduleEvent("bwossiriansupreme1", "BigWigs_Message", 30, string.format(L["supremedelaywarn"], 15), "Attention")
self:ScheduleEvent("bwossiriansupreme2", "BigWigs_Message", 35, string.format(L["supremedelaywarn"], 10), "Urgent")
self:ScheduleEvent("bwossiriansupreme3", "BigWigs_Message", 40, string.format(L["supremedelaywarn"], 5), "Important")
self:TriggerEvent("BigWigs_StartBar", self, L["bartext"], 45, "Interface\\Icons\\Spell_Shadow_CurseOfTounges")
end
end