-
Notifications
You must be signed in to change notification settings - Fork 383
/
Copy pathgolbez.ts
291 lines (284 loc) · 9.49 KB
/
golbez.ts
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
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
import Outputs from '../../../../../resources/outputs';
import { Responses } from '../../../../../resources/responses';
import { DirectionOutputCardinal, Directions } from '../../../../../resources/util';
import ZoneId from '../../../../../resources/zone_id';
import { RaidbossData } from '../../../../../types/data';
import { TriggerSet } from '../../../../../types/trigger';
export interface Data extends RaidbossData {
galeSphereShadows: DirectionOutputCardinal[];
}
const triggerSet: TriggerSet<Data> = {
id: 'TheVoidcastDais',
zoneId: ZoneId.TheVoidcastDais,
timelineFile: 'golbez.txt',
initData: () => {
return {
galeSphereShadows: [],
};
},
triggers: [
{
id: 'Golbez Terrastorm',
type: 'Ability',
netRegex: { id: '8463', source: 'Golbez', capture: false },
infoText: (_data, _matches, output) => output.text!(),
outputStrings: {
text: {
en: 'Avoid meteor',
de: 'Vermeide Meteor',
fr: 'Évitez le météore',
ja: 'メテオ回避',
cn: '远离陨石',
ko: '메테오 피하기',
},
},
},
{
id: 'Golbez Crescent Blade',
type: 'StartsUsing',
netRegex: { id: '846B', source: 'Golbez', capture: false },
response: Responses.getBehind(),
},
{
id: 'Golbez Void Meteor',
type: 'StartsUsing',
netRegex: { id: '84AC', source: 'Golbez', capture: true },
response: Responses.tankBuster(),
},
{
id: 'Golbez Binding Cold',
type: 'StartsUsing',
netRegex: { id: '84B2', source: 'Golbez', capture: false },
response: Responses.bleedAoe(),
},
{
id: 'Golbez Black Fang',
type: 'StartsUsing',
netRegex: { id: '8471', source: 'Golbez', capture: false },
response: Responses.bigAoe(),
},
{
id: 'Golbez Shadow Crescent',
type: 'StartsUsing',
netRegex: { id: '8487', source: 'Golbez', capture: false },
alertText: (_data, _matches, output) => output.text!(),
outputStrings: {
text: {
en: 'Get behind, then out',
de: 'Geh hinter, dann raus',
fr: 'Derrière puis extérieur',
ja: '後ろ => 外へ',
cn: '去背后 => 远离',
ko: '보스 뒤로 => 밖으로',
},
},
},
{
id: 'Golbez Gale Sphere Directions',
type: 'Ability',
netRegex: { id: '84(?:4F|50|51|52)', source: 'Golbez\'s Shadow', capture: true },
infoText: (data, matches, output) => {
switch (matches.id) {
case '844F':
data.galeSphereShadows.push('dirN');
break;
case '8450':
data.galeSphereShadows.push('dirE');
break;
case '8451':
data.galeSphereShadows.push('dirW');
break;
case '8452':
data.galeSphereShadows.push('dirS');
break;
}
if (data.galeSphereShadows.length < 4)
return;
const [dir1, dir2, dir3, dir4] = data.galeSphereShadows;
if (dir1 === undefined || dir2 === undefined || dir3 === undefined || dir4 === undefined)
return;
data.galeSphereShadows = [];
return output.clones!({
dir1: output[dir1]!() ?? output.unknown!(),
dir2: output[dir2]!() ?? output.unknown!(),
dir3: output[dir3]!() ?? output.unknown!(),
dir4: output[dir4]!() ?? output.unknown!(),
});
},
outputStrings: {
clones: {
en: 'Clones: ${dir1}->${dir2}->${dir3}->${dir4}',
de: 'Klone: ${dir1}->${dir2}->${dir3}->${dir4}',
fr: 'Clones : ${dir1}->${dir2}->${dir3}->${dir4}',
ja: '${dir1}->${dir2}->${dir3}->${dir4}',
cn: '分身:${dir1}->${dir2}->${dir3}->${dir4}',
ko: '분신: ${dir1}->${dir2}->${dir3}->${dir4}',
},
unknown: Outputs.unknown,
...Directions.outputStringsCardinalDir,
},
},
{
id: 'Golbez Eventide Fall',
type: 'StartsUsing',
netRegex: { id: '8482', source: 'Golbez', capture: false },
response: Responses.stackMarker(),
},
{
id: 'Golbez Immolating Shade',
type: 'StartsUsing',
netRegex: { id: '8495', source: 'Golbez' },
alertText: (data, matches, output) => {
const target = data.party.member(matches.target);
return output.text!({ player: target });
},
outputStrings: {
text: {
en: 'Out first => stack w/ ${player}',
de: 'Zuerst Raus => Sammeln mit ${player}',
fr: 'Extérieur d\'abord => package avec ${player}',
ja: '外へ => あたまわり (${player})',
cn: '远离 => 与 ${player} 分摊',
ko: '밖으로 => ${player} 쉐어',
},
},
},
],
timelineReplace: [
{
'locale': 'de',
'replaceSync': {
'Golbez': 'Golbez',
'Golbez\'s Shadow': 'Phantom-Golbez',
},
'replaceText': {
'\\(preview\\)': '(Vorschau)',
'Arctic Assault': 'Frostschuss',
'Azdaja\'s Shadow': 'Azdajas Schatten',
'Binding Cold': 'Eisfessel',
'Black Fang': 'Schwarze Fänge',
'Burning Shade': 'Brennender Schatten',
'Crescent Blade': 'Sichelstreich',
'Double Meteor': 'Doppel-Meteo',
'Eventide Fall': 'Gebündelte Abendglut',
'Explosion': 'Explosion',
'Gale Sphere': 'Windsphäre',
'Immolating Shade': 'Äschernder Schatten',
'Lingering Spark': 'Lauernder Funke',
'Rising Beacon': 'Hohes Fanal',
'Shadow Crescent': 'Schwarzer Sichelstreich',
'Terrastorm': 'Irdene Breitseite',
'Void Meteor': 'Nichts-Meteo',
'Void Stardust': 'Nichts-Sternenstaub',
},
},
{
'locale': 'fr',
'missingTranslations': true,
'replaceSync': {
'Golbez': 'Golbez',
'Golbez\'s Shadow': 'spectre de Golbez',
},
'replaceText': {
'Arctic Assault': 'Assaut arctique',
'Azdaja\'s Shadow': 'Ombre d\'Azdaja',
'Binding Cold': 'Geôle glaciale',
'Black Fang': 'Croc obscur',
'Burning Shade': 'Ombre brûlante',
'Crescent Blade': 'Lame demi-lune',
'Double Meteor': 'Météore double',
'Eventide Fall': 'Éclat crépusculaire concentré',
'Explosion': 'Explosion',
'Gale Sphere': 'Sphères de vent ténébreux',
'Immolating Shade': 'Ombre incandescente',
'Lingering Spark': 'Étincelle persistante',
'Rising Beacon': 'Flambeau ascendant',
'Shadow Crescent': 'Lame demi-lune obscure',
'Terrastorm': 'Aérolithe flottant',
'Void Meteor': 'Météore du néant',
'Void Stardust': 'Pluie de comètes du néant',
},
},
{
'locale': 'ja',
'replaceSync': {
'Golbez': 'ゴルベーザ',
'Golbez\'s Shadow': 'ゴルベーザの幻影',
},
'replaceText': {
'Arctic Assault': 'コールドブラスト',
'Azdaja\'s Shadow': '黒竜剣アジュダヤ',
'Binding Cold': '呪縛の冷気',
'Black Fang': '黒い牙',
'Burning Shade': '黒炎',
'Crescent Blade': '弦月剣',
'Double Meteor': 'ダブルメテオ',
'Eventide Fall': '集束黒竜閃',
'Explosion': '爆発',
'Gale Sphere': 'ウィンドスフィア',
'Immolating Shade': '重黒炎',
'Lingering Spark': 'ディレイスパーク',
'Rising Beacon': '昇竜烽火',
'Shadow Crescent': '弦月黒竜剣',
'Terrastorm': 'ディレイアース',
'Void Meteor': 'ヴォイド・メテオ',
'Void Stardust': 'ヴォイド・コメットレイン',
},
},
{
'locale': 'cn',
'replaceSync': {
'Golbez': '高贝扎',
'Golbez\'s Shadow': '高贝扎的幻影',
},
'replaceText': {
'\\(preview\\)': '(预览)',
'Arctic Assault': '极寒突袭',
'Azdaja\'s Shadow': '黑龙剑阿珠达雅',
'Binding Cold': '咒缚寒气',
'Black Fang': '黑牙',
'Burning Shade': '黑炎',
'Crescent Blade': '弦月剑',
'Double Meteor': '双重陨石',
'Eventide Fall': '集束黑龙闪',
'Explosion': '爆炸',
'Gale Sphere': '风晶球',
'Immolating Shade': '重黑炎',
'Lingering Spark': '迟缓电火花',
'Rising Beacon': '升龙烽火',
'Shadow Crescent': '弦月黑龙剑',
'Terrastorm': '迟缓地暴',
'Void Meteor': '虚空陨石',
'Void Stardust': '虚空彗星雨',
},
},
{
'locale': 'ko',
'replaceSync': {
'Golbez': '골베자',
'Golbez\'s Shadow': '골베자의 환영',
},
'replaceText': {
'\\(preview\\)': '(예고)',
'Arctic Assault': '냉기 작렬',
'Azdaja\'s Shadow': '흑룡검 아주다야',
'Binding Cold': '주박의 냉기',
'Black Fang': '검은 이빨',
'Burning Shade': '흑염',
'Crescent Blade': '현월검',
'Double Meteor': '더블 메테오',
'Eventide Fall': '집속 흑룡섬',
'Explosion': '폭발',
'Gale Sphere': '바람 구체',
'Immolating Shade': '중흑염',
'Lingering Spark': '잔존 벼락',
'Rising Beacon': '승룡봉화',
'Shadow Crescent': '현월 흑룡검',
'Terrastorm': '잔존 암석',
'Void Meteor': '보이드 메테오',
'Void Stardust': '보이드 혜성우',
},
},
],
};
export default triggerSet;