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.
Files changed (94) hide show
  1. package/assets/themes/maimai/salt/2026landscape/image/achievement/a.png +0 -0
  2. package/assets/themes/maimai/salt/2026landscape/image/achievement/aa.png +0 -0
  3. package/assets/themes/maimai/salt/2026landscape/image/achievement/aaa.png +0 -0
  4. package/assets/themes/maimai/salt/2026landscape/image/achievement/b.png +0 -0
  5. package/assets/themes/maimai/salt/2026landscape/image/achievement/bb.png +0 -0
  6. package/assets/themes/maimai/salt/2026landscape/image/achievement/bbb.png +0 -0
  7. package/assets/themes/maimai/salt/2026landscape/image/achievement/c.png +0 -0
  8. package/assets/themes/maimai/salt/2026landscape/image/achievement/d.png +0 -0
  9. package/assets/themes/maimai/salt/2026landscape/image/achievement/s.png +0 -0
  10. package/assets/themes/maimai/salt/2026landscape/image/achievement/sp.png +0 -0
  11. package/assets/themes/maimai/salt/2026landscape/image/achievement/ss.png +0 -0
  12. package/assets/themes/maimai/salt/2026landscape/image/achievement/ssp.png +0 -0
  13. package/assets/themes/maimai/salt/2026landscape/image/achievement/sss.png +0 -0
  14. package/assets/themes/maimai/salt/2026landscape/image/achievement/sssp.png +0 -0
  15. package/assets/themes/maimai/salt/2026landscape/image/background.png +0 -0
  16. package/assets/themes/maimai/salt/2026landscape/image/chara.png +0 -0
  17. package/assets/themes/maimai/salt/2026landscape/image/logo.png +0 -0
  18. package/assets/themes/maimai/salt/2026landscape/manifest.json +172 -0
  19. package/assets/themes/ongeki/common/refresh/achievement/a.png +0 -0
  20. package/assets/themes/ongeki/common/refresh/achievement/aa.png +0 -0
  21. package/assets/themes/ongeki/common/refresh/achievement/aaa.png +0 -0
  22. package/assets/themes/ongeki/common/refresh/achievement/b.png +0 -0
  23. package/assets/themes/ongeki/common/refresh/achievement/bb.png +0 -0
  24. package/assets/themes/ongeki/common/refresh/achievement/bbb.png +0 -0
  25. package/assets/themes/ongeki/common/refresh/achievement/c.png +0 -0
  26. package/assets/themes/ongeki/common/refresh/achievement/d.png +0 -0
  27. package/assets/themes/ongeki/common/refresh/achievement/s.png +0 -0
  28. package/assets/themes/ongeki/common/refresh/achievement/ss.png +0 -0
  29. package/assets/themes/ongeki/common/refresh/achievement/sss.png +0 -0
  30. package/assets/themes/ongeki/common/refresh/achievement/sssp.png +0 -0
  31. package/assets/themes/ongeki/common/refresh/jp/background.png +0 -0
  32. package/assets/themes/ongeki/common/refresh/jp/logo.png +0 -0
  33. package/assets/themes/ongeki/common/versionless/icon.png +0 -0
  34. package/assets/themes/ongeki/common/versionless/milestone/ab.png +0 -0
  35. package/assets/themes/ongeki/common/versionless/milestone/abp.png +0 -0
  36. package/assets/themes/ongeki/common/versionless/milestone/fb.png +0 -0
  37. package/assets/themes/ongeki/common/versionless/milestone/fc.png +0 -0
  38. package/assets/themes/ongeki/common/versionless/numberMap.png +0 -0
  39. package/assets/themes/ongeki/common/versionless/userplateAF2025.png +0 -0
  40. package/assets/themes/ongeki/common/versionless/userplateIchigeki.png +0 -0
  41. package/assets/themes/ongeki/common/versionless/void.png +0 -0
  42. package/assets/themes/ongeki/jp/refreshLandscape/refresh/manifest.json +173 -0
  43. package/dist/chu/bests/best50.d.ts +4 -2
  44. package/dist/chu/bests/best50.js +27 -2
  45. package/dist/chu/bests/best50.js.map +1 -1
  46. package/dist/chu/chart/index.d.ts +3 -3
  47. package/dist/chu/chart/index.js +28 -5
  48. package/dist/chu/chart/index.js.map +1 -1
  49. package/dist/chu/index.d.ts +6 -4
  50. package/dist/chu/index.js +29 -4
  51. package/dist/chu/index.js.map +1 -1
  52. package/dist/geki/bests/best50.d.ts +37 -0
  53. package/dist/geki/bests/best50.js +867 -0
  54. package/dist/geki/bests/best50.js.map +1 -0
  55. package/dist/geki/bests/index.d.ts +1 -0
  56. package/dist/geki/bests/index.js +6 -0
  57. package/dist/geki/bests/index.js.map +1 -0
  58. package/dist/geki/bests/lib/index.d.ts +34 -0
  59. package/dist/geki/bests/lib/index.js +60 -0
  60. package/dist/geki/bests/lib/index.js.map +1 -0
  61. package/dist/geki/bests/lib/kamaiTachi/index.d.ts +205 -0
  62. package/dist/geki/bests/lib/kamaiTachi/index.js +498 -0
  63. package/dist/geki/bests/lib/kamaiTachi/index.js.map +1 -0
  64. package/dist/geki/bests/type.d.ts +122 -0
  65. package/dist/geki/bests/type.js +3 -0
  66. package/dist/geki/bests/type.js.map +1 -0
  67. package/dist/geki/chart/database.d.ts +9 -0
  68. package/dist/geki/chart/database.js +66 -0
  69. package/dist/geki/chart/database.js.map +1 -0
  70. package/dist/geki/chart/index.d.ts +4 -0
  71. package/dist/geki/chart/index.js +32 -0
  72. package/dist/geki/chart/index.js.map +1 -0
  73. package/dist/geki/index.d.ts +10 -0
  74. package/dist/geki/index.js +70 -0
  75. package/dist/geki/index.js.map +1 -0
  76. package/dist/geki/type.d.ts +51 -0
  77. package/dist/geki/type.js +39 -0
  78. package/dist/geki/type.js.map +1 -0
  79. package/dist/index.d.ts +7 -5
  80. package/dist/index.js +32 -7
  81. package/dist/index.js.map +1 -1
  82. package/dist/mai/best50/index.d.ts +46 -6
  83. package/dist/mai/best50/index.js +127 -330
  84. package/dist/mai/best50/index.js.map +1 -1
  85. package/dist/mai/best50/lib/kamaiTachi/index.d.ts +10 -2
  86. package/dist/mai/best50/lib/kamaiTachi/index.js +34 -7
  87. package/dist/mai/best50/lib/kamaiTachi/index.js.map +1 -1
  88. package/dist/mai/chart/index.d.ts +3 -3
  89. package/dist/mai/chart/index.js +28 -5
  90. package/dist/mai/chart/index.js.map +1 -1
  91. package/dist/mai/index.d.ts +6 -4
  92. package/dist/mai/index.js +29 -4
  93. package/dist/mai/index.js.map +1 -1
  94. package/package.json +2 -2
@@ -0,0 +1,498 @@
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.KamaiTachi = void 0;
7
+ const type_1 = require("../../../type");
8
+ const __1 = __importDefault(require(".."));
9
+ class KamaiTachi extends __1.default {
10
+ CURRENT_VERSION;
11
+ constructor({ baseURL = "https://kamai.tachi.ac/", currentVersion = KamaiTachi.EGameVersions.REFRESH, } = {}) {
12
+ super({ baseURL });
13
+ this.CURRENT_VERSION = currentVersion;
14
+ }
15
+ async getPlayerPB(userId) {
16
+ return this.get(`/api/v1/users/${userId}/games/ongeki/Single/pbs/all`, undefined, 60 * 1000);
17
+ }
18
+ async getPlayerRecentScores(userId) {
19
+ return this.get(`/api/v1/users/${userId}/games/ongeki/Single/scores/recent`, undefined, 60 * 1000);
20
+ }
21
+ toMaiDrawScore(score, chart, song, type = "refresh") {
22
+ return {
23
+ chart: (() => {
24
+ return {
25
+ id: chart.data.inGameID,
26
+ name: song.title,
27
+ difficulty: (() => {
28
+ switch (chart.difficulty) {
29
+ case "LUNATIC":
30
+ return type_1.EDifficulty.LUNATIC;
31
+ case "MASTER":
32
+ return type_1.EDifficulty.MASTER;
33
+ case "EXPERT":
34
+ return type_1.EDifficulty.EXPERT;
35
+ case "ADVANCED":
36
+ return type_1.EDifficulty.ADVANCED;
37
+ case "BASIC":
38
+ default:
39
+ return type_1.EDifficulty.BASIC;
40
+ }
41
+ })(),
42
+ level: chart.levelNum,
43
+ maxPlatinumScore: chart.data.maxPlatScore,
44
+ };
45
+ })(),
46
+ combo: (() => {
47
+ switch (score.scoreData.noteLamp) {
48
+ case "FULL COMBO":
49
+ return type_1.EComboTypes.FULL_COMBO;
50
+ case "ALL BREAK":
51
+ return type_1.EComboTypes.ALL_BREAK;
52
+ case "ALL BREAK+":
53
+ return type_1.EComboTypes.ALL_BREAK_PLUS;
54
+ default:
55
+ return type_1.EComboTypes.NONE;
56
+ }
57
+ })(),
58
+ bell: (() => {
59
+ switch (score.scoreData.bellLamp) {
60
+ case "FULL BELL":
61
+ return type_1.EBellTypes.FULL_BELL;
62
+ default:
63
+ return type_1.EBellTypes.NONE;
64
+ }
65
+ })(),
66
+ score: score.scoreData.score,
67
+ platinumScore: score.scoreData.optional.platScore || 0,
68
+ rank: (() => {
69
+ switch (score.scoreData.grade) {
70
+ case "C":
71
+ return type_1.EAchievementTypes.C;
72
+ case "B":
73
+ return type_1.EAchievementTypes.B;
74
+ case "BB":
75
+ return type_1.EAchievementTypes.BB;
76
+ case "BBB":
77
+ return type_1.EAchievementTypes.BBB;
78
+ case "A":
79
+ return type_1.EAchievementTypes.A;
80
+ case "AA":
81
+ return type_1.EAchievementTypes.AA;
82
+ case "AAA":
83
+ return type_1.EAchievementTypes.AAA;
84
+ case "S":
85
+ return type_1.EAchievementTypes.S;
86
+ case "SS":
87
+ return type_1.EAchievementTypes.SS;
88
+ case "SSS":
89
+ return type_1.EAchievementTypes.SSS;
90
+ case "SSS+":
91
+ return type_1.EAchievementTypes.SSSP;
92
+ case "D":
93
+ default:
94
+ return type_1.EAchievementTypes.D;
95
+ }
96
+ })(),
97
+ rating: (() => {
98
+ const RANK_RATING_ADJUSTMENT = {
99
+ "1010000": 2.0,
100
+ "1007500": 1.75,
101
+ "1000000": 1.25,
102
+ "990000": 0.75,
103
+ "970000": 0,
104
+ "900000": -4,
105
+ "800000": -6,
106
+ };
107
+ if (type == "classic")
108
+ return score.calculatedData.rating;
109
+ else {
110
+ let rating = 0, scoreNum = score.scoreData.score;
111
+ if (scoreNum > 1007500) {
112
+ rating +=
113
+ ((scoreNum - 1007500) / 2500) *
114
+ RANK_RATING_ADJUSTMENT["1010000"];
115
+ }
116
+ else if (scoreNum > 1000000) {
117
+ rating +=
118
+ ((scoreNum - 1000000) / 7500) *
119
+ RANK_RATING_ADJUSTMENT["1007500"];
120
+ }
121
+ else if (scoreNum > 990000) {
122
+ rating +=
123
+ ((scoreNum - 990000) / 10000) *
124
+ RANK_RATING_ADJUSTMENT["1000000"];
125
+ }
126
+ else if (scoreNum > 970000) {
127
+ rating +=
128
+ ((scoreNum - 970000) / 20000) *
129
+ RANK_RATING_ADJUSTMENT["990000"];
130
+ }
131
+ else if (scoreNum > 900000) {
132
+ rating +=
133
+ (1 - (scoreNum - 900000) / 70000) *
134
+ RANK_RATING_ADJUSTMENT["900000"];
135
+ }
136
+ else if (scoreNum > 800000) {
137
+ rating +=
138
+ (1 - (scoreNum - 800000) / 100000) *
139
+ RANK_RATING_ADJUSTMENT["800000"];
140
+ }
141
+ else if (scoreNum > 500000) {
142
+ rating *= 1 - (500000 - scoreNum) / 300000;
143
+ }
144
+ else
145
+ rating = 0;
146
+ switch (score.scoreData.noteLamp) {
147
+ case "FULL COMBO":
148
+ rating += 0.1;
149
+ break;
150
+ case "ALL BREAK":
151
+ rating += 0.3;
152
+ break;
153
+ case "ALL BREAK+":
154
+ rating += 0.35;
155
+ break;
156
+ }
157
+ switch (score.scoreData.bellLamp) {
158
+ case "FULL BELL":
159
+ rating += 0.05;
160
+ break;
161
+ }
162
+ switch (score.scoreData.grade) {
163
+ case "SS":
164
+ rating += 0.1;
165
+ case "SSS":
166
+ rating += 0.2;
167
+ case "SSS+":
168
+ rating += 0.3;
169
+ }
170
+ rating += chart.levelNum;
171
+ return rating;
172
+ }
173
+ })(),
174
+ };
175
+ }
176
+ async getPlayerBest60(userId, currentVersion = this.CURRENT_VERSION) {
177
+ const rawPBs = await this.getPlayerPB(userId);
178
+ if (!rawPBs?.body)
179
+ return null;
180
+ const pbs = [];
181
+ for (const pb of rawPBs.body.pbs) {
182
+ let chart = rawPBs.body.charts.find((v) => v.chartID == pb.chartID);
183
+ let song = rawPBs.body.songs.find((v) => v.id == pb.songID);
184
+ if (chart && song && chart.levelNum > 0) {
185
+ pbs.push({ pb, chart, song });
186
+ }
187
+ }
188
+ const newScores = pbs.filter((v) => v.chart.data.displayVersion == currentVersion);
189
+ const oldScores = pbs.filter((v) => v.chart &&
190
+ KamaiTachi.compareGameVersions(currentVersion, v.chart.data.displayVersion) > 0);
191
+ const bestScores = pbs.filter((v) => v.chart &&
192
+ KamaiTachi.compareGameVersions(currentVersion, v.chart.data.displayVersion) >= 0);
193
+ return {
194
+ new: newScores
195
+ .map((v) => this.toMaiDrawScore(v.pb, v.chart, v.song))
196
+ .sort((a, b) => b.rating - a.rating
197
+ ? b.rating - a.rating
198
+ : b.score - a.score)
199
+ .slice(0, 10),
200
+ old: oldScores
201
+ .map((v) => this.toMaiDrawScore(v.pb, v.chart, v.song))
202
+ .sort((a, b) => b.rating - a.rating
203
+ ? b.rating - a.rating
204
+ : b.score - a.score)
205
+ .slice(0, 50),
206
+ plat: bestScores
207
+ .sort((a, b) => {
208
+ function getPlatinumScore(score) {
209
+ if (score.scoreData.optional.platScore)
210
+ return score.scoreData.optional.platScore;
211
+ let platScore = score.scoreData.judgements.cbreak * 2 +
212
+ score.scoreData.judgements.break;
213
+ if (score.scoreData.optional.damage)
214
+ platScore -= score.scoreData.optional.damage;
215
+ if (score.scoreData.optional.totalBellCount &&
216
+ score.scoreData.optional.bellCount)
217
+ platScore -=
218
+ score.scoreData.optional.totalBellCount -
219
+ score.scoreData.optional.bellCount;
220
+ return platScore;
221
+ }
222
+ return (getPlatinumScore(b.pb) - getPlatinumScore(a.pb) ||
223
+ b.pb.calculatedData.rating -
224
+ a.pb.calculatedData.rating ||
225
+ b.pb.scoreData.score - a.pb.scoreData.score);
226
+ })
227
+ .map((v) => this.toMaiDrawScore(v.pb, v.chart, v.song))
228
+ .slice(0, 50),
229
+ best: bestScores
230
+ .map((v) => this.toMaiDrawScore(v.pb, v.chart, v.song))
231
+ .sort((a, b) => b.rating - a.rating
232
+ ? b.rating - a.rating
233
+ : b.score - a.score)
234
+ .slice(0, 45),
235
+ };
236
+ }
237
+ async getPlayerBest55(userId, currentVersion = this.CURRENT_VERSION) {
238
+ const rawPBs = await this.getPlayerPB(userId);
239
+ const rawRecents = await this.getPlayerRecentScores(userId);
240
+ if (!rawPBs?.body || !rawRecents?.body)
241
+ return null;
242
+ const pbs = [];
243
+ const recents = [];
244
+ for (const pb of rawPBs.body.pbs) {
245
+ let chart = rawPBs.body.charts.find((v) => v.chartID == pb.chartID);
246
+ let song = rawPBs.body.songs.find((v) => v.id == pb.songID);
247
+ if (chart && song && chart.levelNum > 0) {
248
+ pbs.push({ pb, chart, song });
249
+ }
250
+ }
251
+ for (const recent of rawRecents.body.scores) {
252
+ let chart = rawRecents.body.charts.find((v) => v.chartID == recent.chartID);
253
+ let song = rawRecents.body.songs.find((v) => v.id == recent.songID);
254
+ if (chart && song) {
255
+ recents.push({ scores: recent, chart, song });
256
+ }
257
+ }
258
+ const newScores = pbs.filter((v) => v.chart.data.displayVersion == currentVersion);
259
+ const oldScores = pbs.filter((v) => v.chart &&
260
+ KamaiTachi.compareGameVersions(currentVersion, v.chart.data.displayVersion) > 0);
261
+ const recentScores = recents.filter((v) => v.chart &&
262
+ KamaiTachi.compareGameVersions(currentVersion, v.chart.data.displayVersion) >= 0);
263
+ function ratingGuardSimulation(scores) {
264
+ let r30 = [];
265
+ for (let i = 0; i < scores.length; i++) {
266
+ r30 = r30.sort((a, b) => a.order - b.order);
267
+ const score = scores[i];
268
+ // console.log(`#${i} ${score.chart.name} Rating: ${score.rating}`);
269
+ if (r30.length < 30) {
270
+ // console.log(`Recents is not full, adding directly to recents.`);
271
+ r30.push({ score, order: i });
272
+ }
273
+ else {
274
+ switch (score.rank) {
275
+ case type_1.EAchievementTypes.SSS:
276
+ case type_1.EAchievementTypes.SSSP:
277
+ while (r30.length > 30) {
278
+ r30.shift();
279
+ }
280
+ // console.log(`SSS rating guard triggered.`);
281
+ if (r30.length >= 30) {
282
+ const best10 = r30
283
+ .sort((a, b) => a.score.rating == b.score.rating
284
+ ? b.score.score - a.score.score
285
+ : b.score.rating - a.score.rating)
286
+ .slice(0, 10);
287
+ for (let j = 0; j < r30.length; ++j) {
288
+ if (!best10.includes(r30[j])) {
289
+ // console.log(`This score will replace: ${r30[j].score.chart.name}, rating: ${r30[j].score.rating}`);
290
+ r30[j] = { score, order: i };
291
+ break;
292
+ }
293
+ }
294
+ break;
295
+ }
296
+ default:
297
+ // console.log(`Pushing to the end of recents.`);
298
+ r30.push({ score, order: i });
299
+ while (r30.length > 30) {
300
+ // console.log(`Removing the oldest score.`);
301
+ r30.shift();
302
+ }
303
+ }
304
+ // console.log("Current recents:");
305
+ // console.log(
306
+ // r30.map(
307
+ // (v) =>
308
+ // `#${v.order} ${v.score.chart.name.slice(0, 4)} ${v.score.rating}`
309
+ // )
310
+ // );
311
+ }
312
+ }
313
+ return r30
314
+ .sort((a, b) => a.score.rating == b.score.rating
315
+ ? b.score.score - a.score.score
316
+ : b.score.rating - a.score.rating)
317
+ .slice(0, 10)
318
+ .map((v) => v.score);
319
+ }
320
+ return {
321
+ recent: ratingGuardSimulation(recentScores
322
+ .reverse()
323
+ .map((v) => this.toMaiDrawScore(v.scores, v.chart, v.song, "classic"))),
324
+ new: newScores
325
+ .sort((a, b) => b.pb.calculatedData.rating - a.pb.calculatedData.rating
326
+ ? b.pb.calculatedData.rating -
327
+ a.pb.calculatedData.rating
328
+ : b.pb.scoreData.score - a.pb.scoreData.score)
329
+ .slice(0, 15)
330
+ .map((v) => this.toMaiDrawScore(v.pb, v.chart, v.song, "classic")),
331
+ old: oldScores
332
+ .sort((a, b) => b.pb.calculatedData.rating - a.pb.calculatedData.rating
333
+ ? b.pb.calculatedData.rating -
334
+ a.pb.calculatedData.rating
335
+ : b.pb.scoreData.score - a.pb.scoreData.score)
336
+ .slice(0, 30)
337
+ .map((v) => this.toMaiDrawScore(v.pb, v.chart, v.song, "classic")),
338
+ best: pbs
339
+ .sort((a, b) => b.pb.calculatedData.rating - a.pb.calculatedData.rating
340
+ ? b.pb.calculatedData.rating -
341
+ a.pb.calculatedData.rating
342
+ : b.pb.scoreData.score - a.pb.scoreData.score)
343
+ .slice(0, 45)
344
+ .map((v) => this.toMaiDrawScore(v.pb, v.chart, v.song, "classic")),
345
+ };
346
+ }
347
+ async getPlayerInfo(userId, type) {
348
+ const profile = await this.getPlayerProfileRaw(userId);
349
+ if (type == "refresh") {
350
+ const scores = await this.getPlayerBest60(userId);
351
+ if (!profile?.body || !scores)
352
+ return null;
353
+ let rating = 0;
354
+ [...scores.new, ...scores.old].forEach((v) => (rating += v.rating));
355
+ scores.plat.forEach((v) => {
356
+ const platinumScoreRatio = v.platinumScore / v.chart.maxPlatinumScore;
357
+ let coefficient = 0;
358
+ if (platinumScoreRatio >= 0.98)
359
+ coefficient = 5;
360
+ else if (platinumScoreRatio >= 0.97)
361
+ coefficient = 4;
362
+ else if (platinumScoreRatio >= 0.96)
363
+ coefficient = 3;
364
+ else if (platinumScoreRatio >= 0.95)
365
+ coefficient = 2;
366
+ else if (platinumScoreRatio >= 0.94)
367
+ coefficient = 1;
368
+ rating += (coefficient * v.chart.level * v.chart.level) / 1000;
369
+ });
370
+ return {
371
+ name: profile?.body.username,
372
+ rating: rating / 50,
373
+ };
374
+ }
375
+ else if (type == "classic") {
376
+ const scores = await this.getPlayerBest55(userId);
377
+ if (!profile?.body || !scores)
378
+ return null;
379
+ let rating = 0;
380
+ [...scores.recent, ...scores.new, ...scores.old].forEach((v) => (rating += v.rating));
381
+ return {
382
+ name: profile?.body.username,
383
+ rating: rating / 55,
384
+ };
385
+ }
386
+ else
387
+ return null;
388
+ }
389
+ async getPlayerProfileRaw(userId) {
390
+ return this.get(`/api/v1/users/${userId}`);
391
+ }
392
+ async getPlayerProfilePicture(userId) {
393
+ return ((await this.get(`/api/v1/users/${userId}/pfp`, undefined, 2 * 60 * 60 * 1000, { responseType: "arraybuffer" })) || null);
394
+ }
395
+ ongeki() {
396
+ return new KamaiTachi({
397
+ currentVersion: KamaiTachi.EGameVersions.ONGEKI,
398
+ });
399
+ }
400
+ plus() {
401
+ return new KamaiTachi({
402
+ currentVersion: KamaiTachi.EGameVersions.ONGEKI_PLUS,
403
+ });
404
+ }
405
+ summer() {
406
+ return new KamaiTachi({
407
+ currentVersion: KamaiTachi.EGameVersions.SUMMER,
408
+ });
409
+ }
410
+ summerPlus() {
411
+ return new KamaiTachi({
412
+ currentVersion: KamaiTachi.EGameVersions.SUMMER_PLUS,
413
+ });
414
+ }
415
+ red() {
416
+ return new KamaiTachi({
417
+ currentVersion: KamaiTachi.EGameVersions.RED,
418
+ });
419
+ }
420
+ redPlus() {
421
+ return new KamaiTachi({
422
+ currentVersion: KamaiTachi.EGameVersions.RED_PLUS,
423
+ });
424
+ }
425
+ bright() {
426
+ return new KamaiTachi({
427
+ currentVersion: KamaiTachi.EGameVersions.BRIGHT,
428
+ });
429
+ }
430
+ brightMemoryAct1() {
431
+ return new KamaiTachi({
432
+ currentVersion: KamaiTachi.EGameVersions.BRIGHT_MEMORY_ACT_1,
433
+ });
434
+ }
435
+ brightMemoryAct2() {
436
+ return new KamaiTachi({
437
+ currentVersion: KamaiTachi.EGameVersions.BRIGHT_MEMORY_ACT_2,
438
+ });
439
+ }
440
+ brightMemoryAct3() {
441
+ return new KamaiTachi({
442
+ currentVersion: KamaiTachi.EGameVersions.BRIGHT_MEMORY_ACT_3,
443
+ });
444
+ }
445
+ refresh() {
446
+ return new KamaiTachi({
447
+ currentVersion: KamaiTachi.EGameVersions.REFRESH,
448
+ });
449
+ }
450
+ }
451
+ exports.KamaiTachi = KamaiTachi;
452
+ (function (KamaiTachi) {
453
+ let EGameVersions;
454
+ (function (EGameVersions) {
455
+ EGameVersions["REFRESH"] = "\u30AA\u30F3\u30B2\u30AD Re:Fresh";
456
+ EGameVersions["BRIGHT_MEMORY_ACT_3"] = "\u30AA\u30F3\u30B2\u30AD bright MEMORY Act.3";
457
+ EGameVersions["BRIGHT_MEMORY_ACT_2"] = "\u30AA\u30F3\u30B2\u30AD bright MEMORY Act.2";
458
+ EGameVersions["BRIGHT_MEMORY_ACT_1"] = "\u30AA\u30F3\u30B2\u30AD bright MEMORY Act.1";
459
+ EGameVersions["BRIGHT"] = "\u30AA\u30F3\u30B2\u30AD bright";
460
+ EGameVersions["RED_PLUS"] = "\u30AA\u30F3\u30B2\u30AD R.E.D. PLUS";
461
+ EGameVersions["RED"] = "\u30AA\u30F3\u30B2\u30AD R.E.D.";
462
+ EGameVersions["SUMMER_PLUS"] = "\u30AA\u30F3\u30B2\u30AD SUMMER PLUS";
463
+ EGameVersions["SUMMER"] = "\u30AA\u30F3\u30B2\u30AD SUMMER";
464
+ EGameVersions["ONGEKI_PLUS"] = "\u30AA\u30F3\u30B2\u30AD PLUS";
465
+ EGameVersions["ONGEKI"] = "\u30AA\u30F3\u30B2\u30AD";
466
+ })(EGameVersions = KamaiTachi.EGameVersions || (KamaiTachi.EGameVersions = {}));
467
+ const GameVersions = [
468
+ EGameVersions.REFRESH,
469
+ EGameVersions.BRIGHT_MEMORY_ACT_3,
470
+ EGameVersions.BRIGHT_MEMORY_ACT_2,
471
+ EGameVersions.BRIGHT_MEMORY_ACT_1,
472
+ EGameVersions.BRIGHT,
473
+ EGameVersions.RED_PLUS,
474
+ EGameVersions.RED,
475
+ EGameVersions.SUMMER_PLUS,
476
+ EGameVersions.SUMMER,
477
+ EGameVersions.ONGEKI_PLUS,
478
+ EGameVersions.ONGEKI,
479
+ ];
480
+ /**
481
+ * Compare two game versions and calculate which is newer.
482
+ *
483
+ * @param a Game version.
484
+ * @param b Game version.
485
+ * @returns positive if a is newer, negative if b is newer, 0 if they are the same.
486
+ */
487
+ function compareGameVersions(a, b) {
488
+ if (!GameVersions.includes(a))
489
+ return -1;
490
+ if (!GameVersions.includes(b))
491
+ return 1;
492
+ if (a == b)
493
+ return 0;
494
+ return GameVersions.indexOf(b) - GameVersions.indexOf(a);
495
+ }
496
+ KamaiTachi.compareGameVersions = compareGameVersions;
497
+ })(KamaiTachi || (exports.KamaiTachi = KamaiTachi = {}));
498
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/geki/bests/lib/kamaiTachi/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,122 @@
1
+ import { IScore } from "../../mai/type";
2
+ export interface IThemeManifest {
3
+ displayName: string;
4
+ name: string;
5
+ width: number;
6
+ height: number;
7
+ sprites: IThemeSprites;
8
+ elements: IThemeElements[];
9
+ }
10
+ export interface IThemeSprites {
11
+ achievement: {
12
+ d: string;
13
+ c: string;
14
+ b: string;
15
+ bb: string;
16
+ bbb: string;
17
+ a: string;
18
+ aa: string;
19
+ aaa: string;
20
+ s: string;
21
+ ss: string;
22
+ sss: string;
23
+ sssp: string;
24
+ };
25
+ milestone: {
26
+ ab: string;
27
+ abp: string;
28
+ fc: string;
29
+ fb: string;
30
+ none: string;
31
+ };
32
+ ratingNumberMap: string;
33
+ profile: {
34
+ icon: string;
35
+ userplate: string;
36
+ };
37
+ }
38
+ export type IThemeElements = IThemeProfileElement | IThemeScoreElement | IThemeImageElement | IThemeTextElement;
39
+ export interface IThemeElement {
40
+ type: string;
41
+ x: number;
42
+ y: number;
43
+ }
44
+ export interface IThemeProfileElement extends IThemeElement {
45
+ type: "profile";
46
+ }
47
+ export interface IThemeScoreElement extends IThemeElement {
48
+ type: "score-grid";
49
+ horizontalSize: number;
50
+ verticalSize: number;
51
+ region: "new" | "old" | "recent";
52
+ index: number;
53
+ scoreBubble: {
54
+ width: number;
55
+ height: number;
56
+ margin: number;
57
+ gap: number | {
58
+ x: number;
59
+ y: number;
60
+ };
61
+ color: {
62
+ basic: string;
63
+ advanced: string;
64
+ expert: string;
65
+ master: string;
66
+ lunatic: string;
67
+ };
68
+ };
69
+ }
70
+ export interface IThemeImageElement extends IThemeElement {
71
+ type: "image";
72
+ width: number;
73
+ height: number;
74
+ /**
75
+ * Relative path from the manifest file to the element file.
76
+ */
77
+ path: string;
78
+ }
79
+ export interface IThemeTextElement extends IThemeElement {
80
+ type: "text";
81
+ size: number;
82
+ content: string;
83
+ /**
84
+ * If width is provied and the text is too long, it will be cut off.
85
+ */
86
+ width?: number;
87
+ /**
88
+ * If height is provied and the text is too big, it will be cut off.
89
+ */
90
+ height?: number;
91
+ /**
92
+ * If true, instead of cutting off the text, it will change to a new line.
93
+ * Height restrictions will still apply.
94
+ */
95
+ linebreak?: boolean;
96
+ /**
97
+ * Text alignment.
98
+ * Defaults to left.
99
+ */
100
+ align?: "left" | "center" | "right";
101
+ /**
102
+ * Text color.
103
+ * Defaults to white (#FFFFFF).
104
+ */
105
+ color?: string;
106
+ /**
107
+ * Text border color.
108
+ * Defaults a darker variant of `color`.
109
+ */
110
+ borderColor?: string;
111
+ /**
112
+ * Text font. Please make sure the font is available in the environment.
113
+ * Defaults to a preconfigured font macro. Check source code for more info.
114
+ */
115
+ font?: string;
116
+ }
117
+ export interface IBest50 {
118
+ new: IScore[];
119
+ old: IScore[];
120
+ username: string;
121
+ rating: number;
122
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type.js","sourceRoot":"","sources":["../../../src/geki/bests/type.ts"],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
1
+ export declare class Database {
2
+ private static localDatabasePath;
3
+ static setLocalDatabasePath(path: string): void;
4
+ static hasLocalDatabase(): boolean;
5
+ private static cache;
6
+ static cacheJackets(ids: number[]): Promise<void>;
7
+ static fecthJacket(id: number): Promise<Buffer | null>;
8
+ static downloadJacket(id: number): Promise<Buffer | null>;
9
+ }