maidraw 0.4.2 → 0.4.4
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/cn/2024Landscape/manifest.json +29 -2
- package/assets/themes/cn/2024Portrait/manifest.json +35 -8
- package/assets/themes/jp/buddiesLandscape/manifest.json +29 -2
- package/assets/themes/jp/buddiesPlusLandscape/manifest.json +29 -2
- package/assets/themes/jp/buddiesPlusPortrait/manifest.json +35 -8
- package/assets/themes/jp/buddiesPortrait/manifest.json +35 -8
- package/assets/themes/jp/finaleLandscape/manifest.json +28 -1
- package/assets/themes/jp/finalePortrait/manifest.json +33 -6
- package/assets/themes/jp/prismLandscape/manifest.json +29 -2
- package/assets/themes/jp/prismPlusLandscape/manifest.json +29 -2
- package/assets/themes/jp/prismPlusPortrait/manifest.json +34 -7
- package/assets/themes/jp/prismPortrait/manifest.json +35 -8
- package/dist/mai/best50/index.d.ts +0 -3
- package/dist/mai/best50/index.js +335 -14
- package/dist/mai/best50/index.js.map +1 -1
- package/dist/mai/best50/lib/divingFish/index.js +1 -1
- package/dist/mai/best50/lib/divingFish/index.js.map +1 -1
- package/dist/mai/best50/lib/index.d.ts +10 -1
- package/dist/mai/best50/lib/index.js +50 -4
- package/dist/mai/best50/lib/index.js.map +1 -1
- package/dist/mai/best50/lib/lxns/index.js +1 -1
- package/dist/mai/best50/lib/lxns/index.js.map +1 -1
- package/package.json +5 -2
- package/assets/fonts/comfortaa/Comfortaa-Regular.ttf +0 -0
- package/assets/fonts/kosugi-maru/KosugiMaru-Regular.ttf +0 -0
- package/assets/fonts/kosugi-maru/LICENSE.txt +0 -202
|
@@ -67,7 +67,7 @@
|
|
|
67
67
|
{
|
|
68
68
|
"type": "image",
|
|
69
69
|
"x": 980,
|
|
70
|
-
"y":
|
|
70
|
+
"y": 220,
|
|
71
71
|
"width": 600,
|
|
72
72
|
"height": 566,
|
|
73
73
|
"path": "../../common/prism/jp/chara.png"
|
|
@@ -91,7 +91,7 @@
|
|
|
91
91
|
{
|
|
92
92
|
"type": "score-grid",
|
|
93
93
|
"x": 40,
|
|
94
|
-
"y":
|
|
94
|
+
"y": 440,
|
|
95
95
|
"horizontalSize": 5,
|
|
96
96
|
"verticalSize": 3,
|
|
97
97
|
"region": "new",
|
|
@@ -114,7 +114,7 @@
|
|
|
114
114
|
{
|
|
115
115
|
"type": "score-grid",
|
|
116
116
|
"x": 40,
|
|
117
|
-
"y":
|
|
117
|
+
"y": 1015,
|
|
118
118
|
"horizontalSize": 5,
|
|
119
119
|
"verticalSize": 7,
|
|
120
120
|
"region": "old",
|
|
@@ -144,8 +144,8 @@
|
|
|
144
144
|
"type": "text",
|
|
145
145
|
"size": 32,
|
|
146
146
|
"x": 60,
|
|
147
|
-
"y":
|
|
148
|
-
"borderColor": "#
|
|
147
|
+
"y": 2280,
|
|
148
|
+
"borderColor": "#226180",
|
|
149
149
|
"align": "left",
|
|
150
150
|
"content": "Generated by saltbot |"
|
|
151
151
|
},
|
|
@@ -153,10 +153,37 @@
|
|
|
153
153
|
"type": "text",
|
|
154
154
|
"size": 28,
|
|
155
155
|
"x": 445,
|
|
156
|
-
"y":
|
|
157
|
-
"borderColor": "#
|
|
156
|
+
"y": 2260,
|
|
157
|
+
"borderColor": "#226180",
|
|
158
158
|
"align": "left",
|
|
159
|
-
"content": "
|
|
159
|
+
"content": "maimai.cab/invite\nmaimai.cab/discord"
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
"type": "text",
|
|
163
|
+
"size": 24,
|
|
164
|
+
"x": 50,
|
|
165
|
+
"y": 390,
|
|
166
|
+
"borderColor": "#226180",
|
|
167
|
+
"align": "left",
|
|
168
|
+
"content": "NEW\nOLD"
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
"type": "text",
|
|
172
|
+
"size": 24,
|
|
173
|
+
"x": 115,
|
|
174
|
+
"y": 390,
|
|
175
|
+
"borderColor": "#226180",
|
|
176
|
+
"align": "left",
|
|
177
|
+
"content": "scores average: {newScoreRatingAvg}.\nscores average: {oldScoreRatingAvg}."
|
|
178
|
+
},
|
|
179
|
+
{
|
|
180
|
+
"type": "text",
|
|
181
|
+
"size": 24,
|
|
182
|
+
"x": 370,
|
|
183
|
+
"y": 390,
|
|
184
|
+
"borderColor": "#226180",
|
|
185
|
+
"align": "left",
|
|
186
|
+
"content": "{newScoreMilestone}\n{oldScoreMilestone}"
|
|
160
187
|
}
|
|
161
188
|
]
|
|
162
189
|
}
|
|
@@ -3,9 +3,6 @@ import ScoreTrackerAdapter from "./lib";
|
|
|
3
3
|
import { LXNS } from "./lib/lxns";
|
|
4
4
|
import { KamaiTachi } from "./lib/kamaiTachi";
|
|
5
5
|
import { DivingFish } from "./lib/divingFish";
|
|
6
|
-
export { LXNS } from "./lib/lxns";
|
|
7
|
-
export { KamaiTachi } from "./lib/kamaiTachi";
|
|
8
|
-
export { DivingFish } from "./lib/divingFish";
|
|
9
6
|
export declare class Best50 {
|
|
10
7
|
static LXNS: typeof LXNS;
|
|
11
8
|
static KamaiTachi: typeof KamaiTachi;
|
package/dist/mai/best50/index.js
CHANGED
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.Best50 =
|
|
6
|
+
exports.Best50 = void 0;
|
|
7
7
|
const fs_1 = __importDefault(require("fs"));
|
|
8
8
|
const upath_1 = __importDefault(require("upath"));
|
|
9
9
|
const type_1 = require("../../type");
|
|
@@ -15,12 +15,7 @@ const chart_1 = require("../chart");
|
|
|
15
15
|
const lxns_1 = require("./lib/lxns");
|
|
16
16
|
const kamaiTachi_1 = require("./lib/kamaiTachi");
|
|
17
17
|
const divingFish_1 = require("./lib/divingFish");
|
|
18
|
-
|
|
19
|
-
Object.defineProperty(exports, "LXNS", { enumerable: true, get: function () { return lxns_2.LXNS; } });
|
|
20
|
-
var kamaiTachi_2 = require("./lib/kamaiTachi");
|
|
21
|
-
Object.defineProperty(exports, "KamaiTachi", { enumerable: true, get: function () { return kamaiTachi_2.KamaiTachi; } });
|
|
22
|
-
var divingFish_2 = require("./lib/divingFish");
|
|
23
|
-
Object.defineProperty(exports, "DivingFish", { enumerable: true, get: function () { return divingFish_2.DivingFish; } });
|
|
18
|
+
const string_template_1 = __importDefault(require("string-template"));
|
|
24
19
|
class HalfFullWidthConvert {
|
|
25
20
|
static charsets = {
|
|
26
21
|
latin: { halfRE: /[!-~]/g, fullRE: /[!-~]/g, delta: 0xfee0 },
|
|
@@ -602,10 +597,17 @@ class Best50 {
|
|
|
602
597
|
ctx.fillStyle = "white";
|
|
603
598
|
ctx.fill();
|
|
604
599
|
const icon = new canvas_1.Image();
|
|
600
|
+
try {
|
|
601
|
+
(0, sharp_1.default)(profilePicture);
|
|
602
|
+
}
|
|
603
|
+
catch {
|
|
604
|
+
// Unknown profile picture binary
|
|
605
|
+
profilePicture = undefined;
|
|
606
|
+
}
|
|
605
607
|
const pfp = profilePicture ||
|
|
606
608
|
this.getThemeFile(theme.manifest.sprites.profile.icon, theme.path);
|
|
607
609
|
const { dominant } = await (0, sharp_1.default)(pfp).stats();
|
|
608
|
-
icon.src = pfp;
|
|
610
|
+
icon.src = await (0, sharp_1.default)(pfp).png().toBuffer();
|
|
609
611
|
const cropSize = Math.min(icon.width, icon.height);
|
|
610
612
|
ctx.drawImage(icon, (icon.width - cropSize) / 2, (icon.height - cropSize) / 2, cropSize, cropSize, element.x + element.height * 0.064, element.y + element.height * 0.064, element.height * 0.872, element.height * 0.872);
|
|
611
613
|
if (profilePicture) {
|
|
@@ -696,11 +698,11 @@ class Best50 {
|
|
|
696
698
|
}
|
|
697
699
|
/* End Username Draw*/
|
|
698
700
|
}
|
|
699
|
-
static async drawTextModule(ctx, theme, element) {
|
|
700
|
-
let
|
|
701
|
+
static async drawTextModule(ctx, theme, element, variables = {}) {
|
|
702
|
+
let naiveLines = (0, string_template_1.default)(element.content, variables).split("\n");
|
|
701
703
|
let lines = [];
|
|
702
704
|
if (element.linebreak) {
|
|
703
|
-
for (let originalContent of
|
|
705
|
+
for (let originalContent of naiveLines) {
|
|
704
706
|
while (originalContent.length) {
|
|
705
707
|
const line = this.findMaxFitString(ctx, originalContent, element.width || Infinity, "");
|
|
706
708
|
originalContent = originalContent.replace(line, "").trim();
|
|
@@ -709,13 +711,13 @@ class Best50 {
|
|
|
709
711
|
}
|
|
710
712
|
}
|
|
711
713
|
else {
|
|
712
|
-
for (const originalContent of
|
|
714
|
+
for (const originalContent of naiveLines) {
|
|
713
715
|
lines.push(this.findMaxFitString(ctx, originalContent, element.width || Infinity));
|
|
714
716
|
}
|
|
715
717
|
}
|
|
716
718
|
for (let i = 0; i < lines.length; ++i) {
|
|
717
719
|
const line = lines[i];
|
|
718
|
-
this.drawText(ctx, line, element.x, element.y + i * element.size * 1.3, element.size, element.size /
|
|
720
|
+
this.drawText(ctx, line, element.x, element.y + i * element.size * 1.3, element.size, element.size / 3.5, element.width || Infinity, element.align, element.color || "#FFFFFF", element.borderColor
|
|
719
721
|
? element.borderColor
|
|
720
722
|
: color_1.default.rgb(element.color || "#FFFFFF")
|
|
721
723
|
.darken(0.3)
|
|
@@ -774,7 +776,326 @@ class Best50 {
|
|
|
774
776
|
break;
|
|
775
777
|
}
|
|
776
778
|
case "text": {
|
|
777
|
-
|
|
779
|
+
function getRatingBase(scores) {
|
|
780
|
+
return (scores
|
|
781
|
+
.map((v) => v.dxRating)
|
|
782
|
+
.sort((a, b) => a - b)[0] || 0);
|
|
783
|
+
}
|
|
784
|
+
function getRatingAvg(scores) {
|
|
785
|
+
return (scores
|
|
786
|
+
.map((v) => v.dxRating)
|
|
787
|
+
.reduce((sum, v) => (sum += v)) /
|
|
788
|
+
scores.length);
|
|
789
|
+
}
|
|
790
|
+
function getMilestone(scores) {
|
|
791
|
+
const MILESTONES_SSSP = {
|
|
792
|
+
"15.0": 337,
|
|
793
|
+
"14.9": 335,
|
|
794
|
+
"14.8": 333,
|
|
795
|
+
"14.7": 330,
|
|
796
|
+
"14.6": 328,
|
|
797
|
+
"14.5": 326,
|
|
798
|
+
"14.4": 324,
|
|
799
|
+
"14.3": 321,
|
|
800
|
+
"14.2": 319,
|
|
801
|
+
"14.1": 317,
|
|
802
|
+
"14.0": 315,
|
|
803
|
+
"13.9": 312,
|
|
804
|
+
"13.8": 310,
|
|
805
|
+
"13.7": 308,
|
|
806
|
+
"13.6": 306,
|
|
807
|
+
"13.5": 303,
|
|
808
|
+
"13.4": 301,
|
|
809
|
+
"13.3": 299,
|
|
810
|
+
"13.2": 297,
|
|
811
|
+
"13.1": 294,
|
|
812
|
+
"13.0": 292,
|
|
813
|
+
"12.9": 290,
|
|
814
|
+
"12.8": 288,
|
|
815
|
+
"12.7": 285,
|
|
816
|
+
"12.6": 283,
|
|
817
|
+
"12.5": 281,
|
|
818
|
+
"12.4": 279,
|
|
819
|
+
"12.3": 276,
|
|
820
|
+
"12.2": 274,
|
|
821
|
+
"12.1": 272,
|
|
822
|
+
"12.0": 270,
|
|
823
|
+
"11.9": 267,
|
|
824
|
+
"11.8": 265,
|
|
825
|
+
"11.7": 263,
|
|
826
|
+
"11.6": 261,
|
|
827
|
+
"11.5": 258,
|
|
828
|
+
"11.4": 256,
|
|
829
|
+
"11.3": 254,
|
|
830
|
+
"11.2": 252,
|
|
831
|
+
"11.1": 249,
|
|
832
|
+
"11.0": 247,
|
|
833
|
+
"10.9": 245,
|
|
834
|
+
"10.8": 243,
|
|
835
|
+
"10.7": 240,
|
|
836
|
+
"10.6": 238,
|
|
837
|
+
"10.5": 236,
|
|
838
|
+
"10.4": 234,
|
|
839
|
+
"10.3": 231,
|
|
840
|
+
"10.2": 229,
|
|
841
|
+
"10.1": 227,
|
|
842
|
+
"10.0": 225,
|
|
843
|
+
"9.9": 222,
|
|
844
|
+
"9.8": 220,
|
|
845
|
+
"9.7": 218,
|
|
846
|
+
"9.6": 216,
|
|
847
|
+
"9.5": 213,
|
|
848
|
+
"9.4": 211,
|
|
849
|
+
"9.3": 209,
|
|
850
|
+
"9.2": 207,
|
|
851
|
+
"9.1": 204,
|
|
852
|
+
"9.0": 202,
|
|
853
|
+
"8.9": 200,
|
|
854
|
+
"8.8": 198,
|
|
855
|
+
"8.7": 195,
|
|
856
|
+
"8.6": 193,
|
|
857
|
+
"8.5": 191,
|
|
858
|
+
"8.4": 189,
|
|
859
|
+
"8.3": 186,
|
|
860
|
+
"8.2": 184,
|
|
861
|
+
"8.1": 182,
|
|
862
|
+
"8.0": 180,
|
|
863
|
+
"7.9": 177,
|
|
864
|
+
"7.8": 175,
|
|
865
|
+
"7.7": 173,
|
|
866
|
+
"7.6": 171,
|
|
867
|
+
"7.5": 168,
|
|
868
|
+
"7.4": 166,
|
|
869
|
+
"7.3": 164,
|
|
870
|
+
"7.2": 162,
|
|
871
|
+
"7.1": 159,
|
|
872
|
+
"7.0": 157,
|
|
873
|
+
"6.9": 155,
|
|
874
|
+
"6.8": 153,
|
|
875
|
+
"6.7": 150,
|
|
876
|
+
"6.6": 148,
|
|
877
|
+
"6.5": 146,
|
|
878
|
+
"6.4": 144,
|
|
879
|
+
"6.3": 141,
|
|
880
|
+
"6.2": 139,
|
|
881
|
+
"6.1": 137,
|
|
882
|
+
"6.0": 135,
|
|
883
|
+
"5.9": 132,
|
|
884
|
+
"5.8": 130,
|
|
885
|
+
"5.7": 128,
|
|
886
|
+
"5.6": 126,
|
|
887
|
+
"5.5": 123,
|
|
888
|
+
"5.4": 121,
|
|
889
|
+
"5.3": 119,
|
|
890
|
+
"5.2": 117,
|
|
891
|
+
"5.1": 114,
|
|
892
|
+
"5.0": 112,
|
|
893
|
+
"4.9": 110,
|
|
894
|
+
"4.8": 108,
|
|
895
|
+
"4.7": 105,
|
|
896
|
+
"4.6": 103,
|
|
897
|
+
"4.5": 101,
|
|
898
|
+
"4.4": 99,
|
|
899
|
+
"4.3": 96,
|
|
900
|
+
"4.2": 94,
|
|
901
|
+
"4.1": 92,
|
|
902
|
+
"4.0": 90,
|
|
903
|
+
"3.9": 87,
|
|
904
|
+
"3.8": 85,
|
|
905
|
+
"3.7": 83,
|
|
906
|
+
"3.6": 81,
|
|
907
|
+
"3.5": 78,
|
|
908
|
+
"3.4": 76,
|
|
909
|
+
"3.3": 74,
|
|
910
|
+
"3.2": 72,
|
|
911
|
+
"3.1": 69,
|
|
912
|
+
"3.0": 67,
|
|
913
|
+
"2.9": 65,
|
|
914
|
+
"2.8": 63,
|
|
915
|
+
"2.7": 60,
|
|
916
|
+
"2.6": 58,
|
|
917
|
+
"2.5": 56,
|
|
918
|
+
"2.4": 54,
|
|
919
|
+
"2.3": 51,
|
|
920
|
+
"2.2": 49,
|
|
921
|
+
"2.1": 47,
|
|
922
|
+
"2.0": 45,
|
|
923
|
+
"1.9": 42,
|
|
924
|
+
"1.8": 40,
|
|
925
|
+
"1.7": 38,
|
|
926
|
+
"1.6": 36,
|
|
927
|
+
"1.5": 33,
|
|
928
|
+
"1.4": 31,
|
|
929
|
+
"1.3": 29,
|
|
930
|
+
"1.2": 27,
|
|
931
|
+
"1.1": 24,
|
|
932
|
+
"1.0": 22,
|
|
933
|
+
};
|
|
934
|
+
const MILESTONES_SSS = {
|
|
935
|
+
"15.0": 324,
|
|
936
|
+
"14.9": 321,
|
|
937
|
+
"14.8": 319,
|
|
938
|
+
"14.7": 317,
|
|
939
|
+
"14.6": 315,
|
|
940
|
+
"14.5": 313,
|
|
941
|
+
"14.4": 311,
|
|
942
|
+
"14.3": 308,
|
|
943
|
+
"14.2": 306,
|
|
944
|
+
"14.1": 304,
|
|
945
|
+
"14.0": 302,
|
|
946
|
+
"13.9": 300,
|
|
947
|
+
"13.8": 298,
|
|
948
|
+
"13.7": 295,
|
|
949
|
+
"13.6": 293,
|
|
950
|
+
"13.5": 291,
|
|
951
|
+
"13.4": 289,
|
|
952
|
+
"13.3": 287,
|
|
953
|
+
"13.2": 285,
|
|
954
|
+
"13.1": 282,
|
|
955
|
+
"13.0": 280,
|
|
956
|
+
"12.9": 278,
|
|
957
|
+
"12.8": 276,
|
|
958
|
+
"12.7": 274,
|
|
959
|
+
"12.6": 272,
|
|
960
|
+
"12.5": 270,
|
|
961
|
+
"12.4": 267,
|
|
962
|
+
"12.3": 265,
|
|
963
|
+
"12.2": 263,
|
|
964
|
+
"12.1": 261,
|
|
965
|
+
"12.0": 259,
|
|
966
|
+
"11.9": 257,
|
|
967
|
+
"11.8": 254,
|
|
968
|
+
"11.7": 252,
|
|
969
|
+
"11.6": 250,
|
|
970
|
+
"11.5": 248,
|
|
971
|
+
"11.4": 246,
|
|
972
|
+
"11.3": 244,
|
|
973
|
+
"11.2": 241,
|
|
974
|
+
"11.1": 239,
|
|
975
|
+
"11.0": 237,
|
|
976
|
+
"10.9": 235,
|
|
977
|
+
"10.8": 233,
|
|
978
|
+
"10.7": 231,
|
|
979
|
+
"10.6": 228,
|
|
980
|
+
"10.5": 226,
|
|
981
|
+
"10.4": 224,
|
|
982
|
+
"10.3": 222,
|
|
983
|
+
"10.2": 220,
|
|
984
|
+
"10.1": 218,
|
|
985
|
+
"10.0": 216,
|
|
986
|
+
"9.9": 213,
|
|
987
|
+
"9.8": 211,
|
|
988
|
+
"9.7": 209,
|
|
989
|
+
"9.6": 207,
|
|
990
|
+
"9.5": 205,
|
|
991
|
+
"9.4": 203,
|
|
992
|
+
"9.3": 200,
|
|
993
|
+
"9.2": 198,
|
|
994
|
+
"9.1": 196,
|
|
995
|
+
"9.0": 194,
|
|
996
|
+
"8.9": 192,
|
|
997
|
+
"8.8": 190,
|
|
998
|
+
"8.7": 187,
|
|
999
|
+
"8.6": 185,
|
|
1000
|
+
"8.5": 183,
|
|
1001
|
+
"8.4": 181,
|
|
1002
|
+
"8.3": 179,
|
|
1003
|
+
"8.2": 177,
|
|
1004
|
+
"8.1": 174,
|
|
1005
|
+
"8.0": 172,
|
|
1006
|
+
"7.9": 170,
|
|
1007
|
+
"7.8": 168,
|
|
1008
|
+
"7.7": 166,
|
|
1009
|
+
"7.6": 164,
|
|
1010
|
+
"7.5": 162,
|
|
1011
|
+
"7.4": 159,
|
|
1012
|
+
"7.3": 157,
|
|
1013
|
+
"7.2": 155,
|
|
1014
|
+
"7.1": 153,
|
|
1015
|
+
"7.0": 151,
|
|
1016
|
+
"6.9": 149,
|
|
1017
|
+
"6.8": 146,
|
|
1018
|
+
"6.7": 144,
|
|
1019
|
+
"6.6": 142,
|
|
1020
|
+
"6.5": 140,
|
|
1021
|
+
"6.4": 138,
|
|
1022
|
+
"6.3": 136,
|
|
1023
|
+
"6.2": 133,
|
|
1024
|
+
"6.1": 131,
|
|
1025
|
+
"6.0": 129,
|
|
1026
|
+
"5.9": 127,
|
|
1027
|
+
"5.8": 125,
|
|
1028
|
+
"5.7": 123,
|
|
1029
|
+
"5.6": 120,
|
|
1030
|
+
"5.5": 118,
|
|
1031
|
+
"5.4": 116,
|
|
1032
|
+
"5.3": 114,
|
|
1033
|
+
"5.2": 112,
|
|
1034
|
+
"5.1": 110,
|
|
1035
|
+
"5.0": 108,
|
|
1036
|
+
"4.9": 105,
|
|
1037
|
+
"4.8": 103,
|
|
1038
|
+
"4.7": 101,
|
|
1039
|
+
"4.6": 99,
|
|
1040
|
+
"4.5": 97,
|
|
1041
|
+
"4.4": 95,
|
|
1042
|
+
"4.3": 92,
|
|
1043
|
+
"4.2": 90,
|
|
1044
|
+
"4.1": 88,
|
|
1045
|
+
"4.0": 86,
|
|
1046
|
+
"3.9": 84,
|
|
1047
|
+
"3.8": 82,
|
|
1048
|
+
"3.7": 79,
|
|
1049
|
+
"3.6": 77,
|
|
1050
|
+
"3.5": 75,
|
|
1051
|
+
"3.4": 73,
|
|
1052
|
+
"3.3": 71,
|
|
1053
|
+
"3.2": 69,
|
|
1054
|
+
"3.1": 66,
|
|
1055
|
+
"3.0": 64,
|
|
1056
|
+
"2.9": 62,
|
|
1057
|
+
"2.8": 60,
|
|
1058
|
+
"2.7": 58,
|
|
1059
|
+
"2.6": 56,
|
|
1060
|
+
"2.5": 54,
|
|
1061
|
+
"2.4": 51,
|
|
1062
|
+
"2.3": 49,
|
|
1063
|
+
"2.2": 47,
|
|
1064
|
+
"2.1": 45,
|
|
1065
|
+
"2.0": 43,
|
|
1066
|
+
"1.9": 41,
|
|
1067
|
+
"1.8": 38,
|
|
1068
|
+
"1.7": 36,
|
|
1069
|
+
"1.6": 34,
|
|
1070
|
+
"1.5": 32,
|
|
1071
|
+
"1.4": 30,
|
|
1072
|
+
"1.3": 28,
|
|
1073
|
+
"1.2": 25,
|
|
1074
|
+
"1.1": 23,
|
|
1075
|
+
"1.0": 21,
|
|
1076
|
+
};
|
|
1077
|
+
const base = getRatingBase(scores);
|
|
1078
|
+
const sssTarget = Object.entries(MILESTONES_SSS).find(([_, rating]) => base >= rating)?.[0];
|
|
1079
|
+
const ssspTarget = Object.entries(MILESTONES_SSSP).find(([_, rating]) => base >= rating)?.[0];
|
|
1080
|
+
if (sssTarget && ssspTarget)
|
|
1081
|
+
return `Next rating boost: lv. ${(parseFloat(ssspTarget) + 0.1).toFixed(1)} SSS+/${(parseFloat(sssTarget) + 0.1).toFixed(1)} SSS`;
|
|
1082
|
+
else if (sssTarget)
|
|
1083
|
+
return `Next rating boost: lv. ${(parseFloat(sssTarget) + 0.1).toFixed(1)} SSS`;
|
|
1084
|
+
else if (ssspTarget)
|
|
1085
|
+
return `Next rating boost: lv. ${(parseFloat(ssspTarget) + 0.1).toFixed(1)} SSS`;
|
|
1086
|
+
else
|
|
1087
|
+
return "Good job!";
|
|
1088
|
+
}
|
|
1089
|
+
await this.drawTextModule(ctx, currentTheme, element, {
|
|
1090
|
+
username: HalfFullWidthConvert.toFullWidth(name),
|
|
1091
|
+
rating: rating.toFixed(0),
|
|
1092
|
+
newScoreRatingAvg: getRatingAvg(newScores).toFixed(0),
|
|
1093
|
+
oldScoreRatingAvg: getRatingAvg(oldScores).toFixed(0),
|
|
1094
|
+
newScoreRatingBase: getRatingBase(newScores).toFixed(0),
|
|
1095
|
+
oldScoreRatingBase: getRatingBase(oldScores).toFixed(0),
|
|
1096
|
+
newScoreMilestone: getMilestone(newScores),
|
|
1097
|
+
oldScoreMilestone: getMilestone(oldScores),
|
|
1098
|
+
});
|
|
778
1099
|
break;
|
|
779
1100
|
}
|
|
780
1101
|
}
|