@rian8337/osu-droid-replay-analyzer 1.4.12-alpha.7 → 1.4.13-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -538,3 +538,4 @@ class ReplayAnalyzer {
538
538
  }
539
539
  }
540
540
  exports.ReplayAnalyzer = ReplayAnalyzer;
541
+ //# sourceMappingURL=ReplayAnalyzer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReplayAnalyzer.js","sourceRoot":"","sources":["../src/ReplayAnalyzer.ts"],"names":[],"mappings":"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"}
@@ -45,3 +45,4 @@ class BeatmapSectionGenerator {
45
45
  }
46
46
  }
47
47
  exports.BeatmapSectionGenerator = BeatmapSectionGenerator;
48
+ //# sourceMappingURL=BeatmapSectionGenerator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BeatmapSectionGenerator.js","sourceRoot":"","sources":["../../src/analysis/BeatmapSectionGenerator.ts"],"names":[],"mappings":";;;AAUA;;GAEG;AACH,MAAsB,uBAAuB;IACzC;;;;;;;;OAQG;IACH,MAAM,CAAC,gBAAgB,CACnB,GAAqC,EACrC,qBAA6B,EAC7B,mBAA2B;QAE3B,MAAM,eAAe,GAAqB,EAAE,CAAC;QAC7C,IAAI,gBAAgB,GAAW,CAAC,CAAC;QAEjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE;YAC7C,MAAM,OAAO,GACT,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACnB,MAAM,IAAI,GACN,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAEvB,MAAM,aAAa,GACf,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;YAEnD,IAAI,aAAa,IAAI,mBAAmB,EAAE;gBACtC,4DAA4D;gBAC5D,IAAI,CAAC,GAAG,gBAAgB,GAAG,qBAAqB,EAAE;oBAC9C,gBAAgB,GAAG,CAAC,GAAG,CAAC,CAAC;oBACzB,SAAS;iBACZ;gBAED,eAAe,CAAC,IAAI,CAAC;oBACjB,gBAAgB;oBAChB,eAAe,EAAE,CAAC;iBACrB,CAAC,CAAC;gBAEH,gBAAgB,GAAG,CAAC,GAAG,CAAC,CAAC;aAC5B;SACJ;QAED,2FAA2F;QAC3F,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,gBAAgB,GAAG,qBAAqB,EAAE;YAC/D,eAAe,CAAC,IAAI,CAAC;gBACjB,gBAAgB;gBAChB,eAAe,EAAE,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;aAC1C,CAAC,CAAC;SACN;QAED,OAAO,eAAe,CAAC;IAC3B,CAAC;CACJ;AArDD,0DAqDC"}
@@ -2,8 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ThreeFingerChecker = void 0;
4
4
  const osu_base_1 = require("@rian8337/osu-base");
5
- const hitResult_1 = require("../constants/hitResult");
6
- const movementType_1 = require("../constants/movementType");
5
+ const __1 = require("..");
7
6
  const CursorData_1 = require("../data/CursorData");
8
7
  const BeatmapSectionGenerator_1 = require("./BeatmapSectionGenerator");
9
8
  const ThreeFingerBeatmapSection_1 = require("./data/ThreeFingerBeatmapSection");
@@ -16,6 +15,25 @@ class ThreeFingerChecker {
16
15
  * @param data The data of the replay.
17
16
  */
18
17
  constructor(map, data) {
18
+ /**
19
+ * The distance threshold between cursors to assume that two cursors are
20
+ * actually pressed with 1 finger in osu!pixels.
21
+ *
22
+ * This is used to prevent cases where a player would lift their finger
23
+ * too fast to the point where the 4th cursor instance or beyond is recorded
24
+ * as 1st, 2nd, or 3rd cursor instance.
25
+ */
26
+ this.cursorDistancingDistanceThreshold = 60;
27
+ /**
28
+ * The threshold for the amount of cursors that are assumed to be pressed
29
+ * by a single finger.
30
+ */
31
+ this.cursorDistancingCountThreshold = 10;
32
+ /**
33
+ * The threshold for the time difference of cursors that are assumed to be pressed
34
+ * by a single finger, in milliseconds.
35
+ */
36
+ this.cursorDistancingTimeThreshold = 1000;
19
37
  /**
20
38
  * The ratio threshold between non-3 finger cursors and 3-finger cursors.
21
39
  *
@@ -31,7 +49,7 @@ class ThreeFingerChecker {
31
49
  * Note that this value does not account for the speed multiplier of
32
50
  * the play, similar to the way replay object data is stored.
33
51
  */
34
- this.maxSectionDeltaTime = 1000;
52
+ this.maxSectionDeltaTime = 2000;
35
53
  /**
36
54
  * The minimum object count required to make a beatmap section.
37
55
  *
@@ -42,6 +60,14 @@ class ThreeFingerChecker {
42
60
  * The sections of the beatmap that was cut based on `maxSectionDeltaTime` and `minSectionObjectCount`.
43
61
  */
44
62
  this.beatmapSections = [];
63
+ /**
64
+ * This threshold is used to filter out accidental taps.
65
+ *
66
+ * Increasing this number makes the filtration more sensitive, however it
67
+ * will also increase the chance of 3-fingered plays getting out from
68
+ * being flagged.
69
+ */
70
+ this.accidentalTapThreshold = 400;
45
71
  /**
46
72
  * A reprocessed break points to match right on object time.
47
73
  *
@@ -53,11 +79,6 @@ class ThreeFingerChecker {
53
79
  * A cursor data array that only contains `movementType.DOWN` movement ID occurrences.
54
80
  */
55
81
  this.downCursorInstances = [];
56
- /**
57
- * The indexes of cursors that presses objects that fall under {@link beatmapSections beatmap sections},
58
- * mapped by each object's unadjusted start time.
59
- */
60
- this.objectCursorIndexes = new Map();
61
82
  /**
62
83
  * Nerf factors from all sections that were three-fingered.
63
84
  */
@@ -100,9 +121,9 @@ class ThreeFingerChecker {
100
121
  return { is3Finger: false, penalty: 1 };
101
122
  }
102
123
  this.getBeatmapSections();
103
- this.assignFingerIndexes();
124
+ this.detectDragPlay();
104
125
  this.getDetailedBeatmapSections();
105
- this.assignCursorIndexesToObjects();
126
+ this.preventAccidentalTaps();
106
127
  if (this.downCursorInstances.filter((v) => v.size > 0).length <= 3) {
107
128
  return { is3Finger: false, penalty: 1 };
108
129
  }
@@ -126,11 +147,11 @@ class ThreeFingerChecker {
126
147
  // For sliders and spinners, automatically set hit window length to be as lenient as possible.
127
148
  let beforeIndexHitWindowLength = this.hitWindow.hitWindowFor50(isPrecise);
128
149
  switch (objectData[beforeIndex].result) {
129
- case hitResult_1.hitResult.RESULT_300:
150
+ case __1.hitResult.RESULT_300:
130
151
  beforeIndexHitWindowLength =
131
152
  this.hitWindow.hitWindowFor300(isPrecise);
132
153
  break;
133
- case hitResult_1.hitResult.RESULT_100:
154
+ case __1.hitResult.RESULT_100:
134
155
  beforeIndexHitWindowLength =
135
156
  this.hitWindow.hitWindowFor100(isPrecise);
136
157
  break;
@@ -144,11 +165,11 @@ class ThreeFingerChecker {
144
165
  // For sliders and spinners, automatically set hit window length to be as lenient as possible.
145
166
  let afterIndexHitWindowLength = this.hitWindow.hitWindowFor50(isPrecise);
146
167
  switch (objectData[afterIndex].result) {
147
- case hitResult_1.hitResult.RESULT_300:
168
+ case __1.hitResult.RESULT_300:
148
169
  afterIndexHitWindowLength =
149
170
  this.hitWindow.hitWindowFor300(isPrecise);
150
171
  break;
151
- case hitResult_1.hitResult.RESULT_100:
172
+ case __1.hitResult.RESULT_100:
152
173
  afterIndexHitWindowLength =
153
174
  this.hitWindow.hitWindowFor100(isPrecise);
154
175
  break;
@@ -178,11 +199,11 @@ class ThreeFingerChecker {
178
199
  let firstObjectHitWindow = this.hitWindow.hitWindowFor50(isPrecise);
179
200
  if (objects[0].object instanceof osu_base_1.Circle) {
180
201
  switch (firstObjectResult) {
181
- case hitResult_1.hitResult.RESULT_300:
202
+ case __1.hitResult.RESULT_300:
182
203
  firstObjectHitWindow =
183
204
  this.hitWindow.hitWindowFor300(isPrecise);
184
205
  break;
185
- case hitResult_1.hitResult.RESULT_100:
206
+ case __1.hitResult.RESULT_100:
186
207
  firstObjectHitWindow =
187
208
  this.hitWindow.hitWindowFor100(isPrecise);
188
209
  break;
@@ -195,11 +216,11 @@ class ThreeFingerChecker {
195
216
  let lastObjectHitWindow = this.hitWindow.hitWindowFor50(isPrecise);
196
217
  if (objects.at(-1).object instanceof osu_base_1.Circle) {
197
218
  switch (lastObjectResult) {
198
- case hitResult_1.hitResult.RESULT_300:
219
+ case __1.hitResult.RESULT_300:
199
220
  lastObjectHitWindow =
200
221
  this.hitWindow.hitWindowFor300(isPrecise);
201
222
  break;
202
- case hitResult_1.hitResult.RESULT_100:
223
+ case __1.hitResult.RESULT_100:
203
224
  lastObjectHitWindow =
204
225
  this.hitWindow.hitWindowFor100(isPrecise);
205
226
  break;
@@ -223,7 +244,7 @@ class ThreeFingerChecker {
223
244
  id: [],
224
245
  });
225
246
  for (let j = 0; j < cursorInstance.size; ++j) {
226
- if (cursorInstance.id[j] !== movementType_1.movementType.DOWN) {
247
+ if (cursorInstance.id[j] !== __1.movementType.DOWN) {
227
248
  continue;
228
249
  }
229
250
  const time = cursorInstance.time[j];
@@ -252,113 +273,162 @@ class ThreeFingerChecker {
252
273
  this.beatmapSections.push(new ThreeFingerBeatmapSection_1.ThreeFingerBeatmapSection({
253
274
  firstObjectIndex: beatmapSection.firstObjectIndex,
254
275
  lastObjectIndex: beatmapSection.lastObjectIndex,
255
- mainFingerIndex: -1,
276
+ isDragged: false,
277
+ dragFingerIndex: -1,
256
278
  }));
257
279
  }
258
280
  }
259
281
  /**
260
- * Assigns main finger indexes for each beatmap section.
282
+ * Checks whether or not each beatmap sections is dragged.
261
283
  */
262
- assignFingerIndexes() {
263
- for (const section of this.beatmapSections) {
264
- let currentIndex = this.getMainFingerIndex(section);
265
- if (currentIndex === null) {
266
- const firstObject = this.map.objects[section.firstObjectIndex];
267
- const firstObjectData = this.data.hitObjectData[section.firstObjectIndex];
268
- const lastObject = this.map.objects[section.lastObjectIndex];
269
- const lastObjectData = this.data.hitObjectData[section.lastObjectIndex];
270
- const startTime = firstObject.object.startTime + firstObjectData.accuracy;
271
- const endTime = lastObject.object.endTime + lastObjectData.accuracy;
272
- // Get the cursor instance index in the section that has the most movementType.MOVE instance.
273
- const moveInstanceAmounts = [];
274
- for (let i = 0; i < this.data.cursorMovement.length; ++i) {
275
- let amount = 0;
276
- const c = this.data.cursorMovement[i];
277
- for (let j = 0; j < c.size; ++j) {
278
- if (c.time[j] < startTime) {
279
- continue;
280
- }
281
- if (c.time[j] > endTime) {
282
- break;
283
- }
284
- if (c.id[j] === movementType_1.movementType.MOVE) {
285
- ++amount;
286
- }
287
- }
288
- moveInstanceAmounts.push(amount);
289
- }
290
- currentIndex = moveInstanceAmounts.indexOf(Math.max(...moveInstanceAmounts));
291
- }
292
- section.mainFingerIndex = currentIndex;
284
+ detectDragPlay() {
285
+ for (let i = 0; i < this.beatmapSections.length; ++i) {
286
+ const dragIndex = this.checkDrag(this.beatmapSections[i]);
287
+ this.beatmapSections[i].dragFingerIndex = dragIndex;
288
+ this.beatmapSections[i].isDragged = dragIndex !== -1;
293
289
  }
294
290
  }
295
291
  /**
296
- * Gets the main finger index of a beatmap section.
292
+ * Checks if a section is dragged and returns the index of the drag finger.
293
+ *
294
+ * If the section is not dragged, -1 will be returned.
297
295
  *
298
- * @param section The beatmap section.
296
+ * @param section The section to check.
299
297
  */
300
- getMainFingerIndex(section) {
301
- const validCursorIndexes = new Set();
302
- const timeDiscrepancy = 10;
298
+ checkDrag(section) {
299
+ const objects = this.map.objects;
300
+ const objectData = this.data.hitObjectData;
301
+ const isPrecise = this.map.mods.some((m) => m instanceof osu_base_1.ModPrecise);
302
+ const firstObject = objects[section.firstObjectIndex];
303
+ const lastObject = objects[section.lastObjectIndex];
304
+ let firstObjectMinHitTime = firstObject.object.startTime;
305
+ if (firstObject.object instanceof osu_base_1.Circle) {
306
+ switch (objectData[section.firstObjectIndex].result) {
307
+ case __1.hitResult.RESULT_300:
308
+ firstObjectMinHitTime -=
309
+ this.hitWindow.hitWindowFor300(isPrecise);
310
+ break;
311
+ case __1.hitResult.RESULT_100:
312
+ firstObjectMinHitTime -=
313
+ this.hitWindow.hitWindowFor100(isPrecise);
314
+ break;
315
+ default:
316
+ firstObjectMinHitTime -=
317
+ this.hitWindow.hitWindowFor50(isPrecise);
318
+ }
319
+ }
320
+ else {
321
+ firstObjectMinHitTime -= this.hitWindow.hitWindowFor50(isPrecise);
322
+ }
323
+ let lastObjectMaxHitTime = lastObject.object.startTime;
324
+ if (lastObject.object instanceof osu_base_1.Circle) {
325
+ switch (objectData[section.lastObjectIndex].result) {
326
+ case __1.hitResult.RESULT_300:
327
+ lastObjectMaxHitTime +=
328
+ this.hitWindow.hitWindowFor300(isPrecise);
329
+ break;
330
+ case __1.hitResult.RESULT_100:
331
+ lastObjectMaxHitTime +=
332
+ this.hitWindow.hitWindowFor100(isPrecise);
333
+ break;
334
+ default:
335
+ lastObjectMaxHitTime +=
336
+ this.hitWindow.hitWindowFor50(isPrecise);
337
+ }
338
+ }
339
+ else {
340
+ lastObjectMaxHitTime += this.hitWindow.hitWindowFor50(isPrecise);
341
+ }
342
+ // Since there may be more than 1 cursor instance index,
343
+ // we check which cursor instance follows hitobjects all over.
344
+ const cursorIndexes = [];
303
345
  for (let i = 0; i < this.data.cursorMovement.length; ++i) {
304
- if (this.data.cursorMovement[i].size > 0) {
305
- validCursorIndexes.add(i);
346
+ const c = this.data.cursorMovement[i];
347
+ if (c.size === 0) {
348
+ continue;
306
349
  }
350
+ // Do not include cursors that don't have an occurence in this section
351
+ // this speeds up checking process.
352
+ if (c.time.filter((v) => v >= firstObjectMinHitTime && v <= lastObjectMaxHitTime).length === 0) {
353
+ continue;
354
+ }
355
+ // If this cursor instance doesn't move, it's not the cursor instance we want.
356
+ if (c.id.filter((v) => v === __1.movementType.MOVE).length === 0) {
357
+ continue;
358
+ }
359
+ cursorIndexes.push(i);
307
360
  }
308
- for (let i = section.firstObjectIndex; i <= section.lastObjectIndex; ++i) {
309
- if (validCursorIndexes.size === 0) {
361
+ return this.findDragIndex(objects.slice(section.firstObjectIndex, section.lastObjectIndex + 1), objectData.slice(section.firstObjectIndex, section.lastObjectIndex + 1), cursorIndexes);
362
+ }
363
+ /**
364
+ * Finds the drag index of the section.
365
+ *
366
+ * @param sectionObjects The objects in the section.
367
+ * @param sectionReplayObjectData The hitobject data of all objects in the section.
368
+ * @param cursorIndexes The indexes of the cursor instance that has at least an occurrence in the section.
369
+ */
370
+ findDragIndex(sectionObjects, sectionReplayObjectData, cursorIndexes) {
371
+ let objectIndex = sectionObjects.findIndex((v, i) => !(v.object instanceof osu_base_1.Spinner) &&
372
+ sectionReplayObjectData[i].result !== __1.hitResult.RESULT_0);
373
+ if (objectIndex === -1) {
374
+ return -1;
375
+ }
376
+ while (cursorIndexes.length > 0) {
377
+ if (objectIndex === sectionObjects.length) {
310
378
  break;
311
379
  }
312
- const object = this.map.objects[i];
313
- if (object.object instanceof osu_base_1.Spinner) {
380
+ const o = sectionObjects[objectIndex];
381
+ const s = sectionReplayObjectData[objectIndex];
382
+ ++objectIndex;
383
+ if (s.result === __1.hitResult.RESULT_0) {
314
384
  continue;
315
385
  }
316
- const objectData = this.data.hitObjectData[i];
317
- const hitTime = object.startTime + objectData.accuracy;
318
- for (let j = 0; j < this.data.cursorMovement.length; ++j) {
319
- if (!validCursorIndexes.has(j)) {
386
+ // Get the cursor instance that is closest to the object's hit time.
387
+ for (let j = 0; j < cursorIndexes.length; ++j) {
388
+ const c = this.data.cursorMovement[cursorIndexes[j]];
389
+ // Cursor instances aren't always recorded at all times,
390
+ // therefore the game emulates the movement between
391
+ // movementType.MOVE cursors.
392
+ const hitTime = o.object.startTime + s.accuracy;
393
+ const nextHitIndex = c.time.findIndex((v) => v >= hitTime);
394
+ const hitIndex = nextHitIndex - 1;
395
+ if (hitIndex <= -1) {
396
+ cursorIndexes[j] = -1;
320
397
  continue;
321
398
  }
322
- const c = this.data.cursorMovement[j];
323
- for (let k = 0; k < c.size; ++k) {
324
- if (c.time[k] < hitTime - timeDiscrepancy ||
325
- c.id[k] === movementType_1.movementType.UP) {
326
- continue;
327
- }
328
- if (c.time[k] > hitTime + timeDiscrepancy) {
329
- break;
330
- }
331
- // Calculate the initial cursor position assuming it's a DOWN movement type.
332
- const cursorPosition = new osu_base_1.Vector2(c.x[k], c.y[k]);
333
- let isInObject = false;
334
- // But if the next cursor is a move instance, then we extend through
335
- // time between both cursors and interpolate cursor position.
336
- if (c.id[k + 1] === movementType_1.movementType.MOVE) {
337
- // Loop every 1ms to increase accuracy and minimalize error.
338
- for (let mSecPassed = c.time[k]; mSecPassed <= c.time[k + 1]; ++mSecPassed) {
339
- const t = (mSecPassed - c.time[k + 1]) /
340
- (c.time[k] - c.time[k + 1]);
341
- cursorPosition.x = osu_base_1.Interpolation.lerp(c.x[k], c.x[k + 1], t);
342
- cursorPosition.y = osu_base_1.Interpolation.lerp(c.y[k], c.y[k + 1], t);
343
- if (object.object.stackedPosition.getDistance(cursorPosition) <= object.object.radius) {
344
- isInObject = true;
345
- break;
346
- }
399
+ if (c.id[hitIndex] === __1.movementType.UP) {
400
+ cursorIndexes[j] = -1;
401
+ continue;
402
+ }
403
+ const cursorPosition = new osu_base_1.Vector2(c.x[hitIndex], c.y[hitIndex]);
404
+ let isInObject = false;
405
+ if (c.id[nextHitIndex] === __1.movementType.MOVE ||
406
+ c.id[hitIndex] === __1.movementType.MOVE) {
407
+ // Try to interpolate movement between two movementType.MOVE cursor every 1ms.
408
+ // This minimizes rounding error.
409
+ for (let mSecPassed = c.time[hitIndex]; mSecPassed <= c.time[nextHitIndex]; ++mSecPassed) {
410
+ const t = (mSecPassed - c.time[nextHitIndex]) /
411
+ (c.time[hitIndex] - c.time[nextHitIndex]);
412
+ cursorPosition.x = osu_base_1.Interpolation.lerp(c.x[hitIndex], c.x[nextHitIndex], t);
413
+ cursorPosition.y = osu_base_1.Interpolation.lerp(c.y[hitIndex], c.y[nextHitIndex], t);
414
+ if (o.object.stackedPosition.getDistance(cursorPosition) <= o.object.radius) {
415
+ isInObject = true;
416
+ break;
347
417
  }
348
418
  }
349
- else {
350
- isInObject =
351
- object.object.stackedPosition.getDistance(cursorPosition) <= object.object.radius;
352
- }
353
- if (!isInObject) {
354
- validCursorIndexes.delete(j);
355
- break;
356
- }
419
+ }
420
+ else {
421
+ isInObject =
422
+ o.object.stackedPosition.getDistance(cursorPosition) <=
423
+ o.object.radius;
424
+ }
425
+ if (!isInObject) {
426
+ cursorIndexes[j] = -1;
357
427
  }
358
428
  }
429
+ cursorIndexes = cursorIndexes.filter((v) => v !== -1);
359
430
  }
360
- const [first] = validCursorIndexes;
361
- return first ?? null;
431
+ return cursorIndexes.shift() ?? -1;
362
432
  }
363
433
  /**
364
434
  * Redivides the beatmap into sections.
@@ -387,15 +457,18 @@ class ThreeFingerChecker {
387
457
  newBeatmapSections.push({
388
458
  firstObjectIndex: newFirstObjectIndex,
389
459
  lastObjectIndex: i,
390
- mainFingerIndex: beatmapSection.mainFingerIndex,
460
+ isDragged: beatmapSection.isDragged,
461
+ dragFingerIndex: beatmapSection.dragFingerIndex,
391
462
  });
392
463
  }
393
464
  }
394
465
  // Don't forget to manually add the last beatmap section, which would otherwise be ignored.
395
466
  if (inSpeedSection) {
396
467
  newBeatmapSections.push({
397
- ...beatmapSection,
398
468
  firstObjectIndex: newFirstObjectIndex,
469
+ lastObjectIndex: beatmapSection.lastObjectIndex,
470
+ isDragged: beatmapSection.isDragged,
471
+ dragFingerIndex: beatmapSection.dragFingerIndex,
399
472
  });
400
473
  }
401
474
  }
@@ -403,57 +476,41 @@ class ThreeFingerChecker {
403
476
  this.beatmapSections.push(...newBeatmapSections);
404
477
  }
405
478
  /**
406
- * Assigns cursor indexes for each object that is included in {@link beatmapSections beatmap sections}.
479
+ * Attempts to prevent accidental taps from being flagged.
480
+ *
481
+ * This detection will filter cursors that don't hit
482
+ * any object in beatmap sections, thus eliminating any
483
+ * unnecessary taps.
407
484
  */
408
- assignCursorIndexesToObjects() {
409
- const isPrecise = this.map.mods.some((m) => m instanceof osu_base_1.ModPrecise);
410
- for (const section of this.beatmapSections) {
411
- for (let i = section.firstObjectIndex; i <= section.lastObjectIndex; ++i) {
412
- const object = this.map.objects[i];
413
- const objectData = this.data.hitObjectData[i];
414
- if (object.object instanceof osu_base_1.Spinner ||
415
- objectData.result === hitResult_1.hitResult.RESULT_0) {
416
- this.objectCursorIndexes.set(object.object.startTime, section.mainFingerIndex);
417
- continue;
418
- }
419
- let hitWindowLeniency = this.hitWindow.hitWindowFor50(isPrecise);
420
- // For sliders, automatically set hit window length to be as lenient as possible.
421
- if (object.object instanceof osu_base_1.Circle) {
422
- switch (objectData.result) {
423
- case hitResult_1.hitResult.RESULT_300:
424
- hitWindowLeniency =
425
- this.hitWindow.hitWindowFor300(isPrecise);
426
- break;
427
- case hitResult_1.hitResult.RESULT_100:
428
- hitWindowLeniency =
429
- this.hitWindow.hitWindowFor100(isPrecise);
430
- break;
485
+ preventAccidentalTaps() {
486
+ let filledCursorAmount = this.downCursorInstances.filter((v) => v.size > 0).length;
487
+ if (filledCursorAmount <= 3) {
488
+ return;
489
+ }
490
+ const objects = this.map.objects;
491
+ const totalCursorAmount = this.downCursorInstances.reduce((acc, value) => acc + value.size, 0);
492
+ for (let i = 0; i < this.downCursorInstances.length; ++i) {
493
+ if (filledCursorAmount <= 3) {
494
+ break;
495
+ }
496
+ const cursorInstance = this.downCursorInstances[i];
497
+ // Use an estimation for accidental tap threshold.
498
+ if (cursorInstance.size <=
499
+ Math.ceil(objects.length / this.accidentalTapThreshold) &&
500
+ cursorInstance.size / totalCursorAmount <
501
+ this.threeFingerRatioThreshold * 2) {
502
+ --filledCursorAmount;
503
+ for (const property in cursorInstance) {
504
+ const prop = property;
505
+ if (Array.isArray(cursorInstance[prop])) {
506
+ cursorInstance[prop].length = 0;
431
507
  }
432
- }
433
- const hitTime = object.object.startTime + objectData.accuracy;
434
- // We only care about the object timing; position doesn't matter.
435
- let smallestIndex = section.mainFingerIndex;
436
- let smallestDeltaTime = Number.POSITIVE_INFINITY;
437
- for (let j = 0; j < this.downCursorInstances.length; ++j) {
438
- const c = this.downCursorInstances[j];
439
- for (let k = 0; k < c.size; ++k) {
440
- if (c.time[k] <
441
- object.object.startTime - hitWindowLeniency) {
442
- continue;
443
- }
444
- const deltaTime = Math.abs(hitTime - c.time[k]);
445
- // Don't continue if it's past object hit time.
446
- if (c.time[k] > hitTime) {
447
- break;
448
- }
449
- if (smallestDeltaTime > deltaTime) {
450
- smallestDeltaTime = deltaTime;
451
- smallestIndex = j;
452
- }
508
+ else {
509
+ cursorInstance[prop] = 0;
453
510
  }
454
511
  }
455
- this.objectCursorIndexes.set(object.object.startTime, smallestIndex);
456
512
  }
513
+ this.downCursorInstances[i] = cursorInstance;
457
514
  }
458
515
  }
459
516
  /**
@@ -463,53 +520,132 @@ class ThreeFingerChecker {
463
520
  */
464
521
  calculateNerfFactors() {
465
522
  const objects = this.map.objects;
523
+ const objectData = this.data.hitObjectData;
524
+ const isPrecise = this.data.convertedMods.some((m) => m instanceof osu_base_1.ModPrecise);
466
525
  // We only filter cursor instances that are above the strain threshold.
467
526
  // This minimalizes the amount of cursor instances to analyze.
468
527
  for (const beatmapSection of this.beatmapSections) {
469
- const cursorAmounts = osu_base_1.Utils.initializeArray(this.downCursorInstances.length, 0);
470
- for (let i = beatmapSection.firstObjectIndex; i <= beatmapSection.lastObjectIndex; ++i) {
471
- ++cursorAmounts[this.objectCursorIndexes.get(objects[i].object.startTime)];
472
- }
473
- let validCursorPressCount = 0;
474
- let invalidCursorPressCount = 0;
475
- const validIndexes = [beatmapSection.mainFingerIndex];
476
- for (let i = 0; i < cursorAmounts.length; ++i) {
477
- // Ignore the main cursor index.
478
- if (i === beatmapSection.mainFingerIndex) {
528
+ const dragIndex = beatmapSection.dragFingerIndex;
529
+ const startTime = objects[beatmapSection.firstObjectIndex].object.startTime +
530
+ (objectData[beatmapSection.firstObjectIndex].result !==
531
+ __1.hitResult.RESULT_0
532
+ ? objectData[beatmapSection.firstObjectIndex].accuracy
533
+ : -this.hitWindow.hitWindowFor50(isPrecise));
534
+ const endTime = objects[beatmapSection.lastObjectIndex].object.endTime +
535
+ (objectData[beatmapSection.lastObjectIndex].result !==
536
+ __1.hitResult.RESULT_0
537
+ ? objectData[beatmapSection.lastObjectIndex].accuracy
538
+ : this.hitWindow.hitWindowFor50(isPrecise));
539
+ // Filter cursor instances during section.
540
+ this.downCursorInstances.forEach((c) => {
541
+ const i = c.time.findIndex((t) => t >= startTime);
542
+ if (i !== -1) {
543
+ c.size -= i;
544
+ c.time.splice(0, i);
545
+ c.x.splice(0, i);
546
+ c.y.splice(0, i);
547
+ c.id.splice(0, i);
548
+ }
549
+ });
550
+ const cursorAmounts = [];
551
+ const cursorVectorTimes = [];
552
+ for (let i = 0; i < this.downCursorInstances.length; ++i) {
553
+ // Do not include drag cursor instance.
554
+ if (i === dragIndex) {
479
555
  continue;
480
556
  }
481
- // Add 2f cursor presses to valid cursor count and the rest to invalid cursor count.
482
- if (validIndexes.length <= 2) {
483
- validCursorPressCount += cursorAmounts[i];
557
+ const cursorData = this.downCursorInstances[i];
558
+ let amount = 0;
559
+ for (let j = 0; j < cursorData.size; ++j) {
560
+ if (cursorData.time[j] >= startTime &&
561
+ cursorData.time[j] <= endTime) {
562
+ ++amount;
563
+ cursorVectorTimes.push({
564
+ vector: new osu_base_1.Vector2(cursorData.x[j], cursorData.y[j]),
565
+ time: cursorData.time[j],
566
+ });
567
+ }
568
+ }
569
+ cursorAmounts.push(amount);
570
+ }
571
+ // This index will be used to detect if a section is 3-fingered.
572
+ // If the section is dragged, the dragged instance will be ignored,
573
+ // hence why the index is 1 less than nondragged section.
574
+ const fingerSplitIndex = dragIndex !== -1 ? 2 : 3;
575
+ // Divide >=4th (3rd for drag) cursor instances with 1st + 2nd (+ 3rd for nondrag)
576
+ // to check if the section is 3-fingered.
577
+ const threeFingerRatio = cursorAmounts
578
+ .slice(fingerSplitIndex)
579
+ .reduce((acc, value) => acc + value, 0) /
580
+ cursorAmounts
581
+ .slice(0, fingerSplitIndex)
582
+ .reduce((acc, value) => acc + value, 0);
583
+ const similarPresses = [];
584
+ for (const cursorVectorTime of cursorVectorTimes) {
585
+ const pressIndex = similarPresses.findIndex((v) => v.vector.getDistance(cursorVectorTime.vector) <=
586
+ this.cursorDistancingDistanceThreshold);
587
+ if (pressIndex !== -1) {
588
+ if (cursorVectorTime.time -
589
+ similarPresses[pressIndex].lastTime >=
590
+ this.cursorDistancingTimeThreshold) {
591
+ similarPresses.splice(pressIndex, 1);
592
+ similarPresses.push({
593
+ vector: cursorVectorTime.vector,
594
+ count: 1,
595
+ lastTime: cursorVectorTime.time,
596
+ });
597
+ continue;
598
+ }
599
+ similarPresses[pressIndex].vector = cursorVectorTime.vector;
600
+ similarPresses[pressIndex].lastTime = cursorVectorTime.time;
601
+ ++similarPresses[pressIndex].count;
484
602
  }
485
603
  else {
486
- invalidCursorPressCount += cursorAmounts[i];
604
+ similarPresses.push({
605
+ vector: cursorVectorTime.vector,
606
+ count: 1,
607
+ lastTime: cursorVectorTime.time,
608
+ });
487
609
  }
488
- validIndexes.push(i);
489
610
  }
611
+ // Sort by highest count; assume the order is 3rd, 4th, 5th, ... finger
612
+ const validPresses = similarPresses
613
+ .filter((v) => v.count >= this.cursorDistancingCountThreshold)
614
+ .sort((a, b) => {
615
+ return b.count - a.count;
616
+ })
617
+ .slice(2);
490
618
  // Ignore cursor presses that are only 1 for now since they are very likely to be accidental
491
- if (invalidCursorPressCount / validCursorPressCount >
492
- this.threeFingerRatioThreshold &&
493
- cursorAmounts.filter((v) => v > 1).length > 3) {
619
+ if ((threeFingerRatio > this.threeFingerRatioThreshold &&
620
+ cursorAmounts.filter((v) => v > 1).length > 3) ||
621
+ validPresses.length > 0) {
494
622
  // Strain factor
495
623
  const objectCount = beatmapSection.lastObjectIndex -
496
624
  beatmapSection.firstObjectIndex +
497
625
  1;
498
626
  const strainFactor = Math.pow(objects
499
- .slice(beatmapSection.firstObjectIndex, beatmapSection.lastObjectIndex + 1)
627
+ .slice(beatmapSection.firstObjectIndex, beatmapSection.lastObjectIndex)
500
628
  .reduce((acc, value) => acc +
501
629
  value.originalTapStrain /
502
- ThreeFingerChecker.strainThreshold, 0), 0.875);
630
+ ThreeFingerChecker.strainThreshold, 0), 0.85);
631
+ // We can ignore the first 3 (2 for drag) filled cursor instances
632
+ // since they are guaranteed not 3 finger.
633
+ const threeFingerCursorAmounts = cursorAmounts
634
+ .slice(fingerSplitIndex)
635
+ .filter((amount) => amount > 0);
503
636
  // Finger factor applies more penalty if more fingers were used.
504
- let fingerFactor = 1;
505
- for (let i = 0, penaltyIndex = 1; i < cursorAmounts.length; ++i) {
506
- if (validIndexes.includes(i)) {
507
- continue;
508
- }
509
- fingerFactor += Math.pow((penaltyIndex * cursorAmounts[i] * objectCount) /
510
- this.strainNoteCount, 0.8);
511
- ++penaltyIndex;
512
- }
637
+ const fingerFactor = threeFingerRatio > this.threeFingerRatioThreshold
638
+ ? threeFingerCursorAmounts.reduce((acc, value, index) => acc +
639
+ Math.pow(((index + 1) * value * objectCount) /
640
+ this.strainNoteCount, 0.8), 1)
641
+ : Math.pow(validPresses.reduce((acc, value, index) => acc +
642
+ Math.pow(((index + 1) *
643
+ (value.count /
644
+ (this
645
+ .cursorDistancingCountThreshold *
646
+ 2)) *
647
+ objectCount) /
648
+ this.strainNoteCount, 0.2), 1), 0.2);
513
649
  // Length factor applies more penalty if there are more 3-fingered object.
514
650
  const lengthFactor = 1 + Math.pow(objectCount / this.strainNoteCount, 1.2);
515
651
  this.nerfFactors.push({
@@ -536,4 +672,5 @@ exports.ThreeFingerChecker = ThreeFingerChecker;
536
672
  *
537
673
  * Increasing this number will result in less sections being flagged.
538
674
  */
539
- ThreeFingerChecker.strainThreshold = 200;
675
+ ThreeFingerChecker.strainThreshold = 175;
676
+ //# sourceMappingURL=ThreeFingerChecker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThreeFingerChecker.js","sourceRoot":"","sources":["../../src/analysis/ThreeFingerChecker.ts"],"names":[],"mappings":"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"}
@@ -226,7 +226,6 @@ class TwoHandChecker {
226
226
  starRating.objects[0].object.startTime -
227
227
  this.indexedHitObjects[0].object.object.startTime;
228
228
  starRating.objects[0].strainTime = Math.max(50, starRating.objects[0].deltaTime);
229
- //@ts-expect-error: Collision with rebalance star rating, but this works fine.
230
229
  this.map.objects.push(...starRating.objects);
231
230
  });
232
231
  this.map.objects.sort((a, b) => {
@@ -236,3 +235,4 @@ class TwoHandChecker {
236
235
  }
237
236
  }
238
237
  exports.TwoHandChecker = TwoHandChecker;
238
+ //# sourceMappingURL=TwoHandChecker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TwoHandChecker.js","sourceRoot":"","sources":["../../src/analysis/TwoHandChecker.ts"],"names":[],"mappings":"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"}
@@ -15,3 +15,4 @@ class BeatmapSection {
15
15
  }
16
16
  }
17
17
  exports.BeatmapSection = BeatmapSection;
18
+ //# sourceMappingURL=BeatmapSection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BeatmapSection.js","sourceRoot":"","sources":["../../../src/analysis/data/BeatmapSection.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,MAAa,cAAc;IAWvB;;;OAGG;IACH,YAAY,gBAAwB,EAAE,eAAuB;QACzD,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;IAC3C,CAAC;CACJ;AAnBD,wCAmBC"}
@@ -8,7 +8,9 @@ const BeatmapSection_1 = require("./BeatmapSection");
8
8
  class ThreeFingerBeatmapSection extends BeatmapSection_1.BeatmapSection {
9
9
  constructor(values) {
10
10
  super(values.firstObjectIndex, values.lastObjectIndex);
11
- this.mainFingerIndex = values.mainFingerIndex;
11
+ this.isDragged = values.isDragged;
12
+ this.dragFingerIndex = values.dragFingerIndex;
12
13
  }
13
14
  }
14
15
  exports.ThreeFingerBeatmapSection = ThreeFingerBeatmapSection;
16
+ //# sourceMappingURL=ThreeFingerBeatmapSection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThreeFingerBeatmapSection.js","sourceRoot":"","sources":["../../../src/analysis/data/ThreeFingerBeatmapSection.ts"],"names":[],"mappings":";;;AAAA,qDAAkD;AAElD;;GAEG;AACH,MAAa,yBAA0B,SAAQ,+BAAc;IAWzD,YAAY,MAKX;QACG,KAAK,CAAC,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,eAAe,CAAC,CAAC;QACvD,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QAClC,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;IAClD,CAAC;CACJ;AArBD,8DAqBC"}
@@ -15,3 +15,4 @@ class IndexedHitObject {
15
15
  }
16
16
  }
17
17
  exports.IndexedHitObject = IndexedHitObject;
18
+ //# sourceMappingURL=IndexedHitObject.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IndexedHitObject.js","sourceRoot":"","sources":["../../../src/analysis/objects/IndexedHitObject.ts"],"names":[],"mappings":";;;AAGA;;GAEG;AACH,MAAa,gBAAgB;IAWzB;;;OAGG;IACH,YACI,MAA0D,EAC1D,WAAmB;QAEnB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACnC,CAAC;CACJ;AAtBD,4CAsBC"}
@@ -23,3 +23,4 @@ var hitResult;
23
23
  */
24
24
  hitResult[hitResult["RESULT_300"] = 4] = "RESULT_300";
25
25
  })(hitResult = exports.hitResult || (exports.hitResult = {}));
26
+ //# sourceMappingURL=hitResult.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hitResult.js","sourceRoot":"","sources":["../../src/constants/hitResult.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,IAAY,SAoBX;AApBD,WAAY,SAAS;IACjB;;OAEG;IACH,iDAAY,CAAA;IAEZ;;OAEG;IACH,mDAAa,CAAA;IAEb;;OAEG;IACH,qDAAc,CAAA;IAEd;;OAEG;IACH,qDAAc,CAAA;AAClB,CAAC,EApBW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAoBpB"}
@@ -10,3 +10,4 @@ var movementType;
10
10
  movementType[movementType["MOVE"] = 1] = "MOVE";
11
11
  movementType[movementType["UP"] = 2] = "UP";
12
12
  })(movementType = exports.movementType || (exports.movementType = {}));
13
+ //# sourceMappingURL=movementType.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"movementType.js","sourceRoot":"","sources":["../../src/constants/movementType.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,IAAY,YAIX;AAJD,WAAY,YAAY;IACpB,+CAAI,CAAA;IACJ,+CAAI,CAAA;IACJ,2CAAE,CAAA;AACN,CAAC,EAJW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAIvB"}
@@ -18,3 +18,4 @@ class CursorData {
18
18
  }
19
19
  }
20
20
  exports.CursorData = CursorData;
21
+ //# sourceMappingURL=CursorData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CursorData.js","sourceRoot":"","sources":["../../src/data/CursorData.ts"],"names":[],"mappings":";;;AAgCA;;;;;;GAMG;AACH,MAAa,UAAU;IAOnB,YAAY,MAAyB;QACjC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACxB,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;QAClB,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;QAClB,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC;IACxB,CAAC;CACJ;AAdD,gCAcC"}
@@ -33,3 +33,4 @@ class ReplayData {
33
33
  }
34
34
  }
35
35
  exports.ReplayData = ReplayData;
36
+ //# sourceMappingURL=ReplayData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReplayData.js","sourceRoot":"","sources":["../../src/data/ReplayData.ts"],"names":[],"mappings":";;;AAAA,iDAAmD;AA0InD;;;;;;GAMG;AACH,MAAa,UAAU;IAqBnB,YAAY,MAAyB;QACjC,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;QAC1C,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QACpC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;QACvC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,IAAI,mBAAQ,CAAC,EAAE,CAAC,CAAC;QACpD,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,KAAK,CAAC;QAC/C,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC;QAC1C,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;QACpC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QAC9B,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,IAAI,EAAE,CAAC;QAChD,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;QAC5C,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;QAC1C,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,IAAI,CAAC,CAAC;QACvD,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;IACpC,CAAC;CACJ;AA1CD,gCA0CC"}
@@ -16,3 +16,4 @@ class ReplayObjectData {
16
16
  }
17
17
  }
18
18
  exports.ReplayObjectData = ReplayObjectData;
19
+ //# sourceMappingURL=ReplayObjectData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReplayObjectData.js","sourceRoot":"","sources":["../../src/data/ReplayObjectData.ts"],"names":[],"mappings":";;;AAEA;;;;;;GAMG;AACH,MAAa,gBAAgB;IAkBzB,YAAY,MAiBX;QACG,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAChC,CAAC;CACJ;AAxCD,4CAwCC"}
package/dist/index.js CHANGED
@@ -17,3 +17,4 @@ __exportStar(require("./ReplayAnalyzer"), exports);
17
17
  __exportStar(require("./data/ReplayData"), exports);
18
18
  __exportStar(require("./data/ReplayObjectData"), exports);
19
19
  __exportStar(require("./analysis/ThreeFingerChecker"), exports);
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oDAAkC;AAClC,wDAAsC;AACtC,2DAAyC;AACzC,mDAAiC;AACjC,oDAAkC;AAClC,0DAAwC;AACxC,gEAA8C"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rian8337/osu-droid-replay-analyzer",
3
- "version": "1.4.12-alpha.7",
3
+ "version": "1.4.13-alpha.0",
4
4
  "description": "A replay analyzer for analyzing osu!droid replay files.",
5
5
  "keywords": [
6
6
  "osu",
@@ -32,8 +32,8 @@
32
32
  },
33
33
  "dependencies": {
34
34
  "@rian8337/osu-base": "^1.4.8",
35
- "@rian8337/osu-difficulty-calculator": "^1.4.8",
36
- "@rian8337/osu-rebalance-difficulty-calculator": "^1.4.12-alpha.4",
35
+ "@rian8337/osu-difficulty-calculator": "^1.4.12",
36
+ "@rian8337/osu-rebalance-difficulty-calculator": "^1.4.13-alpha.0",
37
37
  "java-deserialization": "^0.1.0",
38
38
  "unzipper": "^0.10.11"
39
39
  },
@@ -45,5 +45,5 @@
45
45
  "publishConfig": {
46
46
  "access": "public"
47
47
  },
48
- "gitHead": "3db8ea957f7c4f6bf018224232f9db054b90f9b8"
48
+ "gitHead": "c119f55a688f9732bbca35d7e70beb10f31b3efe"
49
49
  }