@rian8337/osu-droid-replay-analyzer 1.4.12-alpha.6 → 1.4.12

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");
@@ -50,7 +49,7 @@ class ThreeFingerChecker {
50
49
  * Note that this value does not account for the speed multiplier of
51
50
  * the play, similar to the way replay object data is stored.
52
51
  */
53
- this.maxSectionDeltaTime = 1000;
52
+ this.maxSectionDeltaTime = 2000;
54
53
  /**
55
54
  * The minimum object count required to make a beatmap section.
56
55
  *
@@ -122,7 +121,7 @@ class ThreeFingerChecker {
122
121
  return { is3Finger: false, penalty: 1 };
123
122
  }
124
123
  this.getBeatmapSections();
125
- this.assignFingerIndexes();
124
+ this.detectDragPlay();
126
125
  this.getDetailedBeatmapSections();
127
126
  this.preventAccidentalTaps();
128
127
  if (this.downCursorInstances.filter((v) => v.size > 0).length <= 3) {
@@ -148,11 +147,11 @@ class ThreeFingerChecker {
148
147
  // For sliders and spinners, automatically set hit window length to be as lenient as possible.
149
148
  let beforeIndexHitWindowLength = this.hitWindow.hitWindowFor50(isPrecise);
150
149
  switch (objectData[beforeIndex].result) {
151
- case hitResult_1.hitResult.RESULT_300:
150
+ case __1.hitResult.RESULT_300:
152
151
  beforeIndexHitWindowLength =
153
152
  this.hitWindow.hitWindowFor300(isPrecise);
154
153
  break;
155
- case hitResult_1.hitResult.RESULT_100:
154
+ case __1.hitResult.RESULT_100:
156
155
  beforeIndexHitWindowLength =
157
156
  this.hitWindow.hitWindowFor100(isPrecise);
158
157
  break;
@@ -166,11 +165,11 @@ class ThreeFingerChecker {
166
165
  // For sliders and spinners, automatically set hit window length to be as lenient as possible.
167
166
  let afterIndexHitWindowLength = this.hitWindow.hitWindowFor50(isPrecise);
168
167
  switch (objectData[afterIndex].result) {
169
- case hitResult_1.hitResult.RESULT_300:
168
+ case __1.hitResult.RESULT_300:
170
169
  afterIndexHitWindowLength =
171
170
  this.hitWindow.hitWindowFor300(isPrecise);
172
171
  break;
173
- case hitResult_1.hitResult.RESULT_100:
172
+ case __1.hitResult.RESULT_100:
174
173
  afterIndexHitWindowLength =
175
174
  this.hitWindow.hitWindowFor100(isPrecise);
176
175
  break;
@@ -200,11 +199,11 @@ class ThreeFingerChecker {
200
199
  let firstObjectHitWindow = this.hitWindow.hitWindowFor50(isPrecise);
201
200
  if (objects[0].object instanceof osu_base_1.Circle) {
202
201
  switch (firstObjectResult) {
203
- case hitResult_1.hitResult.RESULT_300:
202
+ case __1.hitResult.RESULT_300:
204
203
  firstObjectHitWindow =
205
204
  this.hitWindow.hitWindowFor300(isPrecise);
206
205
  break;
207
- case hitResult_1.hitResult.RESULT_100:
206
+ case __1.hitResult.RESULT_100:
208
207
  firstObjectHitWindow =
209
208
  this.hitWindow.hitWindowFor100(isPrecise);
210
209
  break;
@@ -217,11 +216,11 @@ class ThreeFingerChecker {
217
216
  let lastObjectHitWindow = this.hitWindow.hitWindowFor50(isPrecise);
218
217
  if (objects.at(-1).object instanceof osu_base_1.Circle) {
219
218
  switch (lastObjectResult) {
220
- case hitResult_1.hitResult.RESULT_300:
219
+ case __1.hitResult.RESULT_300:
221
220
  lastObjectHitWindow =
222
221
  this.hitWindow.hitWindowFor300(isPrecise);
223
222
  break;
224
- case hitResult_1.hitResult.RESULT_100:
223
+ case __1.hitResult.RESULT_100:
225
224
  lastObjectHitWindow =
226
225
  this.hitWindow.hitWindowFor100(isPrecise);
227
226
  break;
@@ -245,7 +244,7 @@ class ThreeFingerChecker {
245
244
  id: [],
246
245
  });
247
246
  for (let j = 0; j < cursorInstance.size; ++j) {
248
- if (cursorInstance.id[j] !== movementType_1.movementType.DOWN) {
247
+ if (cursorInstance.id[j] !== __1.movementType.DOWN) {
249
248
  continue;
250
249
  }
251
250
  const time = cursorInstance.time[j];
@@ -274,113 +273,162 @@ class ThreeFingerChecker {
274
273
  this.beatmapSections.push(new ThreeFingerBeatmapSection_1.ThreeFingerBeatmapSection({
275
274
  firstObjectIndex: beatmapSection.firstObjectIndex,
276
275
  lastObjectIndex: beatmapSection.lastObjectIndex,
277
- mainFingerIndex: -1,
276
+ isDragged: false,
277
+ dragFingerIndex: -1,
278
278
  }));
279
279
  }
280
280
  }
281
281
  /**
282
- * Assigns main finger indexes for each beatmap section.
282
+ * Checks whether or not each beatmap sections is dragged.
283
283
  */
284
- assignFingerIndexes() {
285
- for (const section of this.beatmapSections) {
286
- let currentIndex = this.getMainFingerIndex(section);
287
- if (currentIndex === null) {
288
- const firstObject = this.map.objects[section.firstObjectIndex];
289
- const firstObjectData = this.data.hitObjectData[section.firstObjectIndex];
290
- const lastObject = this.map.objects[section.lastObjectIndex];
291
- const lastObjectData = this.data.hitObjectData[section.lastObjectIndex];
292
- const startTime = firstObject.object.startTime + firstObjectData.accuracy;
293
- const endTime = lastObject.object.endTime + lastObjectData.accuracy;
294
- // Get the cursor instance index in the section that has the most movementType.MOVE instance.
295
- const moveInstanceAmounts = [];
296
- for (let i = 0; i < this.data.cursorMovement.length; ++i) {
297
- let amount = 0;
298
- const c = this.data.cursorMovement[i];
299
- for (let j = 0; j < c.size; ++j) {
300
- if (c.time[j] < startTime) {
301
- continue;
302
- }
303
- if (c.time[j] > endTime) {
304
- break;
305
- }
306
- if (c.id[j] === movementType_1.movementType.MOVE) {
307
- ++amount;
308
- }
309
- }
310
- moveInstanceAmounts.push(amount);
311
- }
312
- currentIndex = moveInstanceAmounts.indexOf(Math.max(...moveInstanceAmounts));
313
- }
314
- 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;
315
289
  }
316
290
  }
317
291
  /**
318
- * 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.
319
295
  *
320
- * @param section The beatmap section.
296
+ * @param section The section to check.
321
297
  */
322
- getMainFingerIndex(section) {
323
- const validCursorIndexes = new Set();
324
- 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 = [];
325
345
  for (let i = 0; i < this.data.cursorMovement.length; ++i) {
326
- if (this.data.cursorMovement[i].size > 0) {
327
- validCursorIndexes.add(i);
346
+ const c = this.data.cursorMovement[i];
347
+ if (c.size === 0) {
348
+ continue;
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;
328
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);
360
+ }
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;
329
375
  }
330
- for (let i = section.firstObjectIndex; i <= section.lastObjectIndex; ++i) {
331
- if (validCursorIndexes.size === 1) {
376
+ while (cursorIndexes.length > 0) {
377
+ if (objectIndex === sectionObjects.length) {
332
378
  break;
333
379
  }
334
- const object = this.map.objects[i];
335
- 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) {
336
384
  continue;
337
385
  }
338
- const objectData = this.data.hitObjectData[i];
339
- const hitTime = object.startTime + objectData.accuracy;
340
- for (let j = 0; j < this.data.cursorMovement.length; ++j) {
341
- 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;
342
397
  continue;
343
398
  }
344
- const c = this.data.cursorMovement[j];
345
- for (let k = 0; k < c.size; ++k) {
346
- if (c.time[k] < hitTime - timeDiscrepancy ||
347
- c.id[k] === movementType_1.movementType.UP) {
348
- continue;
349
- }
350
- if (c.time[k] > hitTime + timeDiscrepancy) {
351
- break;
352
- }
353
- // Calculate the initial cursor position assuming it's a DOWN movement type.
354
- const cursorPosition = new osu_base_1.Vector2(c.x[k], c.y[k]);
355
- let isInObject = false;
356
- // But if the next cursor is a move instance, then we extend through
357
- // time between both cursors and interpolate cursor position.
358
- if (c.id[k + 1] === movementType_1.movementType.MOVE) {
359
- // Loop every 1ms to increase accuracy and minimalize error.
360
- for (let mSecPassed = c.time[k]; mSecPassed <= c.time[k + 1]; ++mSecPassed) {
361
- const t = (mSecPassed - c.time[k + 1]) /
362
- (c.time[k] - c.time[k + 1]);
363
- cursorPosition.x = osu_base_1.Interpolation.lerp(c.x[k], c.x[k + 1], t);
364
- cursorPosition.y = osu_base_1.Interpolation.lerp(c.y[k], c.y[k + 1], t);
365
- if (object.object.stackedPosition.getDistance(cursorPosition) <= object.object.radius) {
366
- isInObject = true;
367
- break;
368
- }
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;
369
417
  }
370
418
  }
371
- else {
372
- isInObject =
373
- object.object.stackedPosition.getDistance(cursorPosition) <= object.object.radius;
374
- }
375
- if (!isInObject) {
376
- validCursorIndexes.delete(j);
377
- break;
378
- }
419
+ }
420
+ else {
421
+ isInObject =
422
+ o.object.stackedPosition.getDistance(cursorPosition) <=
423
+ o.object.radius;
424
+ }
425
+ if (!isInObject) {
426
+ cursorIndexes[j] = -1;
379
427
  }
380
428
  }
429
+ cursorIndexes = cursorIndexes.filter((v) => v !== -1);
381
430
  }
382
- const [first] = validCursorIndexes;
383
- return first ?? null;
431
+ return cursorIndexes.shift() ?? -1;
384
432
  }
385
433
  /**
386
434
  * Redivides the beatmap into sections.
@@ -409,15 +457,18 @@ class ThreeFingerChecker {
409
457
  newBeatmapSections.push({
410
458
  firstObjectIndex: newFirstObjectIndex,
411
459
  lastObjectIndex: i,
412
- mainFingerIndex: beatmapSection.mainFingerIndex,
460
+ isDragged: beatmapSection.isDragged,
461
+ dragFingerIndex: beatmapSection.dragFingerIndex,
413
462
  });
414
463
  }
415
464
  }
416
465
  // Don't forget to manually add the last beatmap section, which would otherwise be ignored.
417
466
  if (inSpeedSection) {
418
467
  newBeatmapSections.push({
419
- ...beatmapSection,
420
468
  firstObjectIndex: newFirstObjectIndex,
469
+ lastObjectIndex: beatmapSection.lastObjectIndex,
470
+ isDragged: beatmapSection.isDragged,
471
+ dragFingerIndex: beatmapSection.dragFingerIndex,
421
472
  });
422
473
  }
423
474
  }
@@ -474,15 +525,15 @@ class ThreeFingerChecker {
474
525
  // We only filter cursor instances that are above the strain threshold.
475
526
  // This minimalizes the amount of cursor instances to analyze.
476
527
  for (const beatmapSection of this.beatmapSections) {
477
- const mainIndex = beatmapSection.mainFingerIndex;
528
+ const dragIndex = beatmapSection.dragFingerIndex;
478
529
  const startTime = objects[beatmapSection.firstObjectIndex].object.startTime +
479
530
  (objectData[beatmapSection.firstObjectIndex].result !==
480
- hitResult_1.hitResult.RESULT_0
531
+ __1.hitResult.RESULT_0
481
532
  ? objectData[beatmapSection.firstObjectIndex].accuracy
482
533
  : -this.hitWindow.hitWindowFor50(isPrecise));
483
534
  const endTime = objects[beatmapSection.lastObjectIndex].object.endTime +
484
535
  (objectData[beatmapSection.lastObjectIndex].result !==
485
- hitResult_1.hitResult.RESULT_0
536
+ __1.hitResult.RESULT_0
486
537
  ? objectData[beatmapSection.lastObjectIndex].accuracy
487
538
  : this.hitWindow.hitWindowFor50(isPrecise));
488
539
  // Filter cursor instances during section.
@@ -499,6 +550,10 @@ class ThreeFingerChecker {
499
550
  const cursorAmounts = [];
500
551
  const cursorVectorTimes = [];
501
552
  for (let i = 0; i < this.downCursorInstances.length; ++i) {
553
+ // Do not include drag cursor instance.
554
+ if (i === dragIndex) {
555
+ continue;
556
+ }
502
557
  const cursorData = this.downCursorInstances[i];
503
558
  let amount = 0;
504
559
  for (let j = 0; j < cursorData.size; ++j) {
@@ -513,25 +568,18 @@ class ThreeFingerChecker {
513
568
  }
514
569
  cursorAmounts.push(amount);
515
570
  }
516
- let validCursorPressCount = 0;
517
- let invalidCursorPressCount = 0;
518
- const validIndexes = [];
519
- for (let i = 0; i < cursorAmounts.length; ++i) {
520
- // Ignore the main cursor index.
521
- if (i === mainIndex) {
522
- continue;
523
- }
524
- // Add 2f cursor presses to valid cursor count and the rest to invalid cursor count.
525
- if (validIndexes.length < 2) {
526
- validCursorPressCount += cursorAmounts[i];
527
- }
528
- else {
529
- invalidCursorPressCount += cursorAmounts[i];
530
- }
531
- validIndexes.push(i);
532
- }
533
- validIndexes.push(mainIndex);
534
- const threeFingerRatio = invalidCursorPressCount / validCursorPressCount;
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);
535
583
  const similarPresses = [];
536
584
  for (const cursorVectorTime of cursorVectorTimes) {
537
585
  const pressIndex = similarPresses.findIndex((v) => v.vector.getDistance(cursorVectorTime.vector) <=
@@ -579,29 +627,25 @@ class ThreeFingerChecker {
579
627
  .slice(beatmapSection.firstObjectIndex, beatmapSection.lastObjectIndex)
580
628
  .reduce((acc, value) => acc +
581
629
  value.originalTapStrain /
582
- 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);
583
636
  // Finger factor applies more penalty if more fingers were used.
584
- let fingerFactor = 1;
585
- if (threeFingerRatio > this.threeFingerRatioThreshold) {
586
- for (let i = 0, penaltyIndex = 1; i < cursorAmounts.length; ++i) {
587
- if (validIndexes.includes(i)) {
588
- continue;
589
- }
590
- fingerFactor += Math.pow((penaltyIndex * cursorAmounts[i] * objectCount) /
591
- this.strainNoteCount, 0.8);
592
- ++penaltyIndex;
593
- }
594
- }
595
- else {
596
- fingerFactor = Math.pow(validPresses.reduce((acc, value, index) => acc +
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 +
597
642
  Math.pow(((index + 1) *
598
643
  (value.count /
599
644
  (this
600
645
  .cursorDistancingCountThreshold *
601
646
  2)) *
602
647
  objectCount) /
603
- this.strainNoteCount, 0.2), 1), 0.25);
604
- }
648
+ this.strainNoteCount, 0.2), 1), 0.2);
605
649
  // Length factor applies more penalty if there are more 3-fingered object.
606
650
  const lengthFactor = 1 + Math.pow(objectCount / this.strainNoteCount, 1.2);
607
651
  this.nerfFactors.push({
@@ -629,3 +673,4 @@ exports.ThreeFingerChecker = ThreeFingerChecker;
629
673
  * Increasing this number will result in less sections being flagged.
630
674
  */
631
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.6",
3
+ "version": "1.4.12",
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.12",
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": "c0bdf19b9bd0e14838f380b4936dfae1fa503a74"
48
+ "gitHead": "bccb494a9760b2b4a75d4b7c47647a5105630704"
49
49
  }