@rian8337/osu-difficulty-calculator 2.1.0 → 2.1.2

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.
package/dist/index.js CHANGED
@@ -47,11 +47,15 @@ class DifficultyHitObject {
47
47
  /**
48
48
  * The preempt time of the hitobject.
49
49
  */
50
+ baseTimePreempt = 600;
51
+ /**
52
+ * Adjusted preempt time of the hitobject, taking speed multiplier into account.
53
+ */
50
54
  timePreempt = 600;
51
55
  /**
52
56
  * The fade in time of the hitobject.
53
57
  */
54
- timeFadeIn = 450;
58
+ timeFadeIn = 400;
55
59
  /**
56
60
  * The aim strain generated by the hitobject if sliders are considered.
57
61
  */
@@ -203,16 +207,44 @@ class DifficultyHitObject {
203
207
  // but this is an approximation and such a case is unlikely to be hit where this function is used.
204
208
  return 0;
205
209
  }
206
- const fadeInStartTime = this.object.startTime - this.timePreempt;
210
+ const fadeInStartTime = this.object.startTime - this.baseTimePreempt;
207
211
  const fadeInDuration = this.timeFadeIn;
208
212
  if (isHidden) {
209
213
  const fadeOutStartTime = fadeInStartTime + fadeInDuration;
210
- const fadeOutDuration = this.timePreempt * osuBase.ModHidden.fadeOutDurationMultiplier;
214
+ const fadeOutDuration = this.baseTimePreempt * osuBase.ModHidden.fadeOutDurationMultiplier;
211
215
  return Math.min(osuBase.MathUtils.clamp((time - fadeInStartTime) / fadeInDuration, 0, 1), 1 -
212
216
  osuBase.MathUtils.clamp((time - fadeOutStartTime) / fadeOutDuration, 0, 1));
213
217
  }
214
218
  return osuBase.MathUtils.clamp((time - fadeInStartTime) / fadeInDuration, 0, 1);
215
219
  }
220
+ /**
221
+ * Determines whether this hitobject is considered overlapping with the hitobject before it.
222
+ *
223
+ * Keep in mind that "overlapping" in this case is overlapping to the point where both hitobjects
224
+ * can be hit with just a single tap in osu!droid.
225
+ *
226
+ * @param considerDistance Whether to consider the distance between both hitobjects.
227
+ * @returns Whether the hitobject is considered overlapping.
228
+ */
229
+ isOverlapping(considerDistance) {
230
+ if (this.object instanceof osuBase.Spinner) {
231
+ return false;
232
+ }
233
+ const previous = this.previous(0);
234
+ if (!previous || previous.object instanceof osuBase.Spinner) {
235
+ return false;
236
+ }
237
+ if (this.deltaTime >= 5) {
238
+ return false;
239
+ }
240
+ if (considerDistance) {
241
+ return ((previous.object instanceof osuBase.Slider
242
+ ? Math.min(previous.object.stackedEndPosition.getDistance(this.object.stackedPosition), previous.object.lazyEndPosition?.getDistance(this.object.stackedPosition) ?? Number.POSITIVE_INFINITY)
243
+ : previous.object.stackedEndPosition.getDistance(this.object.stackedPosition)) <=
244
+ 2 * this.object.radius);
245
+ }
246
+ return true;
247
+ }
216
248
  }
217
249
 
218
250
  /**
@@ -222,7 +254,7 @@ class DifficultyHitObjectCreator {
222
254
  /**
223
255
  * The threshold for small circle buff for osu!droid.
224
256
  */
225
- DROID_CIRCLESIZE_BUFF_THRESHOLD = 52.5;
257
+ DROID_CIRCLESIZE_BUFF_THRESHOLD = 70;
226
258
  /**
227
259
  * The threshold for small circle buff for osu!standard.
228
260
  */
@@ -254,17 +286,7 @@ class DifficultyHitObjectCreator {
254
286
  object.index = difficultyObjects.length - 1;
255
287
  object.object.scale = scale;
256
288
  object.timePreempt = params.preempt;
257
- // Preempt time can go below 450ms. Normally, this is achieved via the DT mod or a
258
- // custom speed multiplier which uniformly speeds up all animations game wide regardless of AR.
259
- //
260
- // This uniform speedup is hard to match 1:1, however we can at least make AR>10 (via mods)
261
- // feel good by extending the upper linear function above.
262
- //
263
- // Note that this doesn't exactly match the AR>10 visuals as they're classically known, but it feels good.
264
- // This adjustment is necessary for AR>10, otherwise timePreempt can become smaller
265
- // leading to hitcircles not fully fading in.
266
- object.timeFadeIn =
267
- 400 * Math.min(1, object.timePreempt / osuBase.MapStats.arToMS(10));
289
+ object.baseTimePreempt = params.preempt * params.speedMultiplier;
268
290
  if (object.object instanceof osuBase.Slider) {
269
291
  object.velocity =
270
292
  object.object.velocity * params.speedMultiplier;
@@ -288,8 +310,7 @@ class DifficultyHitObjectCreator {
288
310
  params.speedMultiplier;
289
311
  // Cap to 25ms to prevent difficulty calculation breaking from simultaneous objects.
290
312
  object.strainTime = Math.max(this.minDeltaTime, object.deltaTime);
291
- if (object.object instanceof osuBase.Spinner ||
292
- lastObject.object instanceof osuBase.Spinner) {
313
+ if (object.object instanceof osuBase.Spinner) {
293
314
  difficultyObjects.push(object);
294
315
  continue;
295
316
  }
@@ -308,20 +329,22 @@ class DifficultyHitObjectCreator {
308
329
  for (const hitObject of visibleObjects) {
309
330
  const deltaTime = Math.max(0, hitObject.startTime / params.speedMultiplier -
310
331
  object.endTime);
311
- object.noteDensity += 1 - deltaTime / params.preempt;
312
- if (!(hitObject instanceof osuBase.Spinner)) {
313
- object.overlappingFactor +=
314
- // Penalize objects that are too close to the object in both distance
315
- // and delta time to prevent stream maps from being overweighted.
316
- Math.max(0, 1 -
317
- object.object.stackedPosition.getDistance(hitObject.stackedEndPosition) /
318
- (3 * object.object.radius)) *
319
- (7.5 /
320
- (1 +
321
- Math.exp(0.15 *
322
- (Math.max(deltaTime, this.minDeltaTime) -
323
- 75))));
324
- }
332
+ object.noteDensity += 1 - deltaTime / object.timePreempt;
333
+ object.overlappingFactor +=
334
+ // Penalize objects that are too close to the object in both distance
335
+ // and delta time to prevent stream maps from being overweighted.
336
+ Math.max(0, 1 -
337
+ object.object.stackedPosition.getDistance(hitObject.stackedEndPosition) /
338
+ (3 * object.object.radius)) *
339
+ (7.5 /
340
+ (1 +
341
+ Math.exp(0.15 *
342
+ (Math.max(deltaTime, this.minDeltaTime) -
343
+ 75))));
344
+ }
345
+ if (lastObject.object instanceof osuBase.Spinner) {
346
+ difficultyObjects.push(object);
347
+ continue;
325
348
  }
326
349
  const lastCursorPosition = this.getEndCursorPosition(lastObject.object);
327
350
  object.lazyJumpDistance = object.object.stackedPosition
@@ -463,8 +486,8 @@ class DifficultyHitObjectCreator {
463
486
  if (radius < this.DROID_CIRCLESIZE_BUFF_THRESHOLD) {
464
487
  scalingFactor *=
465
488
  1 +
466
- Math.min(this.DROID_CIRCLESIZE_BUFF_THRESHOLD - radius, 20) /
467
- 40;
489
+ Math.pow((this.DROID_CIRCLESIZE_BUFF_THRESHOLD - radius) /
490
+ 50, 2);
468
491
  }
469
492
  break;
470
493
  case osuBase.modes.osu:
@@ -621,6 +644,8 @@ class DifficultyCalculator {
621
644
  * An evaluator for calculating osu!droid Aim skill.
622
645
  */
623
646
  class DroidAimEvaluator extends AimEvaluator {
647
+ static acuteAngleMultiplier = 1.95;
648
+ static sliderMultiplier = 1.35;
624
649
  /**
625
650
  * Spacing threshold for a single hitobject spacing.
626
651
  */
@@ -639,14 +664,9 @@ class DroidAimEvaluator extends AimEvaluator {
639
664
  * @param withSliders Whether to take slider difficulty into account.
640
665
  */
641
666
  static evaluateDifficultyOf(current, withSliders) {
642
- const last = current.previous(0);
643
667
  if (current.object instanceof osuBase.Spinner ||
644
668
  // Exclude overlapping objects that can be tapped at once.
645
- (current.deltaTime < 5 &&
646
- ((last?.object instanceof osuBase.Slider
647
- ? Math.min(last.object.stackedEndPosition.getDistance(current.object.stackedPosition), last.object.lazyEndPosition.getDistance(current.object.stackedPosition))
648
- : last?.object.stackedEndPosition.getDistance(current.object.stackedPosition)) ?? Number.POSITIVE_INFINITY) <=
649
- 2 * current.object.radius)) {
669
+ current.isOverlapping(true)) {
650
670
  return 0;
651
671
  }
652
672
  return (this.aimStrainOf(current, withSliders) +
@@ -671,7 +691,9 @@ class DroidAimEvaluator extends AimEvaluator {
671
691
  // Calculate the slider velocity from slider head to slider end.
672
692
  const travelVelocity = last.travelDistance / last.travelTime;
673
693
  // Calculate the movement velocity from slider end to current object.
674
- const movementVelocity = current.minimumJumpDistance / current.minimumJumpTime;
694
+ const movementVelocity = current.minimumJumpTime !== 0
695
+ ? current.minimumJumpDistance / current.minimumJumpTime
696
+ : 0;
675
697
  // Take the larger total combined velocity.
676
698
  currentVelocity = Math.max(currentVelocity, movementVelocity + travelVelocity);
677
699
  }
@@ -681,7 +703,9 @@ class DroidAimEvaluator extends AimEvaluator {
681
703
  lastLast.object.ticks > 0 &&
682
704
  withSliders) {
683
705
  const travelVelocity = lastLast.travelDistance / lastLast.travelTime;
684
- const movementVelocity = last.minimumJumpDistance / last.minimumJumpTime;
706
+ const movementVelocity = last.minimumJumpTime !== 0
707
+ ? last.minimumJumpDistance / last.minimumJumpTime
708
+ : 0;
685
709
  prevVelocity = Math.max(prevVelocity, movementVelocity + travelVelocity);
686
710
  }
687
711
  let wideAngleBonus = 0;
@@ -745,15 +769,7 @@ class DroidAimEvaluator extends AimEvaluator {
745
769
  Math.max(prevVelocity, currentVelocity)), 2);
746
770
  // Reward for % distance up to 125 / strainTime for overlaps where velocity is still changing.
747
771
  const overlapVelocityBuff = Math.min(125 / Math.min(current.strainTime, last.strainTime), Math.abs(prevVelocity - currentVelocity));
748
- // Reward for % distance slowed down compared to previous, paying attention to not award overlap.
749
- const nonOverlapVelocityBuff = Math.abs(prevVelocity - currentVelocity) *
750
- // Do not award overlap.
751
- Math.pow(Math.sin((Math.PI / 2) *
752
- Math.min(1, Math.min(current.lazyJumpDistance, last.lazyJumpDistance) / 100)), 2);
753
- // Choose the largest bonus, multiplied by ratio.
754
- velocityChangeBonus =
755
- Math.max(overlapVelocityBuff, nonOverlapVelocityBuff) *
756
- distanceRatio;
772
+ velocityChangeBonus = overlapVelocityBuff * distanceRatio;
757
773
  // Penalize for rhythm changes.
758
774
  velocityChangeBonus *= Math.pow(Math.min(current.strainTime, last.strainTime) /
759
775
  Math.max(current.strainTime, last.strainTime), 2);
@@ -883,17 +899,18 @@ class StrainSkill extends Skill {
883
899
  */
884
900
  class DroidSkill extends StrainSkill {
885
901
  difficultyValue() {
886
- const sortedStrains = this.strainPeaks
887
- .slice()
888
- .sort((a, b) => b - a);
889
- // We are reducing the highest strains first to account for extreme difficulty spikes.
890
- for (let i = 0; i < Math.min(sortedStrains.length, this.reducedSectionCount); ++i) {
891
- const scale = Math.log10(osuBase.Interpolation.lerp(1, 10, osuBase.MathUtils.clamp(i / this.reducedSectionCount, 0, 1)));
892
- sortedStrains[i] *= osuBase.Interpolation.lerp(this.reducedSectionBaseline, 1, scale);
902
+ const strains = this.strainPeaks.slice();
903
+ if (this.reducedSectionCount > 0) {
904
+ strains.sort((a, b) => b - a);
905
+ // We are reducing the highest strains first to account for extreme difficulty spikes.
906
+ for (let i = 0; i < Math.min(strains.length, this.reducedSectionCount); ++i) {
907
+ const scale = Math.log10(osuBase.Interpolation.lerp(1, 10, osuBase.MathUtils.clamp(i / this.reducedSectionCount, 0, 1)));
908
+ strains[i] *= osuBase.Interpolation.lerp(this.reducedSectionBaseline, 1, scale);
909
+ }
893
910
  }
894
911
  // Math here preserves the property that two notes of equal difficulty x, we have their summed difficulty = x * starsPerDouble.
895
912
  // This also applies to two sets of notes with equal difficulty.
896
- return Math.pow(sortedStrains.reduce((a, v) => {
913
+ return Math.pow(strains.reduce((a, v) => {
897
914
  if (v <= 0) {
898
915
  return a;
899
916
  }
@@ -906,7 +923,7 @@ class DroidSkill extends StrainSkill {
906
923
  * Represents the skill required to correctly aim at every object in the map with a uniform CircleSize and normalized distances.
907
924
  */
908
925
  class DroidAim extends DroidSkill {
909
- skillMultiplier = 23.25;
926
+ skillMultiplier = 24.15;
910
927
  strainDecayBase = 0.15;
911
928
  reducedSectionCount = 10;
912
929
  reducedSectionBaseline = 0.75;
@@ -967,18 +984,23 @@ class DroidTapEvaluator extends SpeedEvaluator {
967
984
  static evaluateDifficultyOf(current, greatWindow, considerCheesability) {
968
985
  if (current.object instanceof osuBase.Spinner ||
969
986
  // Exclude overlapping objects that can be tapped at once.
970
- current.deltaTime < 5) {
987
+ current.isOverlapping(false)) {
971
988
  return 0;
972
989
  }
973
- const prev = current.previous(0);
974
990
  let strainTime = current.strainTime;
991
+ let doubletapness = 1;
975
992
  if (considerCheesability) {
976
993
  const greatWindowFull = greatWindow * 2;
977
- // Aim to nerf cheesy rhythms (very fast consecutive doubles with large deltatimes between).
978
- if (prev &&
979
- strainTime < greatWindowFull &&
980
- prev.strainTime > strainTime) {
981
- strainTime = osuBase.Interpolation.lerp(prev.strainTime, strainTime, strainTime / greatWindowFull);
994
+ // Nerf doubletappable doubles.
995
+ const next = current.next(0);
996
+ if (next) {
997
+ const currentDeltaTime = Math.max(1, current.deltaTime);
998
+ const nextDeltaTime = Math.max(1, next.deltaTime);
999
+ const deltaDifference = Math.abs(nextDeltaTime - currentDeltaTime);
1000
+ const speedRatio = currentDeltaTime /
1001
+ Math.max(currentDeltaTime, deltaDifference);
1002
+ const windowRatio = Math.pow(Math.min(1, currentDeltaTime / greatWindowFull), 2);
1003
+ doubletapness = Math.pow(speedRatio, 1 - windowRatio);
982
1004
  }
983
1005
  // Cap deltatime to the OD 300 hitwindow.
984
1006
  // 0.58 is derived from making sure 260 BPM 1/4 OD5 streams aren't nerfed harshly, whilst 0.91 limits the effect of the cap.
@@ -989,7 +1011,7 @@ class DroidTapEvaluator extends SpeedEvaluator {
989
1011
  speedBonus +=
990
1012
  0.75 * Math.pow((this.minSpeedBonus - strainTime) / 40, 2);
991
1013
  }
992
- return speedBonus / strainTime;
1014
+ return (speedBonus * doubletapness) / strainTime;
993
1015
  }
994
1016
  }
995
1017
 
@@ -1002,8 +1024,6 @@ class DroidTap extends DroidSkill {
1002
1024
  reducedSectionBaseline = 0.75;
1003
1025
  strainDecayBase = 0.3;
1004
1026
  starsPerDouble = 1.1;
1005
- // ~200 1/4 BPM streams
1006
- minSpeedBonus = 75;
1007
1027
  currentTapStrain = 0;
1008
1028
  currentOriginalTapStrain = 0;
1009
1029
  greatWindow;
@@ -1015,7 +1035,7 @@ class DroidTap extends DroidSkill {
1015
1035
  * @param current The hitobject to calculate.
1016
1036
  */
1017
1037
  strainValueAt(current) {
1018
- const decay = this.strainDecay(current.deltaTime);
1038
+ const decay = this.strainDecay(current.strainTime);
1019
1039
  this.currentTapStrain *= decay;
1020
1040
  this.currentTapStrain +=
1021
1041
  DroidTapEvaluator.evaluateDifficultyOf(current, this.greatWindow, true) * this.skillMultiplier;
@@ -1059,14 +1079,9 @@ class DroidFlashlightEvaluator extends FlashlightEvaluator {
1059
1079
  * @param isHiddenMod Whether the Hidden mod is enabled.
1060
1080
  */
1061
1081
  static evaluateDifficultyOf(current, isHiddenMod) {
1062
- const actualLast = current.previous(0);
1063
1082
  if (current.object instanceof osuBase.Spinner ||
1064
1083
  // Exclude overlapping objects that can be tapped at once.
1065
- (current.deltaTime < 5 &&
1066
- ((actualLast?.object instanceof osuBase.Slider
1067
- ? Math.min(actualLast.object.stackedEndPosition.getDistance(current.object.stackedPosition), actualLast.object.lazyEndPosition.getDistance(current.object.stackedPosition))
1068
- : actualLast?.object.stackedEndPosition.getDistance(current.object.stackedPosition)) ?? Number.POSITIVE_INFINITY) <=
1069
- 2 * current.object.radius)) {
1084
+ current.isOverlapping(true)) {
1070
1085
  return 0;
1071
1086
  }
1072
1087
  const scalingFactor = 52 / current.object.radius;
@@ -1078,7 +1093,7 @@ class DroidFlashlightEvaluator extends FlashlightEvaluator {
1078
1093
  const currentObject = current.previous(i);
1079
1094
  if (!(currentObject.object instanceof osuBase.Spinner) &&
1080
1095
  // Exclude overlapping objects that can be tapped at once.
1081
- currentObject.deltaTime >= 5) {
1096
+ !currentObject.isOverlapping(false)) {
1082
1097
  const jumpDistance = current.object.stackedPosition.subtract(currentObject.object.endPosition).length;
1083
1098
  cumulativeStrainTime += last.strainTime;
1084
1099
  // We want to nerf objects that can be easily seen within the Flashlight circle radius.
@@ -1090,8 +1105,8 @@ class DroidFlashlightEvaluator extends FlashlightEvaluator {
1090
1105
  // Bonus based on how visible the object is.
1091
1106
  const opacityBonus = 1 +
1092
1107
  this.maxOpacityBonus *
1093
- (1.0 -
1094
- current.opacityAt(currentObject.startTime, isHiddenMod));
1108
+ (1 -
1109
+ current.opacityAt(currentObject.object.startTime, isHiddenMod));
1095
1110
  result +=
1096
1111
  (stackNerf * opacityBonus * scalingFactor * jumpDistance) /
1097
1112
  cumulativeStrainTime;
@@ -1112,8 +1127,8 @@ class DroidFlashlightEvaluator extends FlashlightEvaluator {
1112
1127
  class DroidFlashlight extends DroidSkill {
1113
1128
  skillMultiplier = 0.1;
1114
1129
  strainDecayBase = 0.15;
1115
- reducedSectionCount = 10;
1116
- reducedSectionBaseline = 0.75;
1130
+ reducedSectionCount = 0;
1131
+ reducedSectionBaseline = 1;
1117
1132
  starsPerDouble = 1.05;
1118
1133
  isHidden;
1119
1134
  constructor(mods) {
@@ -1319,37 +1334,50 @@ class DroidVisualEvaluator {
1319
1334
  * @param isHiddenMod Whether the Hidden mod is enabled.
1320
1335
  */
1321
1336
  static evaluateDifficultyOf(current, isHiddenMod) {
1322
- const last = current.previous(0);
1323
1337
  if (current.object instanceof osuBase.Spinner ||
1324
1338
  // Exclude overlapping objects that can be tapped at once.
1325
- (current.deltaTime < 5 &&
1326
- ((last?.object instanceof osuBase.Slider
1327
- ? Math.min(last.object.stackedEndPosition.getDistance(current.object.stackedPosition), last.object.lazyEndPosition.getDistance(current.object.stackedPosition))
1328
- : last?.object.stackedEndPosition.getDistance(current.object.stackedPosition)) ?? Number.POSITIVE_INFINITY) <=
1329
- 2 * current.object.radius)) {
1339
+ current.isOverlapping(true)) {
1330
1340
  return 0;
1331
1341
  }
1332
1342
  // Start with base density and give global bonus for Hidden.
1333
1343
  // Add density caps for sanity.
1334
- let strain = Math.min(20, Math.pow(current.noteDensity, 2)) /
1335
- 10 /
1336
- (1 + current.overlappingFactor);
1344
+ let strain;
1337
1345
  if (isHiddenMod) {
1346
+ strain = Math.min(25, Math.pow(current.noteDensity, 2.25));
1347
+ }
1348
+ else {
1349
+ strain = Math.min(20, Math.pow(current.noteDensity, 2));
1350
+ }
1351
+ // Bonus based on how visible the object is.
1352
+ for (let i = 0; i < Math.min(current.index, 10); ++i) {
1353
+ const previous = current.previous(i);
1354
+ if (previous.object instanceof osuBase.Spinner ||
1355
+ // Exclude overlapping objects that can be tapped at once.
1356
+ previous.isOverlapping(true)) {
1357
+ continue;
1358
+ }
1359
+ // Do not consider objects that don't fall under time preempt.
1360
+ if (current.object.startTime - previous.object.endTime >
1361
+ current.baseTimePreempt) {
1362
+ break;
1363
+ }
1338
1364
  strain +=
1339
- Math.min(25, Math.pow(current.noteDensity, 1.25)) /
1340
- 10 /
1341
- (1 + current.overlappingFactor / 1.25);
1365
+ (1 -
1366
+ current.opacityAt(previous.object.startTime, isHiddenMod)) /
1367
+ 4;
1342
1368
  }
1343
- // Give bonus for AR higher than 10.33.
1369
+ // Scale the value with overlapping factor.
1370
+ strain /= 10 * (1 + current.overlappingFactor);
1344
1371
  if (current.timePreempt < 400) {
1345
- strain += Math.pow(400 - current.timePreempt, 1.3) / 135;
1372
+ // Give bonus for AR higher than 10.33.
1373
+ strain += Math.pow(400 - current.timePreempt, 1.3) / 100;
1346
1374
  }
1347
1375
  if (current.object instanceof osuBase.Slider) {
1348
1376
  const scalingFactor = 50 / current.object.radius;
1349
1377
  // Reward sliders based on velocity.
1350
1378
  strain +=
1351
1379
  // Avoid overbuffing extremely fast sliders.
1352
- Math.min(5, current.velocity * 1.25) *
1380
+ Math.min(6, current.velocity * 1.5) *
1353
1381
  // Scale with distance travelled to avoid overbuffing fast sliders with short distance.
1354
1382
  Math.min(1, current.travelDistance / scalingFactor / 125);
1355
1383
  let cumulativeStrainTime = 0;
@@ -1359,14 +1387,12 @@ class DroidVisualEvaluator {
1359
1387
  cumulativeStrainTime += last.strainTime;
1360
1388
  if (!(last.object instanceof osuBase.Slider) ||
1361
1389
  // Exclude overlapping objects that can be tapped at once.
1362
- (last.deltaTime < 5 &&
1363
- Math.min(last.object.stackedEndPosition.getDistance(current.object.stackedPosition), last.object.lazyEndPosition.getDistance(current.object.stackedPosition)) <=
1364
- 2 * current.object.radius)) {
1390
+ last.isOverlapping(true)) {
1365
1391
  continue;
1366
1392
  }
1367
1393
  strain +=
1368
1394
  // Avoid overbuffing extremely fast velocity changes.
1369
- Math.min(8, 2 * Math.abs(current.velocity - last.velocity)) *
1395
+ Math.min(10, 2.5 * Math.abs(current.velocity - last.velocity)) *
1370
1396
  // Scale with distance travelled to avoid overbuffing fast sliders with short distance.
1371
1397
  Math.min(1, last.travelDistance / scalingFactor / 100) *
1372
1398
  // Scale with cumulative strain time to avoid overbuffing past sliders.
@@ -1384,7 +1410,7 @@ class DroidVisual extends DroidSkill {
1384
1410
  starsPerDouble = 1.025;
1385
1411
  reducedSectionCount = 10;
1386
1412
  reducedSectionBaseline = 0.75;
1387
- skillMultiplier = 20;
1413
+ skillMultiplier = 10;
1388
1414
  strainDecayBase = 0.1;
1389
1415
  isHidden;
1390
1416
  constructor(mods) {
@@ -1444,7 +1470,10 @@ class DroidDifficultyCalculator extends DifficultyCalculator {
1444
1470
  calculateTap() {
1445
1471
  const tapSkill = new DroidTap(this.mods, this.stats.od);
1446
1472
  this.calculateSkills(tapSkill);
1447
- if (!this.mods.some((m) => m instanceof osuBase.ModRelax)) {
1473
+ if (this.mods.some((m) => m instanceof osuBase.ModRelax)) {
1474
+ this.tap = 0;
1475
+ }
1476
+ else {
1448
1477
  this.postCalculateTap(tapSkill);
1449
1478
  }
1450
1479
  this.calculateSpeedAttributes();
@@ -1454,6 +1483,7 @@ class DroidDifficultyCalculator extends DifficultyCalculator {
1454
1483
  */
1455
1484
  calculateRhythm() {
1456
1485
  if (this.mods.some((m) => m instanceof osuBase.ModRelax)) {
1486
+ this.rhythm = 0;
1457
1487
  return;
1458
1488
  }
1459
1489
  const rhythmSkill = new DroidRhythm(this.mods, this.stats.od);
@@ -1472,6 +1502,10 @@ class DroidDifficultyCalculator extends DifficultyCalculator {
1472
1502
  * Calculates the visual star rating of the beatmap and stores it in this instance.
1473
1503
  */
1474
1504
  calculateVisual() {
1505
+ if (this.mods.some((m) => m instanceof osuBase.ModRelax)) {
1506
+ this.visual = 0;
1507
+ return;
1508
+ }
1475
1509
  const visualSkill = new DroidVisual(this.mods);
1476
1510
  this.calculateSkills(visualSkill);
1477
1511
  this.postCalculateVisual(visualSkill);
@@ -1482,7 +1516,7 @@ class DroidDifficultyCalculator extends DifficultyCalculator {
1482
1516
  const flashlightPerformanceValue = this.mods.some((m) => m instanceof osuBase.ModFlashlight)
1483
1517
  ? Math.pow(this.flashlight, 2) * 25
1484
1518
  : 0;
1485
- const visualPerformanceValue = Math.pow(this.visual, 2) * 25;
1519
+ const visualPerformanceValue = Math.pow(this.visual, 2) * 22.5;
1486
1520
  const basePerformanceValue = Math.pow(Math.pow(aimPerformanceValue, 1.1) +
1487
1521
  Math.pow(tapPerformanceValue, 1.1) +
1488
1522
  Math.pow(flashlightPerformanceValue, 1.1) +
@@ -1498,15 +1532,22 @@ class DroidDifficultyCalculator extends DifficultyCalculator {
1498
1532
  calculateAll() {
1499
1533
  const skills = this.createSkills();
1500
1534
  const isRelax = this.mods.some((m) => m instanceof osuBase.ModRelax);
1535
+ if (isRelax) {
1536
+ // Remove visual skill to reduce overhead.
1537
+ skills.pop();
1538
+ }
1501
1539
  this.calculateSkills(...skills);
1502
1540
  const aimSkill = skills[0];
1503
1541
  const aimSkillWithoutSliders = skills[1];
1504
1542
  const rhythmSkill = skills[2];
1505
1543
  const tapSkill = skills[3];
1506
1544
  const flashlightSkill = skills[4];
1507
- const visualSkill = skills[5];
1545
+ const visualSkill = skills[5] ?? null;
1508
1546
  this.postCalculateAim(aimSkill, aimSkillWithoutSliders);
1509
- if (!isRelax) {
1547
+ if (isRelax) {
1548
+ this.tap = 0;
1549
+ }
1550
+ else {
1510
1551
  this.postCalculateTap(tapSkill);
1511
1552
  }
1512
1553
  this.calculateSpeedAttributes();
@@ -1514,7 +1555,9 @@ class DroidDifficultyCalculator extends DifficultyCalculator {
1514
1555
  this.postCalculateRhythm(rhythmSkill);
1515
1556
  }
1516
1557
  this.postCalculateFlashlight(flashlightSkill);
1517
- this.postCalculateVisual(visualSkill);
1558
+ if (visualSkill) {
1559
+ this.postCalculateVisual(visualSkill);
1560
+ }
1518
1561
  this.calculateTotal();
1519
1562
  }
1520
1563
  /**
@@ -1563,6 +1606,9 @@ class DroidDifficultyCalculator extends DifficultyCalculator {
1563
1606
  this.starValue(aimSkillWithoutSliders.difficultyValue()) /
1564
1607
  this.aim;
1565
1608
  }
1609
+ if (this.mods.some((m) => m instanceof osuBase.ModRelax)) {
1610
+ this.aim *= 0.9;
1611
+ }
1566
1612
  }
1567
1613
  /**
1568
1614
  * Called after tap skill calculation.
@@ -1589,7 +1635,9 @@ class DroidDifficultyCalculator extends DifficultyCalculator {
1589
1635
  * @param rhythmSkill The rhythm skill.
1590
1636
  */
1591
1637
  postCalculateRhythm(rhythmSkill) {
1592
- this.rhythm = this.starValue(rhythmSkill.difficultyValue());
1638
+ this.rhythm = this.mods.some((m) => m instanceof osuBase.ModRelax)
1639
+ ? 0
1640
+ : this.starValue(rhythmSkill.difficultyValue());
1593
1641
  }
1594
1642
  /**
1595
1643
  * Called after flashlight skill calculation.
@@ -1599,6 +1647,9 @@ class DroidDifficultyCalculator extends DifficultyCalculator {
1599
1647
  postCalculateFlashlight(flashlightSkill) {
1600
1648
  this.strainPeaks.flashlight = flashlightSkill.strainPeaks;
1601
1649
  this.flashlight = this.starValue(flashlightSkill.difficultyValue());
1650
+ if (this.mods.some((m) => m instanceof osuBase.ModRelax)) {
1651
+ this.flashlight *= 0.7;
1652
+ }
1602
1653
  }
1603
1654
  /**
1604
1655
  * Called after visual skill calculation.
@@ -1606,7 +1657,9 @@ class DroidDifficultyCalculator extends DifficultyCalculator {
1606
1657
  * @param visualSkill The visual skill.
1607
1658
  */
1608
1659
  postCalculateVisual(visualSkill) {
1609
- this.visual = this.starValue(visualSkill.difficultyValue());
1660
+ this.visual = this.mods.some((m) => m instanceof osuBase.ModRelax)
1661
+ ? 0
1662
+ : this.starValue(visualSkill.difficultyValue());
1610
1663
  }
1611
1664
  }
1612
1665
 
@@ -1678,7 +1731,6 @@ class PerformanceCalculator {
1678
1731
  const mod = this.difficultyCalculator.mods;
1679
1732
  const baseAR = this.difficultyCalculator.beatmap.difficulty.ar;
1680
1733
  const baseOD = this.difficultyCalculator.beatmap.difficulty.od;
1681
- // Penalize misses by assessing # of misses relative to the total # of objects. Default a 3% reduction for any # of misses.
1682
1734
  this.comboPenalty = Math.min(Math.pow(combo / maxCombo, 0.8), 1);
1683
1735
  if (options?.accPercent instanceof osuBase.Accuracy) {
1684
1736
  // Copy into new instance to not modify the original
@@ -1695,7 +1747,7 @@ class PerformanceCalculator {
1695
1747
  this.computedAccuracy = new osuBase.Accuracy({
1696
1748
  percent: options?.accPercent,
1697
1749
  nobjects: this.difficultyCalculator.objects.length,
1698
- nmiss: options?.miss ?? 0,
1750
+ nmiss: options?.miss || 0,
1699
1751
  });
1700
1752
  }
1701
1753
  this.effectiveMissCount = this.calculateEffectiveMissCount(combo, maxCombo);
@@ -1709,24 +1761,40 @@ class PerformanceCalculator {
1709
1761
  this.difficultyCalculator.objects.length, 0.85);
1710
1762
  }
1711
1763
  if (this.difficultyCalculator.mods.some((m) => m instanceof osuBase.ModRelax)) {
1764
+ let n100Multiplier = 1;
1765
+ let n50Multiplier = 1;
1766
+ if (this.mode === osuBase.modes.droid) {
1767
+ // Graph: https://www.desmos.com/calculator/bc9eybdthb
1768
+ // We use OD13.3 as maximum since it's the value at which great hit window becomes 0.
1769
+ n100Multiplier = Math.max(0, this.difficultyCalculator.stats.od > 0
1770
+ ? 1 -
1771
+ Math.pow(this.difficultyCalculator.stats.od / 13.33, 1.8)
1772
+ : 1);
1773
+ n50Multiplier = Math.max(0, this.difficultyCalculator.stats.od > 0.0
1774
+ ? 1 -
1775
+ Math.pow(this.difficultyCalculator.stats.od / 13.33, 5)
1776
+ : 1);
1777
+ }
1712
1778
  // As we're adding 100s and 50s to an approximated number of combo breaks, the result can be higher
1713
- // than total hits in specific scenarios (which breaks some calculations), so we need to clamp it.
1779
+ // than total hits in specific scenarios (which breaks some calculations), so we need to clamp it.
1714
1780
  this.effectiveMissCount = Math.min(this.effectiveMissCount +
1715
- this.computedAccuracy.n100 +
1716
- this.computedAccuracy.n50, this.difficultyCalculator.objects.length);
1717
- this.finalMultiplier *= 0.6;
1781
+ this.computedAccuracy.n100 * n100Multiplier +
1782
+ this.computedAccuracy.n50 * n50Multiplier, this.difficultyCalculator.objects.length);
1783
+ if (this.mode === osuBase.modes.osu) {
1784
+ this.finalMultiplier *= 0.6;
1785
+ }
1718
1786
  }
1719
1787
  this.mapStatistics = new osuBase.MapStats({
1720
1788
  ar: baseAR,
1721
1789
  od: baseOD,
1722
1790
  mods: mod,
1723
1791
  });
1724
- // We assume 15% of sliders in a beatmap are difficult since there's no way to tell from the performance calculator.
1725
- const estimateDifficultSliders = this.difficultyCalculator.beatmap.hitObjects.sliders * 0.15;
1726
- const estimateSliderEndsDropped = osuBase.MathUtils.clamp(Math.min(this.computedAccuracy.n300 +
1727
- this.computedAccuracy.n50 +
1728
- this.computedAccuracy.nmiss, maxCombo - combo), 0, estimateDifficultSliders);
1729
1792
  if (this.difficultyCalculator.beatmap.hitObjects.sliders > 0) {
1793
+ // We assume 15% of sliders in a beatmap are difficult since there's no way to tell from the performance calculator.
1794
+ const estimateDifficultSliders = this.difficultyCalculator.beatmap.hitObjects.sliders * 0.15;
1795
+ const estimateSliderEndsDropped = osuBase.MathUtils.clamp(Math.min(this.computedAccuracy.n300 +
1796
+ this.computedAccuracy.n50 +
1797
+ this.computedAccuracy.nmiss, maxCombo - combo), 0, estimateDifficultSliders);
1730
1798
  this.sliderNerfFactor =
1731
1799
  (1 - this.difficultyCalculator.attributes.sliderFactor) *
1732
1800
  Math.pow(1 -
@@ -1869,7 +1937,7 @@ class DroidPerformanceCalculator extends PerformanceCalculator {
1869
1937
  relevantAccuracy.value(this.difficultyCalculator.attributes.speedNoteCount)) /
1870
1938
  2, (14 - Math.max(od, 2.5)) / 2);
1871
1939
  // Scale the tap value with # of 50s to punish doubletapping.
1872
- this.tap *= Math.pow(0.98, Math.max(0, this.computedAccuracy.n50 - objectCount / 500));
1940
+ this.tap *= Math.pow(0.99, Math.max(0, this.computedAccuracy.n50 - objectCount / 500));
1873
1941
  // Scale the tap value with three-fingered penalty.
1874
1942
  this.tap /= this.tapPenalty;
1875
1943
  }
@@ -1904,9 +1972,6 @@ class DroidPerformanceCalculator extends PerformanceCalculator {
1904
1972
  // Scale the accuracy value with rhythm complexity.
1905
1973
  this.accuracy *=
1906
1974
  1.5 / (1 + Math.exp(-(this.difficultyCalculator.rhythm - 1) / 2));
1907
- if (this.difficultyCalculator.mods.some((m) => m instanceof osuBase.ModHidden)) {
1908
- this.accuracy *= 1.08;
1909
- }
1910
1975
  if (this.difficultyCalculator.mods.some((m) => m instanceof osuBase.ModFlashlight)) {
1911
1976
  this.accuracy *= 1.02;
1912
1977
  }
@@ -1951,8 +2016,7 @@ class DroidPerformanceCalculator extends PerformanceCalculator {
1951
2016
  calculateVisualValue() {
1952
2017
  // Global variables
1953
2018
  const objectCount = this.difficultyCalculator.objects.length;
1954
- this.visual =
1955
- Math.pow(Math.pow(this.difficultyCalculator.visual, 0.8), 2) * 25;
2019
+ this.visual = Math.pow(this.difficultyCalculator.visual, 1.6) * 22.5;
1956
2020
  if (this.effectiveMissCount > 0) {
1957
2021
  // Penalize misses by assessing # of misses relative to the total # of objects. Default a 3% reduction for any # of misses.
1958
2022
  this.visual *=
@@ -1993,21 +2057,33 @@ class DroidPerformanceCalculator extends PerformanceCalculator {
1993
2057
  * and to calculate a final difficulty value representing the difficulty of hitting all the processed objects.
1994
2058
  */
1995
2059
  class OsuSkill extends StrainSkill {
2060
+ /**
2061
+ * The default multiplier applied to the final difficulty value after all other calculations.
2062
+ *
2063
+ * May be overridden via {@link difficultyMultiplier}.
2064
+ */
2065
+ static defaultDifficultyMultiplier = 1.06;
2066
+ /**
2067
+ * The final multiplier to be applied to the final difficulty value after all other calculations.
2068
+ */
2069
+ difficultyMultiplier = OsuSkill.defaultDifficultyMultiplier;
1996
2070
  difficultyValue() {
1997
- const sortedStrains = this.strainPeaks
2071
+ const strains = this.strainPeaks
1998
2072
  .slice()
1999
2073
  .sort((a, b) => b - a);
2000
- // We are reducing the highest strains first to account for extreme difficulty spikes.
2001
- for (let i = 0; i < Math.min(sortedStrains.length, this.reducedSectionCount); ++i) {
2002
- const scale = Math.log10(osuBase.Interpolation.lerp(1, 10, osuBase.MathUtils.clamp(i / this.reducedSectionCount, 0, 1)));
2003
- sortedStrains[i] *= osuBase.Interpolation.lerp(this.reducedSectionBaseline, 1, scale);
2074
+ if (this.reducedSectionCount > 0) {
2075
+ // We are reducing the highest strains first to account for extreme difficulty spikes.
2076
+ for (let i = 0; i < Math.min(strains.length, this.reducedSectionCount); ++i) {
2077
+ const scale = Math.log10(osuBase.Interpolation.lerp(1, 10, osuBase.MathUtils.clamp(i / this.reducedSectionCount, 0, 1)));
2078
+ strains[i] *= osuBase.Interpolation.lerp(this.reducedSectionBaseline, 1, scale);
2079
+ }
2080
+ strains.sort((a, b) => b - a);
2004
2081
  }
2005
2082
  // Difficulty is the weighted sum of the highest strains from every section.
2006
2083
  // We're sorting from highest to lowest strain.
2007
- sortedStrains.sort((a, b) => b - a);
2008
2084
  let difficulty = 0;
2009
2085
  let weight = 1;
2010
- for (const strain of sortedStrains) {
2086
+ for (const strain of strains) {
2011
2087
  const addition = strain * weight;
2012
2088
  if (difficulty + addition === difficulty) {
2013
2089
  break;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/evaluators/base/AimEvaluator.ts","../src/preprocessing/DifficultyHitObject.ts","../src/preprocessing/DifficultyHitObjectCreator.ts","../src/base/DifficultyCalculator.ts","../src/evaluators/droid/DroidAimEvaluator.ts","../src/base/Skill.ts","../src/base/StrainSkill.ts","../src/skills/droid/DroidSkill.ts","../src/skills/droid/DroidAim.ts","../src/evaluators/base/SpeedEvaluator.ts","../src/evaluators/droid/DroidTapEvaluator.ts","../src/skills/droid/DroidTap.ts","../src/evaluators/base/FlashlightEvaluator.ts","../src/evaluators/droid/DroidFlashlightEvaluator.ts","../src/skills/droid/DroidFlashlight.ts","../src/evaluators/base/RhythmEvaluator.ts","../src/evaluators/droid/DroidRhythmEvaluator.ts","../src/skills/droid/DroidRhythm.ts","../src/evaluators/droid/DroidVisualEvaluator.ts","../src/skills/droid/DroidVisual.ts","../src/DroidDifficultyCalculator.ts","../src/base/PerformanceCalculator.ts","../src/DroidPerformanceCalculator.ts","../src/skills/osu/OsuSkill.ts","../src/evaluators/osu/OsuAimEvaluator.ts","../src/skills/osu/OsuAim.ts","../src/evaluators/osu/OsuSpeedEvaluator.ts","../src/evaluators/osu/OsuRhythmEvaluator.ts","../src/skills/osu/OsuSpeed.ts","../src/evaluators/osu/OsuFlashlightEvaluator.ts","../src/skills/osu/OsuFlashlight.ts","../src/OsuDifficultyCalculator.ts","../src/MapStars.ts","../src/OsuPerformanceCalculator.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["ModHidden","MathUtils","modes","MapStats","Slider","Spinner","Precision","SliderRepeat","Utils","Interpolation","OsuHitWindow","ModRelax","ModFlashlight","Accuracy","ModNoFail","ModSpunOut","ModScoreV2","ModTouchDevice"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/evaluators/base/AimEvaluator.ts","../src/preprocessing/DifficultyHitObject.ts","../src/preprocessing/DifficultyHitObjectCreator.ts","../src/base/DifficultyCalculator.ts","../src/evaluators/droid/DroidAimEvaluator.ts","../src/base/Skill.ts","../src/base/StrainSkill.ts","../src/skills/droid/DroidSkill.ts","../src/skills/droid/DroidAim.ts","../src/evaluators/base/SpeedEvaluator.ts","../src/evaluators/droid/DroidTapEvaluator.ts","../src/skills/droid/DroidTap.ts","../src/evaluators/base/FlashlightEvaluator.ts","../src/evaluators/droid/DroidFlashlightEvaluator.ts","../src/skills/droid/DroidFlashlight.ts","../src/evaluators/base/RhythmEvaluator.ts","../src/evaluators/droid/DroidRhythmEvaluator.ts","../src/skills/droid/DroidRhythm.ts","../src/evaluators/droid/DroidVisualEvaluator.ts","../src/skills/droid/DroidVisual.ts","../src/DroidDifficultyCalculator.ts","../src/base/PerformanceCalculator.ts","../src/DroidPerformanceCalculator.ts","../src/skills/osu/OsuSkill.ts","../src/evaluators/osu/OsuAimEvaluator.ts","../src/skills/osu/OsuAim.ts","../src/evaluators/osu/OsuSpeedEvaluator.ts","../src/evaluators/osu/OsuRhythmEvaluator.ts","../src/skills/osu/OsuSpeed.ts","../src/evaluators/osu/OsuFlashlightEvaluator.ts","../src/skills/osu/OsuFlashlight.ts","../src/OsuDifficultyCalculator.ts","../src/MapStars.ts","../src/OsuPerformanceCalculator.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["ModHidden","MathUtils","Spinner","Slider","modes","Precision","SliderRepeat","MapStats","Utils","Interpolation","OsuHitWindow","ModRelax","ModFlashlight","Accuracy","ModNoFail","ModSpunOut","ModScoreV2","ModTouchDevice"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rian8337/osu-difficulty-calculator",
3
- "version": "2.1.0",
3
+ "version": "2.1.2",
4
4
  "description": "A module for calculating osu!standard beatmap difficulty and performance value with respect to the current difficulty and performance algorithm.",
5
5
  "keywords": [
6
6
  "osu",
@@ -30,10 +30,10 @@
30
30
  "url": "https://github.com/Rian8337/osu-droid-module/issues"
31
31
  },
32
32
  "dependencies": {
33
- "@rian8337/osu-base": "^2.1.0"
33
+ "@rian8337/osu-base": "^2.1.1"
34
34
  },
35
35
  "publishConfig": {
36
36
  "access": "public"
37
37
  },
38
- "gitHead": "aa91d8c7ca9a687f63d920f402cf4f5771e04499"
38
+ "gitHead": "d4dfd67213ba0e335df1dd63c07859a38dfd43e5"
39
39
  }
@@ -57,6 +57,10 @@ declare class DifficultyHitObject {
57
57
  /**
58
58
  * The preempt time of the hitobject.
59
59
  */
60
+ baseTimePreempt: number;
61
+ /**
62
+ * Adjusted preempt time of the hitobject, taking speed multiplier into account.
63
+ */
60
64
  timePreempt: number;
61
65
  /**
62
66
  * The fade in time of the hitobject.
@@ -200,6 +204,16 @@ declare class DifficultyHitObject {
200
204
  * @returns The opacity of the hitobject at the given time.
201
205
  */
202
206
  opacityAt(time: number, isHidden: boolean): number;
207
+ /**
208
+ * Determines whether this hitobject is considered overlapping with the hitobject before it.
209
+ *
210
+ * Keep in mind that "overlapping" in this case is overlapping to the point where both hitobjects
211
+ * can be hit with just a single tap in osu!droid.
212
+ *
213
+ * @param considerDistance Whether to consider the distance between both hitobjects.
214
+ * @returns Whether the hitobject is considered overlapping.
215
+ */
216
+ isOverlapping(considerDistance: boolean): boolean;
203
217
  }
204
218
 
205
219
  /**
@@ -510,6 +524,8 @@ declare class DroidAim extends DroidSkill {
510
524
  * An evaluator for calculating osu!droid Aim skill.
511
525
  */
512
526
  declare abstract class DroidAimEvaluator extends AimEvaluator {
527
+ protected static readonly acuteAngleMultiplier: number;
528
+ protected static readonly sliderMultiplier: number;
513
529
  /**
514
530
  * Spacing threshold for a single hitobject spacing.
515
531
  */
@@ -893,7 +909,6 @@ declare class DroidTap extends DroidSkill {
893
909
  protected readonly reducedSectionBaseline: number;
894
910
  protected readonly strainDecayBase: number;
895
911
  protected readonly starsPerDouble: number;
896
- private readonly minSpeedBonus;
897
912
  private currentTapStrain;
898
913
  private currentOriginalTapStrain;
899
914
  private readonly greatWindow;
@@ -975,10 +990,16 @@ declare abstract class DroidVisualEvaluator {
975
990
  * and to calculate a final difficulty value representing the difficulty of hitting all the processed objects.
976
991
  */
977
992
  declare abstract class OsuSkill extends StrainSkill {
993
+ /**
994
+ * The default multiplier applied to the final difficulty value after all other calculations.
995
+ *
996
+ * May be overridden via {@link difficultyMultiplier}.
997
+ */
998
+ static readonly defaultDifficultyMultiplier: number;
978
999
  /**
979
1000
  * The final multiplier to be applied to the final difficulty value after all other calculations.
980
1001
  */
981
- protected abstract readonly difficultyMultiplier: number;
1002
+ protected readonly difficultyMultiplier: number;
982
1003
  /**
983
1004
  * The weight by which each strain value decays.
984
1005
  */