maidraw 0.9.4 → 0.10.0

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 (167) hide show
  1. package/assets/themes/chunithm/best/luminousLandscape/new/manifest.json +58 -32
  2. package/assets/themes/chunithm/best/luminousLandscape/recents/manifest.json +57 -31
  3. package/assets/themes/chunithm/best/luminousPlusLandscape/new/manifest.json +57 -31
  4. package/assets/themes/chunithm/best/luminousPlusLandscape/recents/manifest.json +57 -31
  5. package/assets/themes/chunithm/best/verseLandscape/new/manifest.json +57 -31
  6. package/assets/themes/chunithm/best/verseLandscape/recents/manifest.json +57 -31
  7. package/assets/themes/chunithm/chart/jp/verse/manifest.json +73 -71
  8. package/assets/themes/maimai/best50/cn/2024Landscape/manifest.json +90 -54
  9. package/assets/themes/maimai/best50/cn/2024Portrait/manifest.json +89 -53
  10. package/assets/themes/maimai/best50/cn/2025Landscape/manifest.json +90 -54
  11. package/assets/themes/maimai/best50/cn/2025Portrait/manifest.json +89 -53
  12. package/assets/themes/maimai/best50/common/prism/plus/background.png +0 -0
  13. package/assets/themes/maimai/best50/jp/buddiesLandscape/manifest.json +89 -53
  14. package/assets/themes/maimai/best50/jp/buddiesPlusLandscape/manifest.json +89 -53
  15. package/assets/themes/maimai/best50/jp/buddiesPlusPortrait/manifest.json +89 -53
  16. package/assets/themes/maimai/best50/jp/buddiesPortrait/manifest.json +89 -53
  17. package/assets/themes/maimai/best50/jp/finaleLandscape/manifest.json +89 -53
  18. package/assets/themes/maimai/best50/jp/finalePortrait/manifest.json +89 -53
  19. package/assets/themes/maimai/best50/jp/prismLandscape/manifest.json +90 -54
  20. package/assets/themes/maimai/best50/jp/prismPlusLandscape/manifest.json +90 -54
  21. package/assets/themes/maimai/best50/jp/prismPlusPortrait/manifest.json +92 -55
  22. package/assets/themes/maimai/best50/jp/prismPortrait/manifest.json +89 -53
  23. package/assets/themes/maimai/best50/salt/2026landscape/manifest.json +89 -53
  24. package/assets/themes/maimai/chart/jp/prism/manifest.json +100 -96
  25. package/assets/themes/ongeki/jp/brightMemoryLandscape/classic/manifest.json +101 -30
  26. package/assets/themes/ongeki/jp/brightMemoryLandscape/refresh/manifest.json +78 -30
  27. package/assets/themes/ongeki/jp/refreshLandscape/classic/manifest.json +101 -2
  28. package/assets/themes/ongeki/jp/refreshLandscape/refresh/manifest.json +78 -30
  29. package/dist/chu/index.d.ts +14 -4
  30. package/dist/chu/index.js +16 -4
  31. package/dist/chu/index.js.map +1 -1
  32. package/dist/chu/lib/{index.d.ts → adapter/index.d.ts} +1 -1
  33. package/dist/chu/lib/{index.js → adapter/index.js} +1 -1
  34. package/dist/chu/lib/adapter/index.js.map +1 -0
  35. package/dist/chu/lib/{kamaiTachi → adapter/kamaiTachi}/index.d.ts +1 -1
  36. package/dist/chu/lib/{kamaiTachi → adapter/kamaiTachi}/index.js +10 -10
  37. package/dist/chu/lib/adapter/kamaiTachi/index.js.map +1 -0
  38. package/dist/chu/lib/{lxns → adapter/lxns}/index.d.ts +1 -1
  39. package/dist/chu/lib/{lxns → adapter/lxns}/index.js +4 -4
  40. package/dist/chu/lib/adapter/lxns/index.js.map +1 -0
  41. package/dist/chu/{chart → lib}/database.d.ts +3 -3
  42. package/dist/chu/{chart → lib}/database.js +2 -2
  43. package/dist/chu/lib/database.js.map +1 -0
  44. package/dist/chu/lib/util.d.ts +149 -0
  45. package/dist/chu/lib/util.js +270 -0
  46. package/dist/chu/lib/util.js.map +1 -0
  47. package/dist/chu/painter/best50/index.d.ts +120 -0
  48. package/dist/chu/painter/best50/index.js +158 -0
  49. package/dist/chu/painter/best50/index.js.map +1 -0
  50. package/dist/chu/painter/chart/index.d.ts +170 -0
  51. package/dist/chu/painter/chart/index.js +116 -0
  52. package/dist/chu/painter/chart/index.js.map +1 -0
  53. package/dist/chu/painter/index.d.ts +194 -0
  54. package/dist/chu/painter/index.js +1105 -0
  55. package/dist/chu/painter/index.js.map +1 -0
  56. package/dist/geki/index.d.ts +10 -4
  57. package/dist/geki/index.js +12 -4
  58. package/dist/geki/index.js.map +1 -1
  59. package/dist/geki/lib/adapter/index.js.map +1 -0
  60. package/dist/geki/lib/adapter/kamaiTachi/index.js.map +1 -0
  61. package/dist/geki/{chart → lib}/database.d.ts +1 -1
  62. package/dist/geki/{chart → lib}/database.js +2 -2
  63. package/dist/geki/lib/database.js.map +1 -0
  64. package/dist/geki/painter/best50/index.d.ts +122 -0
  65. package/dist/geki/painter/best50/index.js +197 -0
  66. package/dist/geki/painter/best50/index.js.map +1 -0
  67. package/dist/geki/painter/index.d.ts +88 -0
  68. package/dist/geki/painter/index.js +448 -0
  69. package/dist/geki/painter/index.js.map +1 -0
  70. package/dist/lib/cache.d.ts +1 -0
  71. package/dist/lib/cache.js +6 -1
  72. package/dist/lib/cache.js.map +1 -1
  73. package/dist/lib/painter.d.ts +100 -0
  74. package/dist/lib/painter.js +216 -0
  75. package/dist/lib/painter.js.map +1 -0
  76. package/dist/lib/util.d.ts +6 -282
  77. package/dist/lib/util.js +50 -540
  78. package/dist/lib/util.js.map +1 -1
  79. package/dist/mai/index.d.ts +22 -6
  80. package/dist/mai/index.js +24 -6
  81. package/dist/mai/index.js.map +1 -1
  82. package/dist/mai/lib/{divingFish → adapter/divingFish}/index.d.ts +6 -6
  83. package/dist/mai/lib/{divingFish → adapter/divingFish}/index.js +29 -30
  84. package/dist/mai/lib/adapter/divingFish/index.js.map +1 -0
  85. package/dist/mai/lib/{index.d.ts → adapter/index.d.ts} +11 -11
  86. package/dist/mai/lib/{index.js → adapter/index.js} +2 -2
  87. package/dist/{geki/bests/lib → mai/lib/adapter}/index.js.map +1 -1
  88. package/dist/mai/lib/{kamaiTachi → adapter/kamaiTachi}/index.d.ts +84 -42
  89. package/dist/mai/lib/{kamaiTachi → adapter/kamaiTachi}/index.js +70 -62
  90. package/dist/mai/lib/adapter/kamaiTachi/index.js.map +1 -0
  91. package/dist/mai/lib/{lxns → adapter/lxns}/index.d.ts +12 -12
  92. package/dist/mai/lib/{lxns → adapter/lxns}/index.js +29 -30
  93. package/dist/mai/lib/adapter/lxns/index.js.map +1 -0
  94. package/dist/mai/lib/{maishift → adapter/maishift}/index.d.ts +4 -4
  95. package/dist/mai/lib/{maishift → adapter/maishift}/index.js +20 -20
  96. package/dist/mai/lib/adapter/maishift/index.js.map +1 -0
  97. package/dist/mai/{chart → lib}/database.d.ts +3 -3
  98. package/dist/mai/{chart → lib}/database.js +2 -2
  99. package/dist/mai/lib/database.js.map +1 -0
  100. package/dist/mai/lib/util.d.ts +134 -0
  101. package/dist/mai/lib/util.js +264 -0
  102. package/dist/mai/lib/util.js.map +1 -0
  103. package/dist/mai/painter/best50/index.d.ts +140 -0
  104. package/dist/mai/painter/best50/index.js +176 -0
  105. package/dist/mai/painter/best50/index.js.map +1 -0
  106. package/dist/mai/painter/chart/index.d.ts +195 -0
  107. package/dist/mai/painter/chart/index.js +115 -0
  108. package/dist/mai/painter/chart/index.js.map +1 -0
  109. package/dist/mai/painter/index.d.ts +237 -0
  110. package/dist/mai/painter/index.js +1431 -0
  111. package/dist/mai/painter/index.js.map +1 -0
  112. package/dist/mai/painter/level50/index.d.ts +28 -0
  113. package/dist/mai/painter/level50/index.js +129 -0
  114. package/dist/mai/painter/level50/index.js.map +1 -0
  115. package/dist/mai/type.d.ts +110 -0
  116. package/dist/mai/type.js +73 -1
  117. package/dist/mai/type.js.map +1 -1
  118. package/package.json +56 -55
  119. package/dist/chu/bests/best50.d.ts +0 -37
  120. package/dist/chu/bests/best50.js +0 -742
  121. package/dist/chu/bests/best50.js.map +0 -1
  122. package/dist/chu/bests/index.d.ts +0 -1
  123. package/dist/chu/bests/index.js +0 -6
  124. package/dist/chu/bests/index.js.map +0 -1
  125. package/dist/chu/bests/type.d.ts +0 -122
  126. package/dist/chu/bests/type.js +0 -3
  127. package/dist/chu/bests/type.js.map +0 -1
  128. package/dist/chu/chart/database.js.map +0 -1
  129. package/dist/chu/chart/index.d.ts +0 -212
  130. package/dist/chu/chart/index.js +0 -1064
  131. package/dist/chu/chart/index.js.map +0 -1
  132. package/dist/chu/lib/index.js.map +0 -1
  133. package/dist/chu/lib/kamaiTachi/index.js.map +0 -1
  134. package/dist/chu/lib/lxns/index.js.map +0 -1
  135. package/dist/geki/bests/best50.d.ts +0 -35
  136. package/dist/geki/bests/best50.js +0 -821
  137. package/dist/geki/bests/best50.js.map +0 -1
  138. package/dist/geki/bests/index.d.ts +0 -1
  139. package/dist/geki/bests/index.js +0 -6
  140. package/dist/geki/bests/index.js.map +0 -1
  141. package/dist/geki/bests/lib/kamaiTachi/index.js.map +0 -1
  142. package/dist/geki/bests/type.d.ts +0 -122
  143. package/dist/geki/bests/type.js +0 -3
  144. package/dist/geki/bests/type.js.map +0 -1
  145. package/dist/geki/chart/database.js.map +0 -1
  146. package/dist/geki/chart/index.d.ts +0 -4
  147. package/dist/geki/chart/index.js +0 -32
  148. package/dist/geki/chart/index.js.map +0 -1
  149. package/dist/mai/best50/index.d.ts +0 -271
  150. package/dist/mai/best50/index.js +0 -915
  151. package/dist/mai/best50/index.js.map +0 -1
  152. package/dist/mai/chart/database.js.map +0 -1
  153. package/dist/mai/chart/index.d.ts +0 -238
  154. package/dist/mai/chart/index.js +0 -1281
  155. package/dist/mai/chart/index.js.map +0 -1
  156. package/dist/mai/level50/index.d.ts +0 -28
  157. package/dist/mai/level50/index.js +0 -774
  158. package/dist/mai/level50/index.js.map +0 -1
  159. package/dist/mai/lib/divingFish/index.js.map +0 -1
  160. package/dist/mai/lib/index.js.map +0 -1
  161. package/dist/mai/lib/kamaiTachi/index.js.map +0 -1
  162. package/dist/mai/lib/lxns/index.js.map +0 -1
  163. package/dist/mai/lib/maishift/index.js.map +0 -1
  164. /package/dist/geki/{bests/lib → lib/adapter}/index.d.ts +0 -0
  165. /package/dist/geki/{bests/lib → lib/adapter}/index.js +0 -0
  166. /package/dist/geki/{bests/lib → lib/adapter}/kamaiTachi/index.d.ts +0 -0
  167. /package/dist/geki/{bests/lib → lib/adapter}/kamaiTachi/index.js +0 -0
@@ -21,11 +21,11 @@ class Database {
21
21
  static async cacheJackets(ids) {
22
22
  const promises = [];
23
23
  for (const id of ids) {
24
- promises.push(this.fecthJacket(id));
24
+ promises.push(this.fetchJacket(id));
25
25
  }
26
26
  await Promise.all(promises);
27
27
  }
28
- static async fecthJacket(id,
28
+ static async fetchJacket(id,
29
29
  /**
30
30
  * Explicit variant will NOT fallback to generic jacket.
31
31
  * In practice `DX` variant will almost never return a jacket.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database.js","sourceRoot":"","sources":["../../../src/mai/lib/database.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,134 @@
1
+ import { Database } from "./database";
2
+ export declare namespace MaimaiUtil {
3
+ class Version {
4
+ static readonly DX: {
5
+ name: string;
6
+ gameVersion: {
7
+ isDX: boolean;
8
+ major: number;
9
+ minor: number;
10
+ };
11
+ };
12
+ static readonly DX_PLUS: {
13
+ name: string;
14
+ gameVersion: {
15
+ isDX: boolean;
16
+ major: number;
17
+ minor: number;
18
+ };
19
+ };
20
+ static readonly SPLASH: {
21
+ name: string;
22
+ gameVersion: {
23
+ isDX: boolean;
24
+ major: number;
25
+ minor: number;
26
+ };
27
+ };
28
+ static readonly SPLASH_PLUS: {
29
+ name: string;
30
+ gameVersion: {
31
+ isDX: boolean;
32
+ major: number;
33
+ minor: number;
34
+ };
35
+ };
36
+ static readonly UNIVERSE: {
37
+ name: string;
38
+ gameVersion: {
39
+ isDX: boolean;
40
+ major: number;
41
+ minor: number;
42
+ };
43
+ };
44
+ static readonly UNIVERSE_PLUS: {
45
+ name: string;
46
+ gameVersion: {
47
+ isDX: boolean;
48
+ major: number;
49
+ minor: number;
50
+ };
51
+ };
52
+ static readonly FESTIVAL: {
53
+ name: string;
54
+ gameVersion: {
55
+ isDX: boolean;
56
+ major: number;
57
+ minor: number;
58
+ };
59
+ };
60
+ static readonly FESTIVAL_PLUS: {
61
+ name: string;
62
+ gameVersion: {
63
+ isDX: boolean;
64
+ major: number;
65
+ minor: number;
66
+ };
67
+ };
68
+ static readonly BUDDIES: {
69
+ name: string;
70
+ gameVersion: {
71
+ isDX: boolean;
72
+ major: number;
73
+ minor: number;
74
+ };
75
+ };
76
+ static readonly BUDDIES_PLUS: {
77
+ name: string;
78
+ gameVersion: {
79
+ isDX: boolean;
80
+ major: number;
81
+ minor: number;
82
+ };
83
+ };
84
+ static readonly PRISM: {
85
+ name: string;
86
+ gameVersion: {
87
+ isDX: boolean;
88
+ major: number;
89
+ minor: number;
90
+ };
91
+ };
92
+ static readonly PRISM_PLUS: {
93
+ name: string;
94
+ gameVersion: {
95
+ isDX: boolean;
96
+ major: number;
97
+ minor: number;
98
+ };
99
+ };
100
+ private static versions;
101
+ static getNextVersion(version: Database.IVersion): Database.IVersion;
102
+ static getPreviousVersion(version: Database.IVersion): Database.IVersion;
103
+ static toEventVersion(version: Database.IVersion): Database.IEventVersion;
104
+ }
105
+ const RATING_CONSTANTS: {
106
+ 0: {
107
+ 0.4: number;
108
+ 0.3: number;
109
+ 0.2: number;
110
+ 0.1: number;
111
+ 0: number;
112
+ };
113
+ 1: number;
114
+ 2: number;
115
+ 3: number;
116
+ 4: number;
117
+ 5: number;
118
+ 6: number;
119
+ 7: number;
120
+ 8: number;
121
+ 9: number;
122
+ 10: number;
123
+ 11: number;
124
+ 12: number;
125
+ 13: number;
126
+ };
127
+ /**
128
+ * Calculate the rating of a score.
129
+ * @param internalLevel Internal level of the chart.
130
+ * @param achievement Achivement in percentage, range between 0 to 101.0000.
131
+ * @returns Raw decimal rating value.
132
+ */
133
+ function calculateRating(internalLevel: number, achievement: number): number;
134
+ }
@@ -0,0 +1,264 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.MaimaiUtil = void 0;
7
+ const lodash_1 = __importDefault(require("lodash"));
8
+ const type_1 = require("../type");
9
+ var MaimaiUtil;
10
+ (function (MaimaiUtil) {
11
+ class Version {
12
+ static DX = {
13
+ name: "maimai でらっくす",
14
+ gameVersion: {
15
+ isDX: true,
16
+ major: 1,
17
+ minor: 0,
18
+ },
19
+ };
20
+ static DX_PLUS = {
21
+ name: "maimai でらっくす PLUS",
22
+ gameVersion: {
23
+ isDX: true,
24
+ major: 1,
25
+ minor: 5,
26
+ },
27
+ };
28
+ static SPLASH = {
29
+ name: "maimai でらっくす Splash",
30
+ gameVersion: {
31
+ isDX: true,
32
+ major: 1,
33
+ minor: 10,
34
+ },
35
+ };
36
+ static SPLASH_PLUS = {
37
+ name: "maimai でらっくす Splash PLUS",
38
+ gameVersion: {
39
+ isDX: true,
40
+ major: 1,
41
+ minor: 15,
42
+ },
43
+ };
44
+ static UNIVERSE = {
45
+ name: "maimai でらっくす UNiVERSE",
46
+ gameVersion: {
47
+ isDX: true,
48
+ major: 1,
49
+ minor: 20,
50
+ },
51
+ };
52
+ static UNIVERSE_PLUS = {
53
+ name: "maimai でらっくす UNiVERSE PLUS",
54
+ gameVersion: {
55
+ isDX: true,
56
+ major: 1,
57
+ minor: 25,
58
+ },
59
+ };
60
+ static FESTIVAL = {
61
+ name: "maimai でらっくす FESTiVAL",
62
+ gameVersion: {
63
+ isDX: true,
64
+ major: 1,
65
+ minor: 30,
66
+ },
67
+ };
68
+ static FESTIVAL_PLUS = {
69
+ name: "maimai でらっくす FESTiVAL PLUS",
70
+ gameVersion: {
71
+ isDX: true,
72
+ major: 1,
73
+ minor: 35,
74
+ },
75
+ };
76
+ static BUDDIES = {
77
+ name: "maimai でらっくす BUDDiES",
78
+ gameVersion: {
79
+ isDX: true,
80
+ major: 1,
81
+ minor: 40,
82
+ },
83
+ };
84
+ static BUDDIES_PLUS = {
85
+ name: "maimai でらっくす BUDDiES PLUS",
86
+ gameVersion: {
87
+ isDX: true,
88
+ major: 1,
89
+ minor: 45,
90
+ },
91
+ };
92
+ static PRISM = {
93
+ name: "maimai でらっくす PRiSM",
94
+ gameVersion: {
95
+ isDX: true,
96
+ major: 1,
97
+ minor: 50,
98
+ },
99
+ };
100
+ static PRISM_PLUS = {
101
+ name: "maimai でらっくす PRiSM PLUS",
102
+ gameVersion: {
103
+ isDX: true,
104
+ major: 1,
105
+ minor: 55,
106
+ },
107
+ };
108
+ static versions = [
109
+ Version.DX,
110
+ Version.DX_PLUS,
111
+ Version.SPLASH,
112
+ Version.SPLASH_PLUS,
113
+ Version.UNIVERSE,
114
+ Version.UNIVERSE_PLUS,
115
+ Version.FESTIVAL,
116
+ Version.FESTIVAL_PLUS,
117
+ Version.BUDDIES,
118
+ Version.BUDDIES_PLUS,
119
+ Version.PRISM,
120
+ Version.PRISM_PLUS,
121
+ ];
122
+ static getNextVersion(version) {
123
+ const index = lodash_1.default.findIndex(Version.versions, (v) => {
124
+ return (lodash_1.default.isEqual(v.gameVersion.isDX, version.gameVersion.isDX) &&
125
+ lodash_1.default.isEqual(v.gameVersion.major, version.gameVersion.major) &&
126
+ lodash_1.default.isEqual(v.gameVersion.minor, version.gameVersion.minor));
127
+ });
128
+ if (index == -1) {
129
+ return version;
130
+ }
131
+ else if (index == this.versions.length - 1) {
132
+ return this.versions[index];
133
+ }
134
+ return this.versions[index + 1];
135
+ }
136
+ static getPreviousVersion(version) {
137
+ const index = lodash_1.default.findIndex(Version.versions, (v) => {
138
+ return lodash_1.default.isEqual(v.gameVersion, version.gameVersion);
139
+ });
140
+ if (index == -1) {
141
+ return version;
142
+ }
143
+ else if (index == 0) {
144
+ return this.versions[index];
145
+ }
146
+ return this.versions[index - 1];
147
+ }
148
+ static toEventVersion(version) {
149
+ const event = {
150
+ ...version,
151
+ region: "DX",
152
+ };
153
+ event.gameVersion.release = 0;
154
+ return event;
155
+ }
156
+ }
157
+ MaimaiUtil.Version = Version;
158
+ MaimaiUtil.RATING_CONSTANTS = {
159
+ [type_1.EAchievementTypes.D]: {
160
+ [0.4]: 6.4,
161
+ [0.3]: 4.8,
162
+ [0.2]: 3.2,
163
+ [0.1]: 1.6,
164
+ [0]: 0,
165
+ },
166
+ [type_1.EAchievementTypes.C]: 13.6,
167
+ [type_1.EAchievementTypes.B]: 13.6,
168
+ [type_1.EAchievementTypes.BB]: 13.6,
169
+ [type_1.EAchievementTypes.BBB]: 13.6,
170
+ [type_1.EAchievementTypes.A]: 13.6,
171
+ [type_1.EAchievementTypes.AA]: 15.2,
172
+ [type_1.EAchievementTypes.AAA]: 16.8,
173
+ [type_1.EAchievementTypes.S]: 20.0,
174
+ [type_1.EAchievementTypes.SP]: 20.3,
175
+ [type_1.EAchievementTypes.SS]: 20.8,
176
+ [type_1.EAchievementTypes.SSP]: 21.1,
177
+ [type_1.EAchievementTypes.SSS]: 21.6,
178
+ [type_1.EAchievementTypes.SSSP]: 22.4,
179
+ };
180
+ /**
181
+ * Calculate the rating of a score.
182
+ * @param internalLevel Internal level of the chart.
183
+ * @param achievement Achivement in percentage, range between 0 to 101.0000.
184
+ * @returns Raw decimal rating value.
185
+ */
186
+ function calculateRating(internalLevel, achievement) {
187
+ let ratingConstant = 0;
188
+ switch (true) {
189
+ case achievement >= 100.5: {
190
+ ratingConstant = MaimaiUtil.RATING_CONSTANTS[type_1.EAchievementTypes.SSSP];
191
+ break;
192
+ }
193
+ case achievement >= 100: {
194
+ ratingConstant = MaimaiUtil.RATING_CONSTANTS[type_1.EAchievementTypes.SSS];
195
+ break;
196
+ }
197
+ case achievement >= 99.5: {
198
+ ratingConstant = MaimaiUtil.RATING_CONSTANTS[type_1.EAchievementTypes.SSP];
199
+ break;
200
+ }
201
+ case achievement >= 99: {
202
+ ratingConstant = MaimaiUtil.RATING_CONSTANTS[type_1.EAchievementTypes.SS];
203
+ break;
204
+ }
205
+ case achievement >= 98: {
206
+ ratingConstant = MaimaiUtil.RATING_CONSTANTS[type_1.EAchievementTypes.SP];
207
+ break;
208
+ }
209
+ case achievement >= 97: {
210
+ ratingConstant = MaimaiUtil.RATING_CONSTANTS[type_1.EAchievementTypes.S];
211
+ break;
212
+ }
213
+ case achievement >= 94: {
214
+ ratingConstant = MaimaiUtil.RATING_CONSTANTS[type_1.EAchievementTypes.AAA];
215
+ break;
216
+ }
217
+ case achievement >= 90: {
218
+ ratingConstant = MaimaiUtil.RATING_CONSTANTS[type_1.EAchievementTypes.AA];
219
+ break;
220
+ }
221
+ case achievement >= 80: {
222
+ ratingConstant = MaimaiUtil.RATING_CONSTANTS[type_1.EAchievementTypes.A];
223
+ break;
224
+ }
225
+ case achievement >= 75: {
226
+ ratingConstant = MaimaiUtil.RATING_CONSTANTS[type_1.EAchievementTypes.BBB];
227
+ break;
228
+ }
229
+ case achievement >= 70: {
230
+ ratingConstant = MaimaiUtil.RATING_CONSTANTS[type_1.EAchievementTypes.BB];
231
+ break;
232
+ }
233
+ case achievement >= 60: {
234
+ ratingConstant = MaimaiUtil.RATING_CONSTANTS[type_1.EAchievementTypes.B];
235
+ break;
236
+ }
237
+ case achievement >= 50: {
238
+ ratingConstant = MaimaiUtil.RATING_CONSTANTS[type_1.EAchievementTypes.C];
239
+ break;
240
+ }
241
+ case achievement >= 40: {
242
+ ratingConstant = MaimaiUtil.RATING_CONSTANTS[type_1.EAchievementTypes.D]["0.4"];
243
+ break;
244
+ }
245
+ case achievement >= 30: {
246
+ ratingConstant = MaimaiUtil.RATING_CONSTANTS[type_1.EAchievementTypes.D]["0.3"];
247
+ break;
248
+ }
249
+ case achievement >= 20: {
250
+ ratingConstant = MaimaiUtil.RATING_CONSTANTS[type_1.EAchievementTypes.D]["0.2"];
251
+ break;
252
+ }
253
+ case achievement >= 10: {
254
+ ratingConstant = MaimaiUtil.RATING_CONSTANTS[type_1.EAchievementTypes.D]["0.1"];
255
+ break;
256
+ }
257
+ }
258
+ return ((Math.min(achievement, 100.5) / 100) *
259
+ ratingConstant *
260
+ internalLevel);
261
+ }
262
+ MaimaiUtil.calculateRating = calculateRating;
263
+ })(MaimaiUtil || (exports.MaimaiUtil = MaimaiUtil = {}));
264
+ //# sourceMappingURL=util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/mai/lib/util.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,140 @@
1
+ import { z } from "zod/v4";
2
+ import ScoreTrackerAdapter from "../../lib/adapter";
3
+ import { MaimaiPainter } from "..";
4
+ import { IScore } from "../../type";
5
+ export declare class Best50Painter extends MaimaiPainter<typeof Best50Painter.Theme> {
6
+ static readonly Theme: z.ZodObject<{
7
+ name: z.ZodString;
8
+ displayName: z.ZodString;
9
+ width: z.ZodNumber;
10
+ height: z.ZodNumber;
11
+ elements: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
12
+ x: z.ZodNumber;
13
+ y: z.ZodNumber;
14
+ type: z.ZodLiteral<"profile">;
15
+ height: z.ZodNumber;
16
+ sprites: z.ZodObject<{
17
+ dxRating: z.ZodObject<{
18
+ white: z.ZodString;
19
+ blue: z.ZodString;
20
+ green: z.ZodString;
21
+ yellow: z.ZodString;
22
+ red: z.ZodString;
23
+ purple: z.ZodString;
24
+ bronze: z.ZodString;
25
+ silver: z.ZodString;
26
+ gold: z.ZodString;
27
+ platinum: z.ZodString;
28
+ rainbow: z.ZodString;
29
+ }, z.core.$strip>;
30
+ dxRatingNumberMap: z.ZodString;
31
+ profile: z.ZodObject<{
32
+ nameplate: z.ZodString;
33
+ icon: z.ZodString;
34
+ }, z.core.$strip>;
35
+ }, z.core.$strip>;
36
+ }, z.core.$strip>, z.ZodObject<{
37
+ x: z.ZodNumber;
38
+ y: z.ZodNumber;
39
+ type: z.ZodLiteral<"score-grid">;
40
+ horizontalSize: z.ZodNumber;
41
+ verticalSize: z.ZodNumber;
42
+ region: z.ZodEnum<{
43
+ new: "new";
44
+ old: "old";
45
+ }>;
46
+ index: z.ZodNumber;
47
+ scoreBubble: z.ZodObject<{
48
+ width: z.ZodNumber;
49
+ height: z.ZodNumber;
50
+ margin: z.ZodNumber;
51
+ gap: z.ZodNumber;
52
+ color: z.ZodObject<{
53
+ basic: z.ZodString;
54
+ advanced: z.ZodString;
55
+ expert: z.ZodString;
56
+ master: z.ZodString;
57
+ remaster: z.ZodString;
58
+ utage: z.ZodString;
59
+ }, z.core.$strip>;
60
+ }, z.core.$strip>;
61
+ sprites: z.ZodObject<{
62
+ achievement: z.ZodObject<{
63
+ d: z.ZodString;
64
+ c: z.ZodString;
65
+ b: z.ZodString;
66
+ bb: z.ZodString;
67
+ bbb: z.ZodString;
68
+ a: z.ZodString;
69
+ aa: z.ZodString;
70
+ aaa: z.ZodString;
71
+ s: z.ZodString;
72
+ sp: z.ZodString;
73
+ ss: z.ZodString;
74
+ ssp: z.ZodString;
75
+ sss: z.ZodString;
76
+ sssp: z.ZodString;
77
+ }, z.core.$strip>;
78
+ mode: z.ZodObject<{
79
+ standard: z.ZodString;
80
+ dx: z.ZodString;
81
+ }, z.core.$strip>;
82
+ milestone: z.ZodObject<{
83
+ ap: z.ZodString;
84
+ app: z.ZodString;
85
+ fc: z.ZodString;
86
+ fcp: z.ZodString;
87
+ fdx: z.ZodString;
88
+ fdxp: z.ZodString;
89
+ fs: z.ZodString;
90
+ fsp: z.ZodString;
91
+ sync: z.ZodString;
92
+ none: z.ZodString;
93
+ }, z.core.$strip>;
94
+ }, z.core.$strip>;
95
+ }, z.core.$strip>, z.ZodObject<{
96
+ x: z.ZodNumber;
97
+ y: z.ZodNumber;
98
+ type: z.ZodLiteral<"image">;
99
+ width: z.ZodNumber;
100
+ height: z.ZodNumber;
101
+ path: z.ZodString;
102
+ }, z.core.$strip>, z.ZodObject<{
103
+ x: z.ZodNumber;
104
+ y: z.ZodNumber;
105
+ type: z.ZodLiteral<"text">;
106
+ size: z.ZodNumber;
107
+ content: z.ZodString;
108
+ width: z.ZodOptional<z.ZodNumber>;
109
+ height: z.ZodOptional<z.ZodNumber>;
110
+ linebreak: z.ZodOptional<z.ZodBoolean>;
111
+ align: z.ZodOptional<z.ZodEnum<{
112
+ left: "left";
113
+ center: "center";
114
+ right: "right";
115
+ }>>;
116
+ color: z.ZodOptional<z.ZodString>;
117
+ borderColor: z.ZodOptional<z.ZodString>;
118
+ font: z.ZodOptional<z.ZodString>;
119
+ }, z.core.$strip>], "type">>;
120
+ }, z.core.$strip>;
121
+ private static readonly DEFAULT_THEME;
122
+ constructor();
123
+ draw(variables: {
124
+ username: string;
125
+ rating: number;
126
+ newScores: IScore[];
127
+ oldScores: IScore[];
128
+ }, options?: {
129
+ scale?: number;
130
+ theme?: string;
131
+ profilePicture?: Buffer;
132
+ }): Promise<Buffer | null>;
133
+ drawWithScoreSource(source: ScoreTrackerAdapter, variables: {
134
+ username: string;
135
+ }, options?: {
136
+ scale?: number;
137
+ theme?: string;
138
+ profilePicture?: Buffer | null;
139
+ }): Promise<Buffer | null>;
140
+ }