maidraw 0.5.5 → 0.6.1
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/assets/themes/maimai/salt/2026landscape/image/achievement/a.png +0 -0
- package/assets/themes/maimai/salt/2026landscape/image/achievement/aa.png +0 -0
- package/assets/themes/maimai/salt/2026landscape/image/achievement/aaa.png +0 -0
- package/assets/themes/maimai/salt/2026landscape/image/achievement/b.png +0 -0
- package/assets/themes/maimai/salt/2026landscape/image/achievement/bb.png +0 -0
- package/assets/themes/maimai/salt/2026landscape/image/achievement/bbb.png +0 -0
- package/assets/themes/maimai/salt/2026landscape/image/achievement/c.png +0 -0
- package/assets/themes/maimai/salt/2026landscape/image/achievement/d.png +0 -0
- package/assets/themes/maimai/salt/2026landscape/image/achievement/s.png +0 -0
- package/assets/themes/maimai/salt/2026landscape/image/achievement/sp.png +0 -0
- package/assets/themes/maimai/salt/2026landscape/image/achievement/ss.png +0 -0
- package/assets/themes/maimai/salt/2026landscape/image/achievement/ssp.png +0 -0
- package/assets/themes/maimai/salt/2026landscape/image/achievement/sss.png +0 -0
- package/assets/themes/maimai/salt/2026landscape/image/achievement/sssp.png +0 -0
- package/assets/themes/maimai/salt/2026landscape/image/background.png +0 -0
- package/assets/themes/maimai/salt/2026landscape/image/chara.png +0 -0
- package/assets/themes/maimai/salt/2026landscape/image/logo.png +0 -0
- package/assets/themes/maimai/salt/2026landscape/manifest.json +172 -0
- package/assets/themes/ongeki/common/refresh/achievement/a.png +0 -0
- package/assets/themes/ongeki/common/refresh/achievement/aa.png +0 -0
- package/assets/themes/ongeki/common/refresh/achievement/aaa.png +0 -0
- package/assets/themes/ongeki/common/refresh/achievement/b.png +0 -0
- package/assets/themes/ongeki/common/refresh/achievement/bb.png +0 -0
- package/assets/themes/ongeki/common/refresh/achievement/bbb.png +0 -0
- package/assets/themes/ongeki/common/refresh/achievement/c.png +0 -0
- package/assets/themes/ongeki/common/refresh/achievement/d.png +0 -0
- package/assets/themes/ongeki/common/refresh/achievement/s.png +0 -0
- package/assets/themes/ongeki/common/refresh/achievement/ss.png +0 -0
- package/assets/themes/ongeki/common/refresh/achievement/sss.png +0 -0
- package/assets/themes/ongeki/common/refresh/achievement/sssp.png +0 -0
- package/assets/themes/ongeki/common/refresh/jp/background.png +0 -0
- package/assets/themes/ongeki/common/refresh/jp/logo.png +0 -0
- package/assets/themes/ongeki/common/versionless/icon.png +0 -0
- package/assets/themes/ongeki/common/versionless/milestone/ab.png +0 -0
- package/assets/themes/ongeki/common/versionless/milestone/abp.png +0 -0
- package/assets/themes/ongeki/common/versionless/milestone/fb.png +0 -0
- package/assets/themes/ongeki/common/versionless/milestone/fc.png +0 -0
- package/assets/themes/ongeki/common/versionless/numberMap.png +0 -0
- package/assets/themes/ongeki/common/versionless/userplateAF2025.png +0 -0
- package/assets/themes/ongeki/common/versionless/userplateIchigeki.png +0 -0
- package/assets/themes/ongeki/common/versionless/void.png +0 -0
- package/assets/themes/ongeki/jp/refreshLandscape/refresh/manifest.json +173 -0
- package/dist/chu/bests/best50.d.ts +4 -2
- package/dist/chu/bests/best50.js +27 -2
- package/dist/chu/bests/best50.js.map +1 -1
- package/dist/chu/chart/index.d.ts +3 -3
- package/dist/chu/chart/index.js +28 -5
- package/dist/chu/chart/index.js.map +1 -1
- package/dist/chu/index.d.ts +6 -4
- package/dist/chu/index.js +29 -4
- package/dist/chu/index.js.map +1 -1
- package/dist/geki/bests/best50.d.ts +37 -0
- package/dist/geki/bests/best50.js +867 -0
- package/dist/geki/bests/best50.js.map +1 -0
- package/dist/geki/bests/index.d.ts +1 -0
- package/dist/geki/bests/index.js +6 -0
- package/dist/geki/bests/index.js.map +1 -0
- package/dist/geki/bests/lib/index.d.ts +34 -0
- package/dist/geki/bests/lib/index.js +60 -0
- package/dist/geki/bests/lib/index.js.map +1 -0
- package/dist/geki/bests/lib/kamaiTachi/index.d.ts +205 -0
- package/dist/geki/bests/lib/kamaiTachi/index.js +498 -0
- package/dist/geki/bests/lib/kamaiTachi/index.js.map +1 -0
- package/dist/geki/bests/type.d.ts +122 -0
- package/dist/geki/bests/type.js +3 -0
- package/dist/geki/bests/type.js.map +1 -0
- package/dist/geki/chart/database.d.ts +9 -0
- package/dist/geki/chart/database.js +66 -0
- package/dist/geki/chart/database.js.map +1 -0
- package/dist/geki/chart/index.d.ts +4 -0
- package/dist/geki/chart/index.js +32 -0
- package/dist/geki/chart/index.js.map +1 -0
- package/dist/geki/index.d.ts +10 -0
- package/dist/geki/index.js +70 -0
- package/dist/geki/index.js.map +1 -0
- package/dist/geki/type.d.ts +51 -0
- package/dist/geki/type.js +39 -0
- package/dist/geki/type.js.map +1 -0
- package/dist/index.d.ts +7 -5
- package/dist/index.js +32 -7
- package/dist/index.js.map +1 -1
- package/dist/mai/best50/index.d.ts +46 -6
- package/dist/mai/best50/index.js +127 -330
- package/dist/mai/best50/index.js.map +1 -1
- package/dist/mai/best50/lib/kamaiTachi/index.d.ts +10 -2
- package/dist/mai/best50/lib/kamaiTachi/index.js +34 -7
- package/dist/mai/best50/lib/kamaiTachi/index.js.map +1 -1
- package/dist/mai/chart/index.d.ts +3 -3
- package/dist/mai/chart/index.js +28 -5
- package/dist/mai/chart/index.js.map +1 -1
- package/dist/mai/index.d.ts +6 -4
- package/dist/mai/index.js +29 -4
- package/dist/mai/index.js.map +1 -1
- package/package.json +2 -2
package/dist/mai/best50/index.js
CHANGED
|
@@ -1,4 +1,27 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
2
25
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
26
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
27
|
};
|
|
@@ -12,10 +35,10 @@ const color_1 = __importDefault(require("color"));
|
|
|
12
35
|
const sharp_1 = __importDefault(require("sharp"));
|
|
13
36
|
const glob_1 = require("glob");
|
|
14
37
|
const chart_1 = require("../chart");
|
|
15
|
-
const lxns_1 = require("./lib/lxns");
|
|
16
|
-
const kamaiTachi_1 = require("./lib/kamaiTachi");
|
|
17
|
-
const divingFish_1 = require("./lib/divingFish");
|
|
18
38
|
const string_template_1 = __importDefault(require("string-template"));
|
|
39
|
+
const lxns = __importStar(require("./lib/lxns"));
|
|
40
|
+
const kamaiTachi = __importStar(require("./lib/kamaiTachi"));
|
|
41
|
+
const divingFish = __importStar(require("./lib/divingFish"));
|
|
19
42
|
class HalfFullWidthConvert {
|
|
20
43
|
static charsets = {
|
|
21
44
|
latin: { halfRE: /[!-~]/g, fullRE: /[!-~]/g, delta: 0xfee0 },
|
|
@@ -50,9 +73,44 @@ class HalfFullWidthConvert {
|
|
|
50
73
|
static toHalfWidth = (str0) => this.sets.reduce((str, set) => str.replace(this.re(set, "full"), this.toHalf(set)), str0);
|
|
51
74
|
}
|
|
52
75
|
class Best50 {
|
|
53
|
-
static
|
|
54
|
-
|
|
55
|
-
|
|
76
|
+
static RATING_CONSTANTS = {
|
|
77
|
+
[type_1.EAchievementTypes.D]: {
|
|
78
|
+
[0.4]: 6.4,
|
|
79
|
+
[0.3]: 4.8,
|
|
80
|
+
[0.2]: 3.2,
|
|
81
|
+
[0.1]: 1.6,
|
|
82
|
+
[0]: 0,
|
|
83
|
+
},
|
|
84
|
+
[type_1.EAchievementTypes.C]: 13.6,
|
|
85
|
+
[type_1.EAchievementTypes.B]: 13.6,
|
|
86
|
+
[type_1.EAchievementTypes.BB]: 13.6,
|
|
87
|
+
[type_1.EAchievementTypes.BBB]: 13.6,
|
|
88
|
+
[type_1.EAchievementTypes.A]: 13.6,
|
|
89
|
+
[type_1.EAchievementTypes.AA]: 15.2,
|
|
90
|
+
[type_1.EAchievementTypes.AAA]: 16.8,
|
|
91
|
+
[type_1.EAchievementTypes.S]: 20.0,
|
|
92
|
+
[type_1.EAchievementTypes.SP]: 20.3,
|
|
93
|
+
[type_1.EAchievementTypes.SS]: 20.8,
|
|
94
|
+
[type_1.EAchievementTypes.SSP]: 21.1,
|
|
95
|
+
[type_1.EAchievementTypes.SSS]: 21.6,
|
|
96
|
+
[type_1.EAchievementTypes.SSSP]: 22.4,
|
|
97
|
+
};
|
|
98
|
+
static RANK_BORDERS = {
|
|
99
|
+
[type_1.EAchievementTypes.D]: [0.0, 0.1, 0.2, 0.3, 0.4],
|
|
100
|
+
[type_1.EAchievementTypes.C]: 0.5,
|
|
101
|
+
[type_1.EAchievementTypes.B]: 0.6,
|
|
102
|
+
[type_1.EAchievementTypes.BB]: 0.7,
|
|
103
|
+
[type_1.EAchievementTypes.BBB]: 0.75,
|
|
104
|
+
[type_1.EAchievementTypes.A]: 0.8,
|
|
105
|
+
[type_1.EAchievementTypes.AA]: 0.9,
|
|
106
|
+
[type_1.EAchievementTypes.AAA]: 0.94,
|
|
107
|
+
[type_1.EAchievementTypes.S]: 0.97,
|
|
108
|
+
[type_1.EAchievementTypes.SP]: 0.98,
|
|
109
|
+
[type_1.EAchievementTypes.SS]: 0.99,
|
|
110
|
+
[type_1.EAchievementTypes.SSP]: 0.995,
|
|
111
|
+
[type_1.EAchievementTypes.SSS]: 1.0,
|
|
112
|
+
[type_1.EAchievementTypes.SSSP]: 1.005,
|
|
113
|
+
};
|
|
56
114
|
static DEFAULT_THEME = "jp-prism-landscape";
|
|
57
115
|
static get assetsPath() {
|
|
58
116
|
return upath_1.default.join(__dirname, "..", "..", "..", "assets");
|
|
@@ -726,10 +784,6 @@ class Best50 {
|
|
|
726
784
|
}
|
|
727
785
|
/* End Draw Tools*/
|
|
728
786
|
static async draw(name, rating, newScores, oldScores, options) {
|
|
729
|
-
await chart_1.Chart.Database.cacheJackets([
|
|
730
|
-
...newScores.map((v) => v.chart.id),
|
|
731
|
-
...oldScores.map((v) => v.chart.id),
|
|
732
|
-
]);
|
|
733
787
|
let currentTheme = this.primaryTheme;
|
|
734
788
|
if (options?.theme) {
|
|
735
789
|
const theme = this.getTheme(options.theme);
|
|
@@ -738,6 +792,10 @@ class Best50 {
|
|
|
738
792
|
}
|
|
739
793
|
}
|
|
740
794
|
if (currentTheme) {
|
|
795
|
+
await chart_1.Chart.Database.cacheJackets([
|
|
796
|
+
...newScores.map((v) => v.chart.id),
|
|
797
|
+
...oldScores.map((v) => v.chart.id),
|
|
798
|
+
]);
|
|
741
799
|
const canvas = new canvas_1.Canvas(currentTheme.manifest.width * (options?.scale ?? 1), currentTheme.manifest.height * (options?.scale ?? 1));
|
|
742
800
|
const ctx = canvas.getContext("2d");
|
|
743
801
|
if (options?.scale)
|
|
@@ -776,11 +834,38 @@ class Best50 {
|
|
|
776
834
|
break;
|
|
777
835
|
}
|
|
778
836
|
case "text": {
|
|
779
|
-
|
|
837
|
+
const getRatingBase = (scores, length) => {
|
|
838
|
+
if (scores.length < length)
|
|
839
|
+
return 0;
|
|
780
840
|
return (scores
|
|
781
|
-
.
|
|
841
|
+
.slice(0, length)
|
|
842
|
+
.map((v) => {
|
|
843
|
+
let ratingConstant = 0;
|
|
844
|
+
if (v.achievementRank ==
|
|
845
|
+
type_1.EAchievementTypes.D) {
|
|
846
|
+
if (v.achievement > 40)
|
|
847
|
+
ratingConstant =
|
|
848
|
+
this.RATING_CONSTANTS[v.achievementRank]["0.4"];
|
|
849
|
+
if (v.achievement > 30)
|
|
850
|
+
ratingConstant =
|
|
851
|
+
this.RATING_CONSTANTS[v.achievementRank]["0.3"];
|
|
852
|
+
if (v.achievement > 20)
|
|
853
|
+
ratingConstant =
|
|
854
|
+
this.RATING_CONSTANTS[v.achievementRank]["0.2"];
|
|
855
|
+
if (v.achievement > 10)
|
|
856
|
+
ratingConstant =
|
|
857
|
+
this.RATING_CONSTANTS[v.achievementRank]["0.1"];
|
|
858
|
+
}
|
|
859
|
+
else {
|
|
860
|
+
ratingConstant =
|
|
861
|
+
this.RATING_CONSTANTS[v.achievementRank];
|
|
862
|
+
}
|
|
863
|
+
return ((v.achievement / 100) *
|
|
864
|
+
ratingConstant *
|
|
865
|
+
v.chart.level);
|
|
866
|
+
})
|
|
782
867
|
.sort((a, b) => a - b)[0] || 0);
|
|
783
|
-
}
|
|
868
|
+
};
|
|
784
869
|
function getRatingAvg(scores, length) {
|
|
785
870
|
if (scores.length <= 0)
|
|
786
871
|
return 0;
|
|
@@ -788,325 +873,32 @@ class Best50 {
|
|
|
788
873
|
.map((v) => v.dxRating)
|
|
789
874
|
.reduce((sum, v) => (sum += v)) / length);
|
|
790
875
|
}
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
"14.1": 317,
|
|
803
|
-
"14.0": 315,
|
|
804
|
-
"13.9": 312,
|
|
805
|
-
"13.8": 310,
|
|
806
|
-
"13.7": 308,
|
|
807
|
-
"13.6": 306,
|
|
808
|
-
"13.5": 303,
|
|
809
|
-
"13.4": 301,
|
|
810
|
-
"13.3": 299,
|
|
811
|
-
"13.2": 297,
|
|
812
|
-
"13.1": 294,
|
|
813
|
-
"13.0": 292,
|
|
814
|
-
"12.9": 290,
|
|
815
|
-
"12.8": 288,
|
|
816
|
-
"12.7": 285,
|
|
817
|
-
"12.6": 283,
|
|
818
|
-
"12.5": 281,
|
|
819
|
-
"12.4": 279,
|
|
820
|
-
"12.3": 276,
|
|
821
|
-
"12.2": 274,
|
|
822
|
-
"12.1": 272,
|
|
823
|
-
"12.0": 270,
|
|
824
|
-
"11.9": 267,
|
|
825
|
-
"11.8": 265,
|
|
826
|
-
"11.7": 263,
|
|
827
|
-
"11.6": 261,
|
|
828
|
-
"11.5": 258,
|
|
829
|
-
"11.4": 256,
|
|
830
|
-
"11.3": 254,
|
|
831
|
-
"11.2": 252,
|
|
832
|
-
"11.1": 249,
|
|
833
|
-
"11.0": 247,
|
|
834
|
-
"10.9": 245,
|
|
835
|
-
"10.8": 243,
|
|
836
|
-
"10.7": 240,
|
|
837
|
-
"10.6": 238,
|
|
838
|
-
"10.5": 236,
|
|
839
|
-
"10.4": 234,
|
|
840
|
-
"10.3": 231,
|
|
841
|
-
"10.2": 229,
|
|
842
|
-
"10.1": 227,
|
|
843
|
-
"10.0": 225,
|
|
844
|
-
"9.9": 222,
|
|
845
|
-
"9.8": 220,
|
|
846
|
-
"9.7": 218,
|
|
847
|
-
"9.6": 216,
|
|
848
|
-
"9.5": 213,
|
|
849
|
-
"9.4": 211,
|
|
850
|
-
"9.3": 209,
|
|
851
|
-
"9.2": 207,
|
|
852
|
-
"9.1": 204,
|
|
853
|
-
"9.0": 202,
|
|
854
|
-
"8.9": 200,
|
|
855
|
-
"8.8": 198,
|
|
856
|
-
"8.7": 195,
|
|
857
|
-
"8.6": 193,
|
|
858
|
-
"8.5": 191,
|
|
859
|
-
"8.4": 189,
|
|
860
|
-
"8.3": 186,
|
|
861
|
-
"8.2": 184,
|
|
862
|
-
"8.1": 182,
|
|
863
|
-
"8.0": 180,
|
|
864
|
-
"7.9": 177,
|
|
865
|
-
"7.8": 175,
|
|
866
|
-
"7.7": 173,
|
|
867
|
-
"7.6": 171,
|
|
868
|
-
"7.5": 168,
|
|
869
|
-
"7.4": 166,
|
|
870
|
-
"7.3": 164,
|
|
871
|
-
"7.2": 162,
|
|
872
|
-
"7.1": 159,
|
|
873
|
-
"7.0": 157,
|
|
874
|
-
"6.9": 155,
|
|
875
|
-
"6.8": 153,
|
|
876
|
-
"6.7": 150,
|
|
877
|
-
"6.6": 148,
|
|
878
|
-
"6.5": 146,
|
|
879
|
-
"6.4": 144,
|
|
880
|
-
"6.3": 141,
|
|
881
|
-
"6.2": 139,
|
|
882
|
-
"6.1": 137,
|
|
883
|
-
"6.0": 135,
|
|
884
|
-
"5.9": 132,
|
|
885
|
-
"5.8": 130,
|
|
886
|
-
"5.7": 128,
|
|
887
|
-
"5.6": 126,
|
|
888
|
-
"5.5": 123,
|
|
889
|
-
"5.4": 121,
|
|
890
|
-
"5.3": 119,
|
|
891
|
-
"5.2": 117,
|
|
892
|
-
"5.1": 114,
|
|
893
|
-
"5.0": 112,
|
|
894
|
-
"4.9": 110,
|
|
895
|
-
"4.8": 108,
|
|
896
|
-
"4.7": 105,
|
|
897
|
-
"4.6": 103,
|
|
898
|
-
"4.5": 101,
|
|
899
|
-
"4.4": 99,
|
|
900
|
-
"4.3": 96,
|
|
901
|
-
"4.2": 94,
|
|
902
|
-
"4.1": 92,
|
|
903
|
-
"4.0": 90,
|
|
904
|
-
"3.9": 87,
|
|
905
|
-
"3.8": 85,
|
|
906
|
-
"3.7": 83,
|
|
907
|
-
"3.6": 81,
|
|
908
|
-
"3.5": 78,
|
|
909
|
-
"3.4": 76,
|
|
910
|
-
"3.3": 74,
|
|
911
|
-
"3.2": 72,
|
|
912
|
-
"3.1": 69,
|
|
913
|
-
"3.0": 67,
|
|
914
|
-
"2.9": 65,
|
|
915
|
-
"2.8": 63,
|
|
916
|
-
"2.7": 60,
|
|
917
|
-
"2.6": 58,
|
|
918
|
-
"2.5": 56,
|
|
919
|
-
"2.4": 54,
|
|
920
|
-
"2.3": 51,
|
|
921
|
-
"2.2": 49,
|
|
922
|
-
"2.1": 47,
|
|
923
|
-
"2.0": 45,
|
|
924
|
-
"1.9": 42,
|
|
925
|
-
"1.8": 40,
|
|
926
|
-
"1.7": 38,
|
|
927
|
-
"1.6": 36,
|
|
928
|
-
"1.5": 33,
|
|
929
|
-
"1.4": 31,
|
|
930
|
-
"1.3": 29,
|
|
931
|
-
"1.2": 27,
|
|
932
|
-
"1.1": 24,
|
|
933
|
-
"1.0": 22,
|
|
934
|
-
};
|
|
935
|
-
const MILESTONES_SSS = {
|
|
936
|
-
"15.0": 324,
|
|
937
|
-
"14.9": 321,
|
|
938
|
-
"14.8": 319,
|
|
939
|
-
"14.7": 317,
|
|
940
|
-
"14.6": 315,
|
|
941
|
-
"14.5": 313,
|
|
942
|
-
"14.4": 311,
|
|
943
|
-
"14.3": 308,
|
|
944
|
-
"14.2": 306,
|
|
945
|
-
"14.1": 304,
|
|
946
|
-
"14.0": 302,
|
|
947
|
-
"13.9": 300,
|
|
948
|
-
"13.8": 298,
|
|
949
|
-
"13.7": 295,
|
|
950
|
-
"13.6": 293,
|
|
951
|
-
"13.5": 291,
|
|
952
|
-
"13.4": 289,
|
|
953
|
-
"13.3": 287,
|
|
954
|
-
"13.2": 285,
|
|
955
|
-
"13.1": 282,
|
|
956
|
-
"13.0": 280,
|
|
957
|
-
"12.9": 278,
|
|
958
|
-
"12.8": 276,
|
|
959
|
-
"12.7": 274,
|
|
960
|
-
"12.6": 272,
|
|
961
|
-
"12.5": 270,
|
|
962
|
-
"12.4": 267,
|
|
963
|
-
"12.3": 265,
|
|
964
|
-
"12.2": 263,
|
|
965
|
-
"12.1": 261,
|
|
966
|
-
"12.0": 259,
|
|
967
|
-
"11.9": 257,
|
|
968
|
-
"11.8": 254,
|
|
969
|
-
"11.7": 252,
|
|
970
|
-
"11.6": 250,
|
|
971
|
-
"11.5": 248,
|
|
972
|
-
"11.4": 246,
|
|
973
|
-
"11.3": 244,
|
|
974
|
-
"11.2": 241,
|
|
975
|
-
"11.1": 239,
|
|
976
|
-
"11.0": 237,
|
|
977
|
-
"10.9": 235,
|
|
978
|
-
"10.8": 233,
|
|
979
|
-
"10.7": 231,
|
|
980
|
-
"10.6": 228,
|
|
981
|
-
"10.5": 226,
|
|
982
|
-
"10.4": 224,
|
|
983
|
-
"10.3": 222,
|
|
984
|
-
"10.2": 220,
|
|
985
|
-
"10.1": 218,
|
|
986
|
-
"10.0": 216,
|
|
987
|
-
"9.9": 213,
|
|
988
|
-
"9.8": 211,
|
|
989
|
-
"9.7": 209,
|
|
990
|
-
"9.6": 207,
|
|
991
|
-
"9.5": 205,
|
|
992
|
-
"9.4": 203,
|
|
993
|
-
"9.3": 200,
|
|
994
|
-
"9.2": 198,
|
|
995
|
-
"9.1": 196,
|
|
996
|
-
"9.0": 194,
|
|
997
|
-
"8.9": 192,
|
|
998
|
-
"8.8": 190,
|
|
999
|
-
"8.7": 187,
|
|
1000
|
-
"8.6": 185,
|
|
1001
|
-
"8.5": 183,
|
|
1002
|
-
"8.4": 181,
|
|
1003
|
-
"8.3": 179,
|
|
1004
|
-
"8.2": 177,
|
|
1005
|
-
"8.1": 174,
|
|
1006
|
-
"8.0": 172,
|
|
1007
|
-
"7.9": 170,
|
|
1008
|
-
"7.8": 168,
|
|
1009
|
-
"7.7": 166,
|
|
1010
|
-
"7.6": 164,
|
|
1011
|
-
"7.5": 162,
|
|
1012
|
-
"7.4": 159,
|
|
1013
|
-
"7.3": 157,
|
|
1014
|
-
"7.2": 155,
|
|
1015
|
-
"7.1": 153,
|
|
1016
|
-
"7.0": 151,
|
|
1017
|
-
"6.9": 149,
|
|
1018
|
-
"6.8": 146,
|
|
1019
|
-
"6.7": 144,
|
|
1020
|
-
"6.6": 142,
|
|
1021
|
-
"6.5": 140,
|
|
1022
|
-
"6.4": 138,
|
|
1023
|
-
"6.3": 136,
|
|
1024
|
-
"6.2": 133,
|
|
1025
|
-
"6.1": 131,
|
|
1026
|
-
"6.0": 129,
|
|
1027
|
-
"5.9": 127,
|
|
1028
|
-
"5.8": 125,
|
|
1029
|
-
"5.7": 123,
|
|
1030
|
-
"5.6": 120,
|
|
1031
|
-
"5.5": 118,
|
|
1032
|
-
"5.4": 116,
|
|
1033
|
-
"5.3": 114,
|
|
1034
|
-
"5.2": 112,
|
|
1035
|
-
"5.1": 110,
|
|
1036
|
-
"5.0": 108,
|
|
1037
|
-
"4.9": 105,
|
|
1038
|
-
"4.8": 103,
|
|
1039
|
-
"4.7": 101,
|
|
1040
|
-
"4.6": 99,
|
|
1041
|
-
"4.5": 97,
|
|
1042
|
-
"4.4": 95,
|
|
1043
|
-
"4.3": 92,
|
|
1044
|
-
"4.2": 90,
|
|
1045
|
-
"4.1": 88,
|
|
1046
|
-
"4.0": 86,
|
|
1047
|
-
"3.9": 84,
|
|
1048
|
-
"3.8": 82,
|
|
1049
|
-
"3.7": 79,
|
|
1050
|
-
"3.6": 77,
|
|
1051
|
-
"3.5": 75,
|
|
1052
|
-
"3.4": 73,
|
|
1053
|
-
"3.3": 71,
|
|
1054
|
-
"3.2": 69,
|
|
1055
|
-
"3.1": 66,
|
|
1056
|
-
"3.0": 64,
|
|
1057
|
-
"2.9": 62,
|
|
1058
|
-
"2.8": 60,
|
|
1059
|
-
"2.7": 58,
|
|
1060
|
-
"2.6": 56,
|
|
1061
|
-
"2.5": 54,
|
|
1062
|
-
"2.4": 51,
|
|
1063
|
-
"2.3": 49,
|
|
1064
|
-
"2.2": 47,
|
|
1065
|
-
"2.1": 45,
|
|
1066
|
-
"2.0": 43,
|
|
1067
|
-
"1.9": 41,
|
|
1068
|
-
"1.8": 38,
|
|
1069
|
-
"1.7": 36,
|
|
1070
|
-
"1.6": 34,
|
|
1071
|
-
"1.5": 32,
|
|
1072
|
-
"1.4": 30,
|
|
1073
|
-
"1.3": 28,
|
|
1074
|
-
"1.2": 25,
|
|
1075
|
-
"1.1": 23,
|
|
1076
|
-
"1.0": 21,
|
|
1077
|
-
};
|
|
1078
|
-
const base = getRatingBase(scores);
|
|
876
|
+
const getRatingTargetLevel = (rating, target) => {
|
|
877
|
+
if (target == type_1.EAchievementTypes.D) {
|
|
878
|
+
return 0;
|
|
879
|
+
}
|
|
880
|
+
const naiveNevel = rating /
|
|
881
|
+
(this.RATING_CONSTANTS[target] *
|
|
882
|
+
this.RANK_BORDERS[target]);
|
|
883
|
+
return Math.ceil(naiveNevel * 10) / 10;
|
|
884
|
+
};
|
|
885
|
+
function getMilestone(scores, length) {
|
|
886
|
+
const base = getRatingBase(scores, length);
|
|
1079
887
|
let sssTarget, ssspTarget;
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
ssspTarget = undefined;
|
|
1085
|
-
}
|
|
1086
|
-
else {
|
|
1087
|
-
ssspTarget = level;
|
|
1088
|
-
}
|
|
1089
|
-
break;
|
|
1090
|
-
}
|
|
888
|
+
const sssLevel = getRatingTargetLevel(base, type_1.EAchievementTypes.SSS);
|
|
889
|
+
const ssspLevel = getRatingTargetLevel(base, type_1.EAchievementTypes.SSSP);
|
|
890
|
+
if (sssLevel > 0 && sssLevel < 15) {
|
|
891
|
+
sssTarget = sssLevel;
|
|
1091
892
|
}
|
|
1092
|
-
|
|
1093
|
-
|
|
1094
|
-
if (base >= rating) {
|
|
1095
|
-
if (level == "15.0") {
|
|
1096
|
-
sssTarget = undefined;
|
|
1097
|
-
}
|
|
1098
|
-
else {
|
|
1099
|
-
sssTarget = level;
|
|
1100
|
-
}
|
|
1101
|
-
break;
|
|
1102
|
-
}
|
|
893
|
+
if (ssspLevel > 0 && ssspLevel < 15) {
|
|
894
|
+
ssspTarget = ssspLevel;
|
|
1103
895
|
}
|
|
1104
896
|
if (sssTarget && ssspTarget)
|
|
1105
|
-
return `Next rating boost: lv. ${
|
|
897
|
+
return `Next rating boost: lv. ${ssspTarget.toFixed(1)} SSS+/${sssTarget.toFixed(1)} SSS`;
|
|
1106
898
|
else if (sssTarget)
|
|
1107
|
-
return `Next rating boost: lv. ${
|
|
899
|
+
return `Next rating boost: lv. ${sssTarget.toFixed(1)} SSS`;
|
|
1108
900
|
else if (ssspTarget)
|
|
1109
|
-
return `Next rating boost: lv. ${
|
|
901
|
+
return `Next rating boost: lv. ${ssspTarget.toFixed(1)} SSS+`;
|
|
1110
902
|
else
|
|
1111
903
|
return "Good job!";
|
|
1112
904
|
}
|
|
@@ -1115,10 +907,10 @@ class Best50 {
|
|
|
1115
907
|
rating: rating.toFixed(0),
|
|
1116
908
|
newScoreRatingAvg: getRatingAvg(newScores, 15).toFixed(0),
|
|
1117
909
|
oldScoreRatingAvg: getRatingAvg(oldScores, 35).toFixed(0),
|
|
1118
|
-
newScoreRatingBase: getRatingBase(newScores).toFixed(0),
|
|
1119
|
-
oldScoreRatingBase: getRatingBase(oldScores).toFixed(0),
|
|
1120
|
-
newScoreMilestone: getMilestone(newScores),
|
|
1121
|
-
oldScoreMilestone: getMilestone(oldScores),
|
|
910
|
+
newScoreRatingBase: getRatingBase(newScores, 15).toFixed(0),
|
|
911
|
+
oldScoreRatingBase: getRatingBase(oldScores, 30).toFixed(0),
|
|
912
|
+
newScoreMilestone: getMilestone(newScores, 15),
|
|
913
|
+
oldScoreMilestone: getMilestone(oldScores, 30),
|
|
1122
914
|
});
|
|
1123
915
|
break;
|
|
1124
916
|
}
|
|
@@ -1185,4 +977,9 @@ class Best50 {
|
|
|
1185
977
|
}
|
|
1186
978
|
}
|
|
1187
979
|
exports.Best50 = Best50;
|
|
980
|
+
(function (Best50) {
|
|
981
|
+
Best50.LXNS = lxns.LXNS;
|
|
982
|
+
Best50.KamaiTachi = kamaiTachi.KamaiTachi;
|
|
983
|
+
Best50.DivingFish = divingFish.DivingFish;
|
|
984
|
+
})(Best50 || (exports.Best50 = Best50 = {}));
|
|
1188
985
|
//# sourceMappingURL=index.js.map
|