Skip to content

Commit 43b1b6a

Browse files
raidboss: sort r9s bat positions for consistency (#985)
When tracking the bat positions it is possible for the different lines to arrive in an arbitrary order. This results in the callout being inconsistent even when the bats are in the same position. For example it might call out "away from bats S/N" instead of always consistently saying "away from bats N/S". Use sort() to make sure the bat callouts are consistent and always display the directions in the same order. --------- Co-authored-by: valarnin <valarnin@gmail.com>
1 parent 0169370 commit 43b1b6a

2 files changed

Lines changed: 15 additions & 2 deletions

File tree

resources/util.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -263,6 +263,18 @@ const output16Dir: DirectionOutput16[] = [
263263
const outputCardinalDir: DirectionOutputCardinal[] = ['dirN', 'dirE', 'dirS', 'dirW'];
264264
const outputIntercardDir: DirectionOutputIntercard[] = ['dirNE', 'dirSE', 'dirSW', 'dirNW'];
265265

266+
const compareDirectionOutput = (a: DirectionOutput16, b: DirectionOutput16): number => {
267+
const getIndex = (n: DirectionOutput16) => {
268+
const index = output16Dir.indexOf(n);
269+
// Values outside of output16Dir (i.e. 'unknown') sort last
270+
if (index < 0)
271+
return output16Dir.length;
272+
return index;
273+
};
274+
275+
return getIndex(a) - getIndex(b);
276+
};
277+
266278
const outputStrings16Dir: OutputStrings = {
267279
dirN: Outputs.dirN,
268280
dirNNE: Outputs.dirNNE,
@@ -375,6 +387,7 @@ export const Directions = {
375387
output16Dir: output16Dir,
376388
outputCardinalDir: outputCardinalDir,
377389
outputIntercardDir: outputIntercardDir,
390+
compareDirectionOutput: compareDirectionOutput,
378391
outputStrings16Dir: outputStrings16Dir,
379392
outputStrings8Dir: outputStrings8Dir,
380393
outputStringsCardinalDir: outputStringsCardinalDir,

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ const triggerSet: TriggerSet<Data> = {
172172
durationSeconds: 5.5,
173173
suppressSeconds: 1,
174174
infoText: (data, _matches, output) => {
175-
const [dir1, dir2] = data.bats.inner;
175+
const [dir1, dir2] = data.bats.inner.sort(Directions.compareDirectionOutput);
176176

177177
return output.away!({
178178
dir1: output[dir1 ?? 'unknown']!(),
@@ -202,7 +202,7 @@ const triggerSet: TriggerSet<Data> = {
202202
durationSeconds: 3.4,
203203
suppressSeconds: 1,
204204
infoText: (data, _matches, output) => {
205-
const [dir1, dir2, dir3] = data.bats.middle;
205+
const [dir1, dir2, dir3] = data.bats.middle.sort(Directions.compareDirectionOutput);
206206

207207
return output.away!({
208208
dir1: output[dir1 ?? 'unknown']!(),

0 commit comments

Comments
 (0)