Skip to content

Commit 4c09d92

Browse files
committed
Merge branch 'p4-initial-triggers' of github.com:OverlayPlugin/cactbot into p4-initial-triggers
2 parents bba9cbc + bd0ebf1 commit 4c09d92

21 files changed

Lines changed: 3060 additions & 85 deletions

File tree

resources/util.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -377,6 +377,10 @@ const hdgTo4DirNum = (heading: number): number => {
377377
return (Math.round(2 - heading * 2 / Math.PI) % 4 + 4) % 4;
378378
};
379379

380+
const outputFrom16DirNum = (dirNum: number): DirectionOutput16 => {
381+
return output16Dir[dirNum] ?? 'unknown';
382+
};
383+
380384
const outputFrom8DirNum = (dirNum: number): DirectionOutput8 => {
381385
return output8Dir[dirNum] ?? 'unknown';
382386
};
@@ -489,8 +493,10 @@ export const Directions = {
489493
hdgTo16DirNum: hdgTo16DirNum,
490494
hdgTo8DirNum: hdgTo8DirNum,
491495
hdgTo4DirNum: hdgTo4DirNum,
496+
outputFrom16DirNum: outputFrom16DirNum,
492497
outputFrom8DirNum: outputFrom8DirNum,
493498
outputFromCardinalNum: outputFromCardinalNum,
499+
outputFromIntercardNum: outputFromIntercardNum,
494500
combatantStatePosTo8Dir: (
495501
combatant: PluginCombatantState,
496502
centerX: number,
@@ -541,6 +547,10 @@ export const Directions = {
541547
const dirNum = hdgTo8DirNum(heading);
542548
return outputFrom8DirNum(dirNum);
543549
},
550+
xyTo16DirOutput: (x: number, y: number, centerX: number, centerY: number): DirectionOutput16 => {
551+
const dirNum = xyTo16DirNum(x, y, centerX, centerY);
552+
return outputFrom16DirNum(dirNum);
553+
},
544554
xyTo8DirOutput: (x: number, y: number, centerX: number, centerY: number): DirectionOutput8 => {
545555
const dirNum = xyTo8DirNum(x, y, centerX, centerY);
546556
return outputFrom8DirNum(dirNum);

test/unittests/compile_test.ts

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,26 +15,20 @@ describe('compile test', () => {
1515
it('npm package should compile successfully', async function() {
1616
// eslint-disable-next-line @typescript-eslint/no-invalid-this
1717
this.timeout(30000); // allow a 30s timeout
18-
let execError = false;
1918
let output = '';
19+
let exitCode = -1;
2020
try {
2121
process.chdir(projectRoot);
2222
fs.rmSync('dist', { recursive: true, force: true });
23-
await exec('npx tsc --declaration', [], {
23+
exitCode = await exec('npx tsc --declaration', [], {
2424
listeners: {
2525
stdout: (data) => output += data.toString(),
26-
stderr: (data) => {
27-
execError = true;
28-
output += data.toString();
29-
},
26+
stderr: (data) => output += data.toString(),
3027
},
3128
});
32-
if (execError)
33-
throw output;
3429
} catch (err) {
3530
console.error(err);
36-
execError = true;
3731
}
38-
assert(execError === false, output);
32+
assert(exitCode === 0, output);
3933
});
4034
});

ui/config/config.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,7 @@ export const kPrefixToCategory = {
149149
de: 'Benutzerdefinierte Entwickler Trigger',
150150
cn: '自定义开发者触发器',
151151
ko: '커스텀 개발자 트리거',
152+
tc: '自定義開發者觸發器',
152153
},
153154
'user': {
154155
en: 'User Triggers',

ui/raidboss/data/02-arr/dungeon/aurum_vale.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ const triggerSet: TriggerSet<Data> = {
1313
de: 'Vor der 7.4 Überarbeitung',
1414
cn: '7.4改版前',
1515
ko: '7.4 개편 전',
16+
tc: '7.4改版前',
1617
},
1718
triggers: [
1819
{

ui/raidboss/data/04-sb/dungeon/shisui_of_the_violet_tides.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ const triggerSet: TriggerSet<Data> = {
1414
de: 'Vor der 7.5 Überarbeitung',
1515
cn: '7.5改版前',
1616
ko: '7.5 개편 전',
17+
tc: '7.5改版前',
1718
},
1819
timelineFile: 'shisui_of_the_violet_tides.txt',
1920
triggers: [

ui/raidboss/data/04-sb/trial/shinryu-ex.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,7 @@ const triggerSet: TriggerSet<Data> = {
9898
de: 'Eis: Sammeln + nicht bewegen',
9999
cn: '冰: 集合 + 不要动',
100100
ko: '얼음: 모이기 + 이동 멈추기',
101+
tc: '冰: 集合 + 不要動',
101102
},
102103
},
103104
},
@@ -760,7 +761,6 @@ const triggerSet: TriggerSet<Data> = {
760761
},
761762
{
762763
'locale': 'tc',
763-
'missingTranslations': true,
764764
'replaceSync': {
765765
'Cocoon': '光繭',
766766
'Icicle': '冰柱',

ui/raidboss/data/04-sb/ultimate/ultima_weapon_ultimate.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -770,7 +770,7 @@ const triggerSet: TriggerSet<Data> = {
770770
// The two close nails are 45 degrees apart.
771771
if (next8Dir - this8Dir === 1 || this8Dir - next8Dir === 7) {
772772
const between16Dir = this8Dir * 2 + 1;
773-
const outputKey = Directions.output16Dir[between16Dir] ?? 'unknown';
773+
const outputKey = Directions.outputFrom16DirNum(between16Dir);
774774
return output.text!({ dir: output[outputKey]!() });
775775
}
776776
}

ui/raidboss/data/04-sb/ultimate/unending_coil_ultimate.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1810,7 +1810,7 @@ const triggerSet: TriggerSet<Data> = {
18101810
const towerDir = towersMap[(wantedIdx + naelIdx) % 8];
18111811

18121812
const myTowerDir = towerDir !== undefined
1813-
? Directions.output16Dir[towerDir] ?? 'unknown'
1813+
? Directions.outputFrom16DirNum(towerDir)
18141814
: 'unknown';
18151815

18161816
return output.tower!({

ui/raidboss/data/07-dt/alliance/windurst-third-walk.ts

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -259,6 +259,7 @@ const promathiaExplosionOutputStrings: OutputStrings = {
259259
avoidExplosions: {
260260
en: ' Avoid Puddle Explosions',
261261
cn: ' 躲避爆炸圈圈',
262+
ko: ' 장판 폭발 피하기',
262263
},
263264
} as const;
264265

@@ -392,19 +393,23 @@ const triggerSet: TriggerSet<Data> = {
392393
combo: {
393394
en: '${dir} + ${prox}',
394395
cn: '${dir} + ${prox}',
396+
ko: '${dir} + ${prox}',
395397
},
396398
...cardDirToOutputStrings,
397399
close: {
398400
en: 'Get close',
399401
cn: '靠近',
402+
ko: '가까이 붙기',
400403
},
401404
far: {
402405
en: 'Get far',
403406
cn: '远离',
407+
ko: '멀리 떨어지기',
404408
},
405409
unknown: {
406410
en: 'Avoid rock crusher',
407411
cn: '躲避岩石挤压',
412+
ko: '바위 압착 피하기',
408413
},
409414
},
410415
},
@@ -486,11 +491,13 @@ const triggerSet: TriggerSet<Data> = {
486491
combo: {
487492
en: 'Move ${dir} + ${under}',
488493
cn: '去${dir} + ${under}',
494+
ko: '${dir}으로 이동 + ${under}',
489495
},
490496
under: Outputs.getUnder,
491497
unknown: {
492498
en: 'Move to next circle',
493499
cn: '去下一个圈圈',
500+
ko: '다음 원으로 이동',
494501
},
495502
...cardDirToOutputStrings,
496503
},
@@ -535,6 +542,7 @@ const triggerSet: TriggerSet<Data> = {
535542
proxAOE: {
536543
en: 'Avoid Proximity AoEs',
537544
cn: '远离距离衰减 AOE',
545+
ko: '거리 감쇠 장판 피하기',
538546
},
539547
},
540548
},
@@ -567,6 +575,7 @@ const triggerSet: TriggerSet<Data> = {
567575
knockWest: {
568576
en: 'Knockback west into wall',
569577
cn: '向左击退至墙',
578+
ko: '서쪽 벽으로 넉백',
570579
},
571580
},
572581
},
@@ -580,6 +589,7 @@ const triggerSet: TriggerSet<Data> = {
580589
knockEast: {
581590
en: 'Knockback east into wall',
582591
cn: '向右击退至墙',
592+
ko: '동쪽 벽으로 넉백',
583593
},
584594
},
585595
},
@@ -780,17 +790,20 @@ const triggerSet: TriggerSet<Data> = {
780790
pinwheel: {
781791
en: 'Pinwheel: Lean ${rot} close',
782792
cn: '旋转焰火:向${rot}侧靠近',
793+
ko: '회전: ${rot}쪽으로 가까이 붙기',
783794
},
784795
cardSafe: {
785796
en: 'Go ${dir} close',
786797
cn: '去${dir}靠近',
798+
ko: '${dir} 가까이 붙기',
787799
},
788800
...cardDirToOutputStrings,
789801
cw: Outputs.clockwise,
790802
ccw: Outputs.counterclockwise,
791803
unknownSpear: {
792804
en: 'Avoid spear triangles',
793805
cn: '躲避旋转扇形',
806+
ko: '회전하는 부채꼴 피하기',
794807
},
795808
},
796809
},
@@ -825,6 +838,7 @@ const triggerSet: TriggerSet<Data> = {
825838
noShields: {
826839
en: 'Attack only unshielded Gordius',
827840
cn: '只攻击无护盾的戈耳狄系统',
841+
ko: '보호막 없는 시스템만 공격',
828842
},
829843
},
830844
},
@@ -922,10 +936,12 @@ const triggerSet: TriggerSet<Data> = {
922936
wheelLasers: {
923937
en: '${out} + ${behind} => avoid lasers',
924938
cn: '${out} + ${behind} => 躲避激光',
939+
ko: '${out} + ${behind} => 레이저 피하기',
925940
},
926941
wheelBlessing: {
927942
en: '${out} + ${dir}',
928943
cn: '${out} + ${dir}',
944+
ko: '${out} + ${dir}',
929945
},
930946
behind: Outputs.getBehind,
931947
left: Outputs.left,
@@ -964,6 +980,7 @@ const triggerSet: TriggerSet<Data> = {
964980
bastionLasers: {
965981
en: '${behind} + ${under} => avoid lasers',
966982
cn: '${behind} + ${under} => 躲避激光',
983+
ko: '${behind} + ${under} => 레이저 피하기',
967984
},
968985
bastionBlessing: {
969986
en: '${under} + ${dir}',
@@ -1100,6 +1117,7 @@ const triggerSet: TriggerSet<Data> = {
11001117
avoidAuroral: {
11011118
en: 'Go To Safe Corner',
11021119
cn: '前往安全角落',
1120+
ko: '안전한 구석으로 이동',
11031121
},
11041122
},
11051123
},
@@ -1117,6 +1135,7 @@ const triggerSet: TriggerSet<Data> = {
11171135
avoidBeleaguer: {
11181136
en: 'Dodge 2-1',
11191137
cn: '躲避 2-1',
1138+
ko: '2-1 피하기',
11201139
},
11211140
},
11221141
},
@@ -1130,6 +1149,7 @@ const triggerSet: TriggerSet<Data> = {
11301149
aoePlusStun: {
11311150
en: 'AoE + stun',
11321151
cn: 'AoE + 眩晕',
1152+
ko: '전체공격 + 기절',
11331153
},
11341154
},
11351155
},
@@ -1312,6 +1332,7 @@ const triggerSet: TriggerSet<Data> = {
13121332
goDown: {
13131333
en: 'Go lower platform',
13141334
cn: '去下平台',
1335+
ko: '아래 플랫폼으로 이동',
13151336
},
13161337
},
13171338
},
@@ -1324,6 +1345,7 @@ const triggerSet: TriggerSet<Data> = {
13241345
goUp: {
13251346
en: 'Go upper platform',
13261347
cn: '去上平台',
1348+
ko: '위 플랫폼으로 이동',
13271349
},
13281350
},
13291351
},
@@ -1338,6 +1360,7 @@ const triggerSet: TriggerSet<Data> = {
13381360
lightLater: {
13391361
en: 'Light safe later',
13401362
cn: '稍后光安全',
1363+
ko: '나중에 빛 안전',
13411364
},
13421365
},
13431366
},
@@ -1352,6 +1375,7 @@ const triggerSet: TriggerSet<Data> = {
13521375
darkLater: {
13531376
en: 'Dark safe later',
13541377
cn: '稍后暗安全',
1378+
ko: '나중에 어둠 안전',
13551379
},
13561380
},
13571381
},
@@ -1370,14 +1394,17 @@ const triggerSet: TriggerSet<Data> = {
13701394
upLightSafe: {
13711395
en: 'Up on light platform',
13721396
cn: '去上光平台',
1397+
ko: '위쪽 빛 플랫폼으로 이동',
13731398
},
13741399
downDarkSafe: {
13751400
en: 'Down on dark platform',
13761401
cn: '去下暗平台',
1402+
ko: '아래쪽 어둠 플랫폼으로 이동',
13771403
},
13781404
unknownSafe: {
13791405
en: 'Match platform + debuff color',
13801406
cn: '去 debuff 同色平台',
1407+
ko: '플랫폼과 디버프 색 맞추기',
13811408
},
13821409
},
13831410
},
@@ -1418,6 +1445,7 @@ const triggerSet: TriggerSet<Data> = {
14181445
goUp: {
14191446
en: 'Go upper platform',
14201447
cn: '去上平台',
1448+
ko: '위 플랫폼으로 이동',
14211449
},
14221450
},
14231451
},
@@ -1515,6 +1543,7 @@ const triggerSet: TriggerSet<Data> = {
15151543
avoidSwords: {
15161544
en: 'Avoid sword cones',
15171545
cn: '躲避扇形剑击',
1546+
ko: '검 부채꼴 피하기',
15181547
},
15191548
},
15201549
},
@@ -1910,16 +1939,18 @@ const triggerSet: TriggerSet<Data> = {
19101939
},
19111940
{
19121941
'locale': 'ko',
1913-
'missingTranslations': true,
19141942
'replaceSync': {
19151943
'Alexander Resurrected': '부활한 알렉산더',
19161944
'Arcane Sphere': '신비로운 구체',
1945+
'Aw\'aern': '오아언',
19171946
'Empty Thinker': '허무의 사색가',
19181947
'Empty Wanderer': '허무의 방랑자',
19191948
'Empty Weeper': '허무의 통곡자',
19201949
'Gordius System': '고르디우스 시스템',
19211950
'Hollow King': '공허의 왕',
1951+
'Medusa Swarmsinger': '메두사 군단가수',
19221952
'Memory Receptacle': '기억의 그릇',
1953+
'Nemean Lion': '네메아 사자',
19231954
'Promathia': '프로마시아',
19241955
'Shantotto the Demon': '악마 샨토토',
19251956
'Shinryu Paradox': '신룡',
@@ -1958,6 +1989,7 @@ const triggerSet: TriggerSet<Data> = {
19581989
'Cataclysmic Blade': '파멸의 칼날',
19591990
'Cataclysmic Vortex': '파멸의 소용돌이',
19601991
'Celestial Trail': '천계의 궤적',
1992+
'Circuit Shock': '환형 방전',
19611993
'Circumscribed Fire': '멀어지면 파이어',
19621994
'Cloak of Twilight': '황혼 망토',
19631995
'Comet': '혜성',

ui/raidboss/data/07-dt/raid/r12s.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2967,7 +2967,7 @@ const triggerSet: TriggerSet<Data> = {
29672967
return output.getBehind!();
29682968

29692969
const dirNum = (Directions.hdgTo16DirNum(actor.heading) + 8) % 16;
2970-
const dir = Directions.output16Dir[dirNum] ?? 'unknown';
2970+
const dir = Directions.outputFrom16DirNum(dirNum);
29712971
return output.getBehindDir!({
29722972
dir: output[dir]!(),
29732973
mech: output.getBehind!(),
@@ -3164,7 +3164,7 @@ const triggerSet: TriggerSet<Data> = {
31643164
// Adding 16 incase of negative values
31653165
const newDirNum = (getNewDirNum(dirNum, matches.id) + 16 + 8) % 16;
31663166

3167-
const dir = Directions.output16Dir[newDirNum] ?? 'unknown';
3167+
const dir = Directions.outputFrom16DirNum(newDirNum);
31683168
return output.getBehindDir!({
31693169
dir: output[dir]!(),
31703170
mech: output.getBehind!(),
@@ -4264,7 +4264,7 @@ const triggerSet: TriggerSet<Data> = {
42644264
return output.getBehind!();
42654265

42664266
const dirNum = (Directions.hdgTo16DirNum(actor.heading) + 8) % 16;
4267-
const dir = Directions.output16Dir[dirNum] ?? 'unknown';
4267+
const dir = Directions.outputFrom16DirNum(dirNum);
42684268
return output.getBehindDir!({
42694269
dir: output[dir]!(),
42704270
mech: output.getBehind!(),

0 commit comments

Comments
 (0)