@rian8337/osu-difficulty-calculator 1.4.13 → 1.4.17

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.
@@ -21,9 +21,12 @@ class DroidSkill extends StrainSkill_1.StrainSkill {
21
21
  }
22
22
  // Math here preserves the property that two notes of equal difficulty x, we have their summed difficulty = x * starsPerDouble.
23
23
  // This also applies to two sets of notes with equal difficulty.
24
- return Math.pow(sortedStrains
25
- .filter((v) => v > 0)
26
- .reduce((a, v) => a + Math.pow(v, 1 / Math.log2(this.starsPerDouble)), 0), Math.log2(this.starsPerDouble));
24
+ return Math.pow(sortedStrains.reduce((a, v) => {
25
+ if (v <= 0) {
26
+ return a;
27
+ }
28
+ return a + Math.pow(v, 1 / Math.log2(this.starsPerDouble));
29
+ }, 0), Math.log2(this.starsPerDouble));
27
30
  }
28
31
  }
29
32
  exports.DroidSkill = DroidSkill;
@@ -1 +1 @@
1
- {"version":3,"file":"DroidSkill.js","sourceRoot":"","sources":["../../src/skills/DroidSkill.ts"],"names":[],"mappings":";;;AAAA,iDAA8D;AAC9D,qDAAkD;AAElD;;;GAGG;AACH,MAAsB,UAAW,SAAQ,yBAAW;IAMvC,eAAe;QACpB,MAAM,aAAa,GAAa,IAAI,CAAC,WAAW;aAC3C,KAAK,EAAE;aACP,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACX,OAAO,CAAC,GAAG,CAAC,CAAC;QACjB,CAAC,CAAC,CAAC;QAEP,sFAAsF;QACtF,KACI,IAAI,CAAC,GAAG,CAAC,EACT,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,mBAAmB,CAAC,EAC5D,EAAE,CAAC,EACL;YACE,MAAM,KAAK,GAAW,IAAI,CAAC,KAAK,CAC5B,wBAAa,CAAC,IAAI,CACd,CAAC,EACD,EAAE,EACF,oBAAS,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC,EAAE,CAAC,CAAC,CACtD,CACJ,CAAC;YAEF,aAAa,CAAC,CAAC,CAAC,IAAI,wBAAa,CAAC,IAAI,CAClC,IAAI,CAAC,sBAAsB,EAC3B,CAAC,EACD,KAAK,CACR,CAAC;SACL;QAED,+HAA+H;QAC/H,gEAAgE;QAChE,OAAO,IAAI,CAAC,GAAG,CACX,aAAa;aACR,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;aACpB,MAAM,CACH,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACL,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,EACvD,CAAC,CACJ,EACL,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CACjC,CAAC;IACN,CAAC;CACJ;AA/CD,gCA+CC"}
1
+ {"version":3,"file":"DroidSkill.js","sourceRoot":"","sources":["../../src/skills/DroidSkill.ts"],"names":[],"mappings":";;;AAAA,iDAA8D;AAC9D,qDAAkD;AAElD;;;GAGG;AACH,MAAsB,UAAW,SAAQ,yBAAW;IAMvC,eAAe;QACpB,MAAM,aAAa,GAAa,IAAI,CAAC,WAAW;aAC3C,KAAK,EAAE;aACP,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACX,OAAO,CAAC,GAAG,CAAC,CAAC;QACjB,CAAC,CAAC,CAAC;QAEP,sFAAsF;QACtF,KACI,IAAI,CAAC,GAAG,CAAC,EACT,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,mBAAmB,CAAC,EAC5D,EAAE,CAAC,EACL;YACE,MAAM,KAAK,GAAW,IAAI,CAAC,KAAK,CAC5B,wBAAa,CAAC,IAAI,CACd,CAAC,EACD,EAAE,EACF,oBAAS,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC,EAAE,CAAC,CAAC,CACtD,CACJ,CAAC;YAEF,aAAa,CAAC,CAAC,CAAC,IAAI,wBAAa,CAAC,IAAI,CAClC,IAAI,CAAC,sBAAsB,EAC3B,CAAC,EACD,KAAK,CACR,CAAC;SACL;QAED,+HAA+H;QAC/H,gEAAgE;QAChE,OAAO,IAAI,CAAC,GAAG,CACX,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAC1B,IAAI,CAAC,IAAI,CAAC,EAAE;gBACR,OAAO,CAAC,CAAC;aACZ;YAED,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;QAC/D,CAAC,EAAE,CAAC,CAAC,EACL,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CACjC,CAAC;IACN,CAAC;CACJ;AA/CD,gCA+CC"}
@@ -9,8 +9,6 @@ const StrainSkill_1 = require("../base/StrainSkill");
9
9
  */
10
10
  class OsuSkill extends StrainSkill_1.StrainSkill {
11
11
  difficultyValue() {
12
- let difficulty = 0;
13
- let weight = 1;
14
12
  const sortedStrains = this.strainPeaks
15
13
  .slice()
16
14
  .sort((a, b) => {
@@ -23,14 +21,19 @@ class OsuSkill extends StrainSkill_1.StrainSkill {
23
21
  }
24
22
  // Difficulty is the weighted sum of the highest strains from every section.
25
23
  // We're sorting from highest to lowest strain.
26
- sortedStrains
27
- .sort((a, b) => {
24
+ sortedStrains.sort((a, b) => {
28
25
  return b - a;
29
- })
30
- .forEach((strain) => {
31
- difficulty += strain * weight;
32
- weight *= this.decayWeight;
33
26
  });
27
+ let difficulty = 0;
28
+ let weight = 1;
29
+ for (const strain of sortedStrains) {
30
+ const addition = strain * weight;
31
+ if (difficulty + addition === difficulty) {
32
+ break;
33
+ }
34
+ difficulty += addition;
35
+ weight *= this.decayWeight;
36
+ }
34
37
  return difficulty * this.difficultyMultiplier;
35
38
  }
36
39
  }
@@ -1 +1 @@
1
- {"version":3,"file":"OsuSkill.js","sourceRoot":"","sources":["../../src/skills/OsuSkill.ts"],"names":[],"mappings":";;;AAAA,iDAA8D;AAC9D,qDAAkD;AAElD;;;GAGG;AACH,MAAsB,QAAS,SAAQ,yBAAW;IAWrC,eAAe;QACpB,IAAI,UAAU,GAAW,CAAC,CAAC;QAC3B,IAAI,MAAM,GAAW,CAAC,CAAC;QAEvB,MAAM,aAAa,GAAa,IAAI,CAAC,WAAW;aAC3C,KAAK,EAAE;aACP,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACX,OAAO,CAAC,GAAG,CAAC,CAAC;QACjB,CAAC,CAAC,CAAC;QAEP,sFAAsF;QACtF,KACI,IAAI,CAAC,GAAG,CAAC,EACT,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,mBAAmB,CAAC,EAC5D,EAAE,CAAC,EACL;YACE,MAAM,KAAK,GAAW,IAAI,CAAC,KAAK,CAC5B,wBAAa,CAAC,IAAI,CACd,CAAC,EACD,EAAE,EACF,oBAAS,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC,EAAE,CAAC,CAAC,CACtD,CACJ,CAAC;YAEF,aAAa,CAAC,CAAC,CAAC,IAAI,wBAAa,CAAC,IAAI,CAClC,IAAI,CAAC,sBAAsB,EAC3B,CAAC,EACD,KAAK,CACR,CAAC;SACL;QAED,4EAA4E;QAC5E,+CAA+C;QAC/C,aAAa;aACR,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACX,OAAO,CAAC,GAAG,CAAC,CAAC;QACjB,CAAC,CAAC;aACD,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;YAChB,UAAU,IAAI,MAAM,GAAG,MAAM,CAAC;YAC9B,MAAM,IAAI,IAAI,CAAC,WAAW,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEP,OAAO,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAAC;IAClD,CAAC;CACJ;AAvDD,4BAuDC"}
1
+ {"version":3,"file":"OsuSkill.js","sourceRoot":"","sources":["../../src/skills/OsuSkill.ts"],"names":[],"mappings":";;;AAAA,iDAA8D;AAC9D,qDAAkD;AAElD;;;GAGG;AACH,MAAsB,QAAS,SAAQ,yBAAW;IAWrC,eAAe;QACpB,MAAM,aAAa,GAAa,IAAI,CAAC,WAAW;aAC3C,KAAK,EAAE;aACP,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACX,OAAO,CAAC,GAAG,CAAC,CAAC;QACjB,CAAC,CAAC,CAAC;QAEP,sFAAsF;QACtF,KACI,IAAI,CAAC,GAAG,CAAC,EACT,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,mBAAmB,CAAC,EAC5D,EAAE,CAAC,EACL;YACE,MAAM,KAAK,GAAW,IAAI,CAAC,KAAK,CAC5B,wBAAa,CAAC,IAAI,CACd,CAAC,EACD,EAAE,EACF,oBAAS,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC,EAAE,CAAC,CAAC,CACtD,CACJ,CAAC;YAEF,aAAa,CAAC,CAAC,CAAC,IAAI,wBAAa,CAAC,IAAI,CAClC,IAAI,CAAC,sBAAsB,EAC3B,CAAC,EACD,KAAK,CACR,CAAC;SACL;QAED,4EAA4E;QAC5E,+CAA+C;QAC/C,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACxB,OAAO,CAAC,GAAG,CAAC,CAAC;QACjB,CAAC,CAAC,CAAC;QAEH,IAAI,UAAU,GAAW,CAAC,CAAC;QAC3B,IAAI,MAAM,GAAW,CAAC,CAAC;QAEvB,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE;YAChC,MAAM,QAAQ,GAAW,MAAM,GAAG,MAAM,CAAC;YAEzC,IAAI,UAAU,GAAG,QAAQ,KAAK,UAAU,EAAE;gBACtC,MAAM;aACT;YAED,UAAU,IAAI,QAAQ,CAAC;YACvB,MAAM,IAAI,IAAI,CAAC,WAAW,CAAC;SAC9B;QAED,OAAO,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAAC;IAClD,CAAC;CACJ;AA7DD,4BA6DC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rian8337/osu-difficulty-calculator",
3
- "version": "1.4.13",
3
+ "version": "1.4.17",
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": "^1.4.8"
33
+ "@rian8337/osu-base": "^1.4.16"
34
34
  },
35
35
  "publishConfig": {
36
36
  "access": "public"
37
37
  },
38
- "gitHead": "6c9fab1f61ab97ed8e4f32a78b4619b5590a851f"
38
+ "gitHead": "e24c07916def1d0d7ac5e0b69db7dd11d592d504"
39
39
  }