@rian8337/osu-droid-replay-analyzer 4.0.0-beta.32 → 4.0.0-beta.33

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
@@ -2331,7 +2331,7 @@ class ReplayAnalyzer {
2331
2331
  resultObject.accuracy.nmiss = rawObject[4].readInt32BE(28);
2332
2332
  resultObject.score = rawObject[4].readInt32BE(32);
2333
2333
  resultObject.maxCombo = rawObject[4].readInt32BE(36);
2334
- resultObject.isFullCombo = !!rawObject[4][44];
2334
+ resultObject.isFullCombo = resultObject.accuracy.value() === 1;
2335
2335
  resultObject.playerName = rawObject[5];
2336
2336
  resultObject.rawMods = Object.values(rawObject[6].elements);
2337
2337
  resultObject.convertedMods = osuBase.ModUtil.droidStringToMods(this.convertDroidMods(resultObject.rawMods));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rian8337/osu-droid-replay-analyzer",
3
- "version": "4.0.0-beta.32",
3
+ "version": "4.0.0-beta.33",
4
4
  "description": "A replay analyzer for analyzing osu!droid replay files.",
5
5
  "keywords": [
6
6
  "osu",
@@ -46,5 +46,5 @@
46
46
  "publishConfig": {
47
47
  "access": "public"
48
48
  },
49
- "gitHead": "dd164dcc63fea94501959236d310eccf5a7cda6a"
49
+ "gitHead": "6772936925d2914224ef5b734c2f7cb9960b8a1c"
50
50
  }
@@ -296,10 +296,16 @@ declare enum HitResult {
296
296
  */
297
297
  declare class ReplayObjectData {
298
298
  /**
299
- * For circles, this is the offset at which the circle was hit. If the hit accuracy is 10000, it means the circle was tapped too late ([game source code](https://github.com/osudroid/osu-droid/blob/6306c68e3ffaf671eac794bf45cc95c0f3313a82/src/ru/nsu/ccfit/zuev/osu/game/HitCircle.java#L298-L306)).
299
+ * For circles, this is the offset at which the circle was hit. If the hit accuracy is 10000,
300
+ * it means the circle was tapped too late and therefore the player missed ([game source code](https://github.com/osudroid/osu-droid/blob/ca0e4a2c06b9db18d094a15a4abf3f7ffcb05d7a/src/ru/nsu/ccfit/zuev/osu/game/GameplayHitCircle.java#L305)).
300
301
  *
301
- * For sliders, this is the offset at which the slider head was hit. For
302
- * sliderbreaks, the accuracy would be `Math.floor(<hit window 50>ms) + 13ms` ([game source code](https://github.com/osudroid/osu-droid/blob/6306c68e3ffaf671eac794bf45cc95c0f3313a82/src/ru/nsu/ccfit/zuev/osu/game/Slider.java#L821)).
302
+ * For sliders, this is the offset at which the slider head was hit. For sliderbreaks, there are two scenarios:
303
+ * - a value equal to `Math.floor(<hit window 50>ms) + 13ms` strictly for replays before version 1.7.2 ([game source code](https://github.com/osudroid/osu-droid/blob/6306c68e3ffaf671eac794bf45cc95c0f3313a82/src/ru/nsu/ccfit/zuev/osu/game/Slider.java#L821)), or
304
+ * - a value that is more than the slider's span duration ([game source code](https://github.com/osudroid/osu-droid/blob/ca0e4a2c06b9db18d094a15a4abf3f7ffcb05d7a/src/ru/nsu/ccfit/zuev/osu/game/GameplaySlider.java#L701)).
305
+ *
306
+ * `tickset` and `result` can be used in conjunction with this value to derive whether the player sliderbroke in the slider.
307
+ * If `result` is a 300, the player did not sliderbreak. Otherwise, if all slider ticks, repeats, and ends were hit, the
308
+ * player sliderbroke. In other cases, it is almost impossible to derive this result.
303
309
  *
304
310
  * For spinners, this is the total amount at which the spinner was spinned:
305
311
  * ```js