@rian8337/osu-difficulty-calculator 1.3.0 → 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.
Files changed (48) hide show
  1. package/dist/DroidPerformanceCalculator.js +52 -62
  2. package/dist/DroidPerformanceCalculator.js.map +1 -0
  3. package/dist/DroidStarRating.js +36 -7
  4. package/dist/DroidStarRating.js.map +1 -0
  5. package/dist/MapStars.js +1 -0
  6. package/dist/MapStars.js.map +1 -0
  7. package/dist/OsuPerformanceCalculator.js +10 -7
  8. package/dist/OsuPerformanceCalculator.js.map +1 -0
  9. package/dist/OsuStarRating.js +1 -0
  10. package/dist/OsuStarRating.js.map +1 -0
  11. package/dist/base/DifficultyAttributes.js +1 -0
  12. package/dist/base/DifficultyAttributes.js.map +1 -0
  13. package/dist/base/PerformanceCalculator.js +16 -4
  14. package/dist/base/PerformanceCalculator.js.map +1 -0
  15. package/dist/base/Skill.js +1 -0
  16. package/dist/base/Skill.js.map +1 -0
  17. package/dist/base/StarRating.js +2 -0
  18. package/dist/base/StarRating.js.map +1 -0
  19. package/dist/base/StrainSkill.js +1 -0
  20. package/dist/base/StrainSkill.js.map +1 -0
  21. package/dist/index.js +1 -0
  22. package/dist/index.js.map +1 -0
  23. package/dist/preprocessing/DifficultyHitObject.js +23 -0
  24. package/dist/preprocessing/DifficultyHitObject.js.map +1 -0
  25. package/dist/preprocessing/DifficultyHitObjectCreator.js +43 -1
  26. package/dist/preprocessing/DifficultyHitObjectCreator.js.map +1 -0
  27. package/dist/skills/DroidAim.js +3 -2
  28. package/dist/skills/DroidAim.js.map +1 -0
  29. package/dist/skills/DroidFlashlight.js +2 -1
  30. package/dist/skills/DroidFlashlight.js.map +1 -0
  31. package/dist/skills/DroidRhythm.js +8 -4
  32. package/dist/skills/DroidRhythm.js.map +1 -0
  33. package/dist/skills/DroidSkill.js +15 -1
  34. package/dist/skills/DroidSkill.js.map +1 -0
  35. package/dist/skills/DroidTap.js +3 -3
  36. package/dist/skills/DroidTap.js.map +1 -0
  37. package/dist/skills/DroidVisual.js +81 -0
  38. package/dist/skills/DroidVisual.js.map +1 -0
  39. package/dist/skills/OsuAim.js +1 -0
  40. package/dist/skills/OsuAim.js.map +1 -0
  41. package/dist/skills/OsuFlashlight.js +1 -0
  42. package/dist/skills/OsuFlashlight.js.map +1 -0
  43. package/dist/skills/OsuSkill.js +1 -0
  44. package/dist/skills/OsuSkill.js.map +1 -0
  45. package/dist/skills/OsuSpeed.js +1 -0
  46. package/dist/skills/OsuSpeed.js.map +1 -0
  47. package/package.json +3 -3
  48. package/typings/index.d.ts +219 -126
@@ -11,7 +11,7 @@ class DroidPerformanceCalculator extends PerformanceCalculator_1.PerformanceCalc
11
11
  constructor() {
12
12
  super(...arguments);
13
13
  this.stars = new DroidStarRating_1.DroidStarRating();
14
- this.finalMultiplier = 1.42;
14
+ this.finalMultiplier = 1.24;
15
15
  /**
16
16
  * The aim performance value.
17
17
  */
@@ -28,31 +28,31 @@ class DroidPerformanceCalculator extends PerformanceCalculator_1.PerformanceCalc
28
28
  * The flashlight performance value.
29
29
  */
30
30
  this.flashlight = 0;
31
- this.aggregatedRhythmMultiplier = 0;
31
+ /**
32
+ * The visual performance value.
33
+ */
34
+ this.visual = 0;
35
+ this.tapPenalty = 1;
32
36
  }
33
37
  calculate(params) {
34
- this.handleParams(params, osu_base_1.modes.droid);
35
- this.calculateAverageRhythmMultiplier();
38
+ this.tapPenalty = params.tapPenalty ?? 1;
39
+ return this.calculateInternal(params, osu_base_1.modes.droid);
40
+ }
41
+ calculateValues() {
36
42
  this.calculateAimValue();
37
43
  this.calculateTapValue();
38
44
  this.calculateAccuracyValue();
39
45
  this.calculateFlashlightValue();
46
+ this.calculateVisualValue();
40
47
  // Apply tap penalty for penalized plays.
41
- this.tap /= params.tapPenalty ?? 1;
42
- this.total =
43
- Math.pow(Math.pow(this.aim, 1.1) +
44
- Math.pow(this.tap, 1.1) +
45
- Math.pow(this.accuracy, 1.1) +
46
- Math.pow(this.flashlight, 1.1), 1 / 1.1) * this.finalMultiplier;
47
- return this;
48
+ this.tap /= this.tapPenalty;
48
49
  }
49
- /**
50
- * Calculates the average rhythm multiplier of the beatmap.
51
- */
52
- calculateAverageRhythmMultiplier() {
53
- // The first object doesn't have any rhythm multiplier, so we begin with the second object
54
- const rhythmObjects = this.stars.objects.slice(1);
55
- this.aggregatedRhythmMultiplier = Math.max(1, rhythmObjects.reduce((total, value) => total + value.rhythmMultiplier, 0) / Math.max(500, rhythmObjects.length));
50
+ calculateTotalValue() {
51
+ return (Math.pow(Math.pow(this.aim, 1.1) +
52
+ Math.pow(this.tap, 1.1) +
53
+ Math.pow(this.accuracy, 1.1) +
54
+ Math.pow(this.flashlight, 1.1) +
55
+ Math.pow(this.visual, 1.1), 1 / 1.1) * this.finalMultiplier);
56
56
  }
57
57
  /**
58
58
  * Calculates the aim performance value of the beatmap.
@@ -60,7 +60,6 @@ class DroidPerformanceCalculator extends PerformanceCalculator_1.PerformanceCalc
60
60
  calculateAimValue() {
61
61
  // Global variables
62
62
  const objectCount = this.stars.objects.length;
63
- const calculatedAR = this.mapStatistics.ar;
64
63
  this.aim = this.baseValue(Math.pow(this.stars.aim, 0.8));
65
64
  if (this.effectiveMissCount > 0) {
66
65
  // Penalize misses by assessing # of misses relative to the total # of objects. Default a 3% reduction for any # of misses.
@@ -70,32 +69,6 @@ class DroidPerformanceCalculator extends PerformanceCalculator_1.PerformanceCalc
70
69
  }
71
70
  // Combo scaling
72
71
  this.aim *= this.comboPenalty;
73
- // We want to give more reward for lower AR when it comes to aim and HD. This nerfs high AR and buffs lower AR.
74
- if (this.stars.mods.some((m) => m instanceof osu_base_1.ModHidden)) {
75
- // The bonus starts decreasing twice as fast
76
- // beyond AR10 and reaches 1 at AR11.
77
- if (calculatedAR > 10) {
78
- this.aim *= 1 + Math.max(0, 0.08 * (11 - calculatedAR));
79
- }
80
- else {
81
- this.aim *= 1 + 0.04 * (12 - calculatedAR);
82
- }
83
- }
84
- // AR scaling
85
- let arFactor = 0;
86
- if (calculatedAR > 10.33) {
87
- arFactor += 0.3 * (calculatedAR - 10.33);
88
- }
89
- else if (calculatedAR < 8) {
90
- arFactor += 0.1 * (8 - calculatedAR);
91
- }
92
- // Buff for longer maps with high AR.
93
- this.aim *=
94
- 1 +
95
- arFactor *
96
- (1.650668 +
97
- (0.4845796 - 1.650668) /
98
- (1 + Math.pow(objectCount / 817.9306, 1.147469)));
99
72
  // Scale the aim value with slider factor to nerf very likely dropped sliderends.
100
73
  this.aim *= this.sliderNerfFactor;
101
74
  // Scale the aim value with accuracy.
@@ -111,7 +84,6 @@ class DroidPerformanceCalculator extends PerformanceCalculator_1.PerformanceCalc
111
84
  calculateTapValue() {
112
85
  // Global variables
113
86
  const objectCount = this.stars.objects.length;
114
- const calculatedAR = this.mapStatistics.ar;
115
87
  this.tap = this.baseValue(this.stars.tap);
116
88
  if (this.effectiveMissCount > 0) {
117
89
  // Penalize misses by assessing # of misses relative to the total # of objects. Default a 3% reduction for any # of misses.
@@ -121,17 +93,6 @@ class DroidPerformanceCalculator extends PerformanceCalculator_1.PerformanceCalc
121
93
  }
122
94
  // Combo scaling
123
95
  this.tap *= this.comboPenalty;
124
- // AR scaling
125
- if (calculatedAR > 10.33) {
126
- // Buff for longer maps with high AR.
127
- this.tap *=
128
- 1 +
129
- 0.3 *
130
- (calculatedAR - 10.33) *
131
- (1.650668 +
132
- (0.4845796 - 1.650668) /
133
- (1 + Math.pow(objectCount / 817.9306, 1.147469)));
134
- }
135
96
  // Calculate accuracy assuming the worst case scenario.
136
97
  const countGreat = this.computedAccuracy.n300;
137
98
  const countOk = this.computedAccuracy.n100;
@@ -162,16 +123,16 @@ class DroidPerformanceCalculator extends PerformanceCalculator_1.PerformanceCalc
162
123
  return;
163
124
  }
164
125
  // Global variables
126
+ const objectCount = this.stars.objects.length;
165
127
  const ncircles = this.stars.mods.some((m) => m instanceof osu_base_1.ModScoreV2)
166
- ? this.stars.objects.length - this.stars.map.spinners
128
+ ? objectCount - this.stars.map.spinners
167
129
  : this.stars.map.circles;
168
130
  if (ncircles === 0) {
169
131
  return;
170
132
  }
171
133
  const realAccuracy = new osu_base_1.Accuracy({
172
134
  ...this.computedAccuracy,
173
- n300: this.computedAccuracy.n300 -
174
- (this.stars.objects.length - ncircles),
135
+ n300: this.computedAccuracy.n300 - (objectCount - ncircles),
175
136
  });
176
137
  // Lots of arbitrary values from testing.
177
138
  // Considering to use derivation from perfect accuracy in a probabilistic manner - assume normal distribution
@@ -182,7 +143,7 @@ class DroidPerformanceCalculator extends PerformanceCalculator_1.PerformanceCalc
182
143
  // Bonus for many hitcircles - it's harder to keep good accuracy up for longer
183
144
  this.accuracy *= Math.min(1.15, Math.pow(ncircles / 1000, 0.3));
184
145
  // Scale the accuracy value with rhythm complexity.
185
- this.accuracy *= Math.min(1, Math.pow(Math.exp(this.aggregatedRhythmMultiplier - 0.5), 0.85) / 2);
146
+ this.accuracy *= 1.5 / (1 + Math.exp(-(this.stars.rhythm - 1) / 2));
186
147
  if (this.stars.mods.some((m) => m instanceof osu_base_1.ModHidden)) {
187
148
  this.accuracy *= 1.08;
188
149
  }
@@ -227,6 +188,32 @@ class DroidPerformanceCalculator extends PerformanceCalculator_1.PerformanceCalc
227
188
  this.flashlight *=
228
189
  0.98 + (this.mapStatistics.od >= 0 ? odScaling : -odScaling);
229
190
  }
191
+ /**
192
+ * Calculates the visual performance value of the beatmap.
193
+ */
194
+ calculateVisualValue() {
195
+ // Global variables
196
+ const objectCount = this.stars.objects.length;
197
+ this.visual = Math.pow(Math.pow(this.stars.visual, 0.8), 2) * 25;
198
+ if (this.effectiveMissCount > 0) {
199
+ // Penalize misses by assessing # of misses relative to the total # of objects. Default a 3% reduction for any # of misses.
200
+ this.visual *=
201
+ 0.97 *
202
+ Math.pow(1 - Math.pow(this.effectiveMissCount / objectCount, 0.775), this.effectiveMissCount);
203
+ }
204
+ // Combo scaling
205
+ this.visual *= this.comboPenalty;
206
+ // Scale the visual value with object count to penalize short maps.
207
+ this.visual *= Math.min(1, 1.650668 +
208
+ (0.4845796 - 1.650668) /
209
+ (1 + Math.pow(objectCount / 817.9306, 1.147469)));
210
+ // Scale the visual value with accuracy harshly.
211
+ this.visual *= Math.pow(this.computedAccuracy.value(), 4);
212
+ // It is also important to consider accuracy difficulty when doing that.
213
+ const odScaling = Math.pow(this.mapStatistics.od, 2) / 2500;
214
+ this.visual *=
215
+ 0.98 + (this.mapStatistics.od >= 0 ? odScaling : -odScaling);
216
+ }
230
217
  toString() {
231
218
  return (this.total.toFixed(2) +
232
219
  " pp (" +
@@ -237,7 +224,10 @@ class DroidPerformanceCalculator extends PerformanceCalculator_1.PerformanceCalc
237
224
  this.accuracy.toFixed(2) +
238
225
  " acc, " +
239
226
  this.flashlight.toFixed(2) +
240
- " flashlight)");
227
+ " flashlight, " +
228
+ this.visual.toFixed(2) +
229
+ " visual)");
241
230
  }
242
231
  }
243
232
  exports.DroidPerformanceCalculator = DroidPerformanceCalculator;
233
+ //# sourceMappingURL=DroidPerformanceCalculator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DroidPerformanceCalculator.js","sourceRoot":"","sources":["../src/DroidPerformanceCalculator.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@ const StarRating_1 = require("./base/StarRating");
7
7
  const DroidFlashlight_1 = require("./skills/DroidFlashlight");
8
8
  const osu_base_1 = require("@rian8337/osu-base");
9
9
  const DroidRhythm_1 = require("./skills/DroidRhythm");
10
+ const DroidVisual_1 = require("./skills/DroidVisual");
10
11
  /**
11
12
  * Difficulty calculator for osu!droid gamemode.
12
13
  */
@@ -29,6 +30,10 @@ class DroidStarRating extends StarRating_1.StarRating {
29
30
  * The flashlight star rating of the beatmap.
30
31
  */
31
32
  this.flashlight = 0;
33
+ /**
34
+ * The visual star rating of the beatmap.
35
+ */
36
+ this.visual = 0;
32
37
  this.difficultyMultiplier = 0.18;
33
38
  }
34
39
  /**
@@ -85,19 +90,29 @@ class DroidStarRating extends StarRating_1.StarRating {
85
90
  this.calculateSkills(flashlightSkill);
86
91
  this.postCalculateFlashlight(flashlightSkill);
87
92
  }
93
+ /**
94
+ * Calculates the visual star rating of the beatmap and stores it in this instance.
95
+ */
96
+ calculateVisual() {
97
+ const visualSkill = new DroidVisual_1.DroidVisual(this.mods, osu_base_1.MapStats.arToMS(this.stats.ar));
98
+ this.calculateSkills(visualSkill);
99
+ this.postCalculateVisual(visualSkill);
100
+ }
88
101
  calculateTotal() {
89
102
  const aimPerformanceValue = this.basePerformanceValue(this.aim);
90
103
  const tapPerformanceValue = this.basePerformanceValue(this.tap);
91
104
  const flashlightPerformanceValue = this.mods.some((m) => m instanceof osu_base_1.ModFlashlight)
92
105
  ? Math.pow(this.flashlight, 2) * 25
93
106
  : 0;
107
+ const visualPerformanceValue = Math.pow(this.visual, 2) * 25;
94
108
  const basePerformanceValue = Math.pow(Math.pow(aimPerformanceValue, 1.1) +
95
109
  Math.pow(tapPerformanceValue, 1.1) +
96
- Math.pow(flashlightPerformanceValue, 1.1), 1 / 1.1);
110
+ Math.pow(flashlightPerformanceValue, 1.1) +
111
+ Math.pow(visualPerformanceValue, 1.1), 1 / 1.1);
97
112
  if (basePerformanceValue > 1e-5) {
98
113
  this.total =
99
114
  Math.cbrt(1.12) *
100
- 0.027 *
115
+ 0.026 *
101
116
  (Math.cbrt((100000 / Math.pow(2, 1 / 1.1)) * basePerformanceValue) +
102
117
  4);
103
118
  }
@@ -111,17 +126,19 @@ class DroidStarRating extends StarRating_1.StarRating {
111
126
  const rhythmSkill = skills[2];
112
127
  const tapSkill = skills[3];
113
128
  const flashlightSkill = skills[4];
129
+ const visualSkill = skills[5];
114
130
  this.postCalculateAim(aimSkill, aimSkillWithoutSliders);
115
131
  if (!isRelax) {
116
132
  this.postCalculateTap(tapSkill);
117
133
  }
118
134
  else {
119
- this.calculateSpeedNoteCount();
135
+ this.calculateSpeedAttributes();
120
136
  }
121
137
  if (!isRelax) {
122
138
  this.postCalculateRhythm(rhythmSkill);
123
139
  }
124
140
  this.postCalculateFlashlight(flashlightSkill);
141
+ this.postCalculateVisual(visualSkill);
125
142
  this.calculateTotal();
126
143
  }
127
144
  /**
@@ -137,7 +154,9 @@ class DroidStarRating extends StarRating_1.StarRating {
137
154
  this.rhythm.toFixed(2) +
138
155
  " rhythm, " +
139
156
  this.flashlight.toFixed(2) +
140
- " flashlight)");
157
+ " flashlight, " +
158
+ this.visual.toFixed(2) +
159
+ " visual)");
141
160
  }
142
161
  /**
143
162
  * Creates skills to be calculated.
@@ -150,6 +169,7 @@ class DroidStarRating extends StarRating_1.StarRating {
150
169
  new DroidRhythm_1.DroidRhythm(this.mods, this.stats.od),
151
170
  new DroidTap_1.DroidTap(this.mods, this.stats.od),
152
171
  new DroidFlashlight_1.DroidFlashlight(this.mods),
172
+ new DroidVisual_1.DroidVisual(this.mods, osu_base_1.MapStats.arToMS(this.stats.ar)),
153
173
  ];
154
174
  }
155
175
  /**
@@ -176,12 +196,12 @@ class DroidStarRating extends StarRating_1.StarRating {
176
196
  postCalculateTap(tapSkill) {
177
197
  this.strainPeaks.speed = tapSkill.strainPeaks;
178
198
  this.tap = this.starValue(tapSkill.difficultyValue());
179
- this.calculateSpeedNoteCount();
199
+ this.calculateSpeedAttributes();
180
200
  }
181
201
  /**
182
- * Calculates the speed note count attribute.
202
+ * Calculates speed-related attributes.
183
203
  */
184
- calculateSpeedNoteCount() {
204
+ calculateSpeedAttributes() {
185
205
  const objectStrains = this.objects.map((v) => v.tapStrain);
186
206
  const maxStrain = Math.max(...objectStrains);
187
207
  if (maxStrain) {
@@ -205,5 +225,14 @@ class DroidStarRating extends StarRating_1.StarRating {
205
225
  this.strainPeaks.flashlight = flashlightSkill.strainPeaks;
206
226
  this.flashlight = this.starValue(flashlightSkill.difficultyValue());
207
227
  }
228
+ /**
229
+ * Called after visual skill calculation.
230
+ *
231
+ * @param visualSkill The visual skill.
232
+ */
233
+ postCalculateVisual(visualSkill) {
234
+ this.visual = this.starValue(visualSkill.difficultyValue());
235
+ }
208
236
  }
209
237
  exports.DroidStarRating = DroidStarRating;
238
+ //# sourceMappingURL=DroidStarRating.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DroidStarRating.js","sourceRoot":"","sources":["../src/DroidStarRating.ts"],"names":[],"mappings":"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"}
package/dist/MapStars.js CHANGED
@@ -48,3 +48,4 @@ class MapStars {
48
48
  }
49
49
  }
50
50
  exports.MapStars = MapStars;
51
+ //# sourceMappingURL=MapStars.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MapStars.js","sourceRoot":"","sources":["../src/MapStars.ts"],"names":[],"mappings":";;;AAAA,iDAA4D;AAC5D,uDAAoD;AACpD,mDAAgD;AAEhD;;GAEG;AACH,MAAa,QAAQ;IAArB;QACI;;WAEG;QACM,eAAU,GAAoB,IAAI,iCAAe,EAAE,CAAC;QAE7D;;WAEG;QACM,YAAO,GAAkB,IAAI,6BAAa,EAAE,CAAC;IAiD1D,CAAC;IA/CG;;OAEG;IACH,SAAS,CAAC,MAeT;QACG,MAAM,GAAG,GAAU,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QAErC,MAAM,KAAK,GAAa,IAAI,mBAAQ,CAAC;YACjC,eAAe,EAAE,MAAM,CAAC,KAAK,EAAE,eAAe,IAAI,CAAC;YACnD,SAAS,EAAE,MAAM,CAAC,KAAK,EAAE,SAAS,IAAI,KAAK;YAC3C,aAAa,EAAE,MAAM,CAAC,KAAK,EAAE,aAAa,IAAI,KAAK;SACtD,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;YACtB,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,IAAI,EAAE,GAAG;YACT,KAAK;SACR,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;YACnB,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,IAAI,EAAE,GAAG;YACT,KAAK;SACR,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,QAAQ;QACJ,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,KAAK,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;IACvE,CAAC;CACJ;AA1DD,4BA0DC"}
@@ -30,17 +30,19 @@ class OsuPerformanceCalculator extends PerformanceCalculator_1.PerformanceCalcul
30
30
  this.flashlight = 0;
31
31
  }
32
32
  calculate(params) {
33
- this.handleParams(params, osu_base_1.modes.osu);
33
+ return this.calculateInternal(params, osu_base_1.modes.osu);
34
+ }
35
+ calculateValues() {
34
36
  this.calculateAimValue();
35
37
  this.calculateSpeedValue();
36
38
  this.calculateAccuracyValue();
37
39
  this.calculateFlashlightValue();
38
- this.total =
39
- Math.pow(Math.pow(this.aim, 1.1) +
40
- Math.pow(this.speed, 1.1) +
41
- Math.pow(this.accuracy, 1.1) +
42
- Math.pow(this.flashlight, 1.1), 1 / 1.1) * this.finalMultiplier;
43
- return this;
40
+ }
41
+ calculateTotalValue() {
42
+ return (Math.pow(Math.pow(this.aim, 1.1) +
43
+ Math.pow(this.speed, 1.1) +
44
+ Math.pow(this.accuracy, 1.1) +
45
+ Math.pow(this.flashlight, 1.1), 1 / 1.1) * this.finalMultiplier);
44
46
  }
45
47
  /**
46
48
  * Calculates the aim performance value of the beatmap.
@@ -213,3 +215,4 @@ class OsuPerformanceCalculator extends PerformanceCalculator_1.PerformanceCalcul
213
215
  }
214
216
  }
215
217
  exports.OsuPerformanceCalculator = OsuPerformanceCalculator;
218
+ //# sourceMappingURL=OsuPerformanceCalculator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OsuPerformanceCalculator.js","sourceRoot":"","sources":["../src/OsuPerformanceCalculator.ts"],"names":[],"mappings":"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"}
@@ -157,3 +157,4 @@ class OsuStarRating extends StarRating_1.StarRating {
157
157
  }
158
158
  }
159
159
  exports.OsuStarRating = OsuStarRating;
160
+ //# sourceMappingURL=OsuStarRating.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OsuStarRating.js","sourceRoot":"","sources":["../src/OsuStarRating.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=DifficultyAttributes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DifficultyAttributes.js","sourceRoot":"","sources":["../../src/base/DifficultyAttributes.ts"],"names":[],"mappings":""}
@@ -33,7 +33,16 @@ class PerformanceCalculator {
33
33
  this.sliderNerfFactor = 1;
34
34
  }
35
35
  /**
36
- * Calculates the base performance value for of a star rating.
36
+ * Internal calculation method, used to process calculation from implementations.
37
+ */
38
+ calculateInternal(params, mode) {
39
+ this.handleParams(params, mode);
40
+ this.calculateValues();
41
+ this.total = this.calculateTotalValue();
42
+ return this;
43
+ }
44
+ /**
45
+ * Calculates the base performance value of a star rating.
37
46
  */
38
47
  baseValue(stars) {
39
48
  return Math.pow(5 * Math.max(1, stars / 0.0675) - 4, 3) / 100000;
@@ -62,7 +71,7 @@ class PerformanceCalculator {
62
71
  nmiss: params.miss || 0,
63
72
  });
64
73
  }
65
- this.effectiveMissCount = this.calculateEffectiveMissCount(combo, maxCombo);
74
+ this.effectiveMissCount = this.calculateEffectiveMissCount(combo, maxCombo, mode);
66
75
  if (this.stars.mods.some((m) => m instanceof osu_base_1.ModNoFail)) {
67
76
  this.finalMultiplier *= Math.max(0.9, 1 - 0.02 * this.effectiveMissCount);
68
77
  }
@@ -112,7 +121,7 @@ class PerformanceCalculator {
112
121
  /**
113
122
  * Calculates the amount of misses + sliderbreaks from combo.
114
123
  */
115
- calculateEffectiveMissCount(combo, maxCombo) {
124
+ calculateEffectiveMissCount(combo, maxCombo, mode) {
116
125
  let comboBasedMissCount = 0;
117
126
  if (this.stars.map.sliders > 0) {
118
127
  const fullComboThreshold = maxCombo - 0.1 * this.stars.map.sliders;
@@ -122,7 +131,10 @@ class PerformanceCalculator {
122
131
  comboBasedMissCount = Math.min(fullComboThreshold / Math.max(1, combo), this.stars.objects.length);
123
132
  }
124
133
  }
125
- return Math.max(this.computedAccuracy.nmiss, comboBasedMissCount);
134
+ return Math.max(this.computedAccuracy.nmiss, mode === osu_base_1.modes.droid
135
+ ? comboBasedMissCount
136
+ : Math.floor(comboBasedMissCount));
126
137
  }
127
138
  }
128
139
  exports.PerformanceCalculator = PerformanceCalculator;
140
+ //# sourceMappingURL=PerformanceCalculator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PerformanceCalculator.js","sourceRoot":"","sources":["../../src/base/PerformanceCalculator.ts"],"names":[],"mappings":"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"}
@@ -27,3 +27,4 @@ class Skill {
27
27
  }
28
28
  }
29
29
  exports.Skill = Skill;
30
+ //# sourceMappingURL=Skill.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Skill.js","sourceRoot":"","sources":["../../src/base/Skill.ts"],"names":[],"mappings":";;;AAGA;;GAEG;AACH,MAAsB,KAAK;IAkBvB,YAAY,IAAW;QAjBvB;;;;WAIG;QACgB,aAAQ,GAA0B,EAAE,CAAC;QAExD;;WAEG;QACgB,kBAAa,GAAW,CAAC,CAAC;QAQzC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IAED,eAAe,CAAC,OAA4B;QACxC,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE;YAC9C,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;SACvB;QAED,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAEtB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;CAaJ;AA3CD,sBA2CC"}
@@ -92,6 +92,7 @@ class StarRating {
92
92
  circleSize: this.stats.cs,
93
93
  speedMultiplier: this.stats.speedMultiplier,
94
94
  mode: mode,
95
+ preempt: osu_base_1.MapStats.arToMS(this.stats.ar),
95
96
  }));
96
97
  }
97
98
  /**
@@ -128,3 +129,4 @@ class StarRating {
128
129
  }
129
130
  }
130
131
  exports.StarRating = StarRating;
132
+ //# sourceMappingURL=StarRating.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StarRating.js","sourceRoot":"","sources":["../../src/base/StarRating.ts"],"names":[],"mappings":"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"}
@@ -73,3 +73,4 @@ class StrainSkill extends Skill_1.Skill {
73
73
  }
74
74
  }
75
75
  exports.StrainSkill = StrainSkill;
76
+ //# sourceMappingURL=StrainSkill.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StrainSkill.js","sourceRoot":"","sources":["../../src/base/StrainSkill.ts"],"names":[],"mappings":";;;AACA,mCAAgC;AAEhC;;;GAGG;AACH,MAAsB,WAAY,SAAQ,aAAK;IAA/C;;QACI;;WAEG;QACO,kBAAa,GAAW,CAAC,CAAC;QAEpC;;WAEG;QACO,uBAAkB,GAAW,CAAC,CAAC;QAEzC;;WAEG;QACM,gBAAW,GAAa,EAAE,CAAC;QAyBjB,kBAAa,GAAW,GAAG,CAAC;QAErC,sBAAiB,GAAW,CAAC,CAAC;IAqE5C,CAAC;IAnEG;;;;OAIG;IACgB,OAAO,CAAC,OAA4B;QACnD,0FAA0F;QAC1F,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;YAC5B,IAAI,CAAC,iBAAiB;gBAClB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC;oBACjD,IAAI,CAAC,aAAa,CAAC;SAC1B;QAED,OAAO,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,iBAAiB,EAAE;YAC/C,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACjD,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,aAAa,CAAC;SAChD;QAED,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAEjD,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAE9B,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,GAAG,CAC9B,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,kBAAkB,CAC1B,CAAC;IACN,CAAC;IAED;;OAEG;IACH,eAAe;QACX,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACnD,CAAC;IAED;;;;OAIG;IACO,mBAAmB,CAAC,MAAc;QACxC,yHAAyH;QACzH,8HAA8H;QAC9H,IAAI,CAAC,kBAAkB;YACnB,IAAI,CAAC,aAAa;gBAClB,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC9D,CAAC;IAED;;;;OAIG;IACO,WAAW,CAAC,EAAU;QAC5B,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC;IACrD,CAAC;CAWJ;AA9GD,kCA8GC"}
package/dist/index.js CHANGED
@@ -24,3 +24,4 @@ __exportStar(require("./skills/OsuFlashlight"), exports);
24
24
  __exportStar(require("./OsuPerformanceCalculator"), exports);
25
25
  __exportStar(require("./skills/OsuSpeed"), exports);
26
26
  __exportStar(require("./OsuStarRating"), exports);
27
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,sEAAoD;AACpD,6EAA2D;AAC3D,oDAAkC;AAClC,2DAAyC;AACzC,+DAA6C;AAC7C,uDAAqC;AACrC,oDAAkC;AAClC,oDAAkC;AAClC,6CAA2B;AAC3B,kDAAgC;AAChC,yDAAuC;AACvC,6DAA2C;AAC3C,oDAAkC;AAClC,kDAAgC"}
@@ -40,6 +40,10 @@ class DifficultyHitObject {
40
40
  * The flashlight strain generated by the hitobject.
41
41
  */
42
42
  this.flashlightStrain = 0;
43
+ /**
44
+ * The visual strain generated by the hitobject.
45
+ */
46
+ this.visualStrain = 0;
43
47
  /**
44
48
  * The normalized distance from the "lazy" end position of the previous hitobject to the start position of this hitobject.
45
49
  *
@@ -89,7 +93,26 @@ class DifficultyHitObject {
89
93
  * Adjusted start time of the hitobject, taking speed multiplier into account.
90
94
  */
91
95
  this.startTime = 0;
96
+ /**
97
+ * Adjusted end time of the hitobject, taking speed multiplier into account.
98
+ */
99
+ this.endTime = 0;
100
+ /**
101
+ * The note density of the hitobject.
102
+ */
103
+ this.noteDensity = 0;
104
+ /**
105
+ * The overlapping factor of the hitobject.
106
+ *
107
+ * This is used to scale visual skill.
108
+ */
109
+ this.overlappingFactor = 0;
110
+ /**
111
+ * Adjusted velocity of the hitobject, taking speed multiplier into account.
112
+ */
113
+ this.velocity = 0;
92
114
  this.object = object;
93
115
  }
94
116
  }
95
117
  exports.DifficultyHitObject = DifficultyHitObject;
118
+ //# sourceMappingURL=DifficultyHitObject.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DifficultyHitObject.js","sourceRoot":"","sources":["../../src/preprocessing/DifficultyHitObject.ts"],"names":[],"mappings":";;;AAEA;;GAEG;AACH,MAAa,mBAAmB;IAiI5B;;OAEG;IACH,YAAY,MAAiB;QA9H7B;;WAEG;QACH,yBAAoB,GAAW,CAAC,CAAC;QAEjC;;WAEG;QACH,4BAAuB,GAAW,CAAC,CAAC;QAEpC;;;;WAIG;QACH,cAAS,GAAW,CAAC,CAAC;QAEtB;;;WAGG;QACH,sBAAiB,GAAW,CAAC,CAAC;QAE9B;;WAEG;QACH,qBAAgB,GAAW,CAAC,CAAC;QAE7B;;WAEG;QACH,iBAAY,GAAW,CAAC,CAAC;QAEzB;;WAEG;QACH,qBAAgB,GAAW,CAAC,CAAC;QAE7B;;WAEG;QACH,iBAAY,GAAW,CAAC,CAAC;QAEzB;;;;WAIG;QACH,qBAAgB,GAAW,CAAC,CAAC;QAE7B;;;;;;;;;;;WAWG;QACH,wBAAmB,GAAW,CAAC,CAAC;QAEhC;;WAEG;QACH,oBAAe,GAAW,CAAC,CAAC;QAE5B;;WAEG;QACH,mBAAc,GAAW,CAAC,CAAC;QAE3B;;WAEG;QACH,eAAU,GAAW,CAAC,CAAC;QAEvB;;;;WAIG;QACH,UAAK,GAAkB,IAAI,CAAC;QAE5B;;WAEG;QACH,cAAS,GAAW,CAAC,CAAC;QAEtB;;WAEG;QACH,eAAU,GAAW,CAAC,CAAC;QAEvB;;WAEG;QACH,cAAS,GAAW,CAAC,CAAC;QAEtB;;WAEG;QACH,YAAO,GAAW,CAAC,CAAC;QAEpB;;WAEG;QACH,gBAAW,GAAW,CAAC,CAAC;QAExB;;;;WAIG;QACH,sBAAiB,GAAW,CAAC,CAAC;QAE9B;;WAEG;QACH,aAAQ,GAAW,CAAC,CAAC;QAMjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;CACJ;AAvID,kDAuIC"}