hypixel-api-reborn 11.2.1 → 11.3.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/package.json +8 -8
- package/src/API/housing/getActiveHouses.js +7 -0
- package/src/API/housing/getHouse.js +9 -0
- package/src/API/housing/getPlayerHouses.js +11 -0
- package/src/API/index.js +6 -1
- package/src/API/skyblock/getFireSales.js +1 -1
- package/src/API/skyblock/getGarden.js +7 -0
- package/src/API/skyblock/getMember.js +4 -2
- package/src/API/skyblock/getProfiles.js +4 -2
- package/src/Client.js +46 -2
- package/src/Private/requests.js +1 -1
- package/src/index.js +5 -0
- package/src/structures/House.js +54 -0
- package/src/structures/MiniGames/Arcade.js +754 -270
- package/src/structures/MiniGames/ArenaBrawl.js +97 -31
- package/src/structures/MiniGames/BlitzSurvivalGames.js +378 -127
- package/src/structures/MiniGames/BuildBattle.js +19 -8
- package/src/structures/MiniGames/CopsAndCrims.js +252 -25
- package/src/structures/MiniGames/Duels.js +916 -656
- package/src/structures/MiniGames/MegaWalls.js +390 -51
- package/src/structures/MiniGames/MurderMystery.js +151 -30
- package/src/structures/MiniGames/Paintball.js +31 -11
- package/src/structures/MiniGames/Quakecraft.js +113 -50
- package/src/structures/MiniGames/SkyWars.js +340 -195
- package/src/structures/MiniGames/SmashHeroes.js +195 -69
- package/src/structures/MiniGames/SpeedUHC.js +76 -36
- package/src/structures/MiniGames/TNTGames.js +242 -73
- package/src/structures/MiniGames/TurboKartRacers.js +55 -115
- package/src/structures/MiniGames/UHC.js +135 -124
- package/src/structures/MiniGames/VampireZ.js +70 -37
- package/src/structures/MiniGames/Warlords.js +126 -1
- package/src/structures/MiniGames/WoolWars.js +54 -4
- package/src/structures/Player.js +33 -25
- package/src/structures/SkyBlock/SkyblockGarden.js +146 -0
- package/src/structures/SkyBlock/SkyblockMember.js +12 -5
- package/src/utils/Constants.js +507 -5
- package/src/utils/SkyblockUtils.js +33 -0
- package/typings/index.d.ts +1034 -899
|
@@ -1,4 +1,224 @@
|
|
|
1
1
|
const divide = require('../../utils/divide');
|
|
2
|
+
|
|
3
|
+
class MegaWallsModeStats {
|
|
4
|
+
/**
|
|
5
|
+
* @param {object} data MegaWalls data
|
|
6
|
+
* @param {string} mode MegaWalls Mode
|
|
7
|
+
* @param {string} kit MegaWalls Kit
|
|
8
|
+
*/
|
|
9
|
+
constructor(data, mode, kit) {
|
|
10
|
+
if (kit) kit = `${kit}_`;
|
|
11
|
+
/**
|
|
12
|
+
* Kills
|
|
13
|
+
* @type {number}
|
|
14
|
+
*/
|
|
15
|
+
this.kills = data[`${kit}kills_${mode}`] || 0;
|
|
16
|
+
/**
|
|
17
|
+
* Assists
|
|
18
|
+
* @type {number}
|
|
19
|
+
*/
|
|
20
|
+
this.assists = data[`${kit}assists_${mode}`] || 0;
|
|
21
|
+
/**
|
|
22
|
+
* Deaths
|
|
23
|
+
* @type {number}
|
|
24
|
+
*/
|
|
25
|
+
this.deaths = data[`${kit}deaths_${mode}`] || 0;
|
|
26
|
+
/**
|
|
27
|
+
* Kill Death ratio
|
|
28
|
+
* @type {number}
|
|
29
|
+
*/
|
|
30
|
+
this.KDRatio = divide(this.kills, this.deaths);
|
|
31
|
+
/**
|
|
32
|
+
* Wins
|
|
33
|
+
* @type {number}
|
|
34
|
+
*/
|
|
35
|
+
this.wins = data[`${kit}wins_${mode}`] || 0;
|
|
36
|
+
/**
|
|
37
|
+
* Losses
|
|
38
|
+
* @type {number}
|
|
39
|
+
*/
|
|
40
|
+
this.losses = data[`${kit}losses_${mode}`] || 0;
|
|
41
|
+
/**
|
|
42
|
+
* Win Loss ratio
|
|
43
|
+
* @type {number}
|
|
44
|
+
*/
|
|
45
|
+
this.WLRatio = divide(this.wins, this.losses);
|
|
46
|
+
/**
|
|
47
|
+
* Final kills
|
|
48
|
+
* @type {number}
|
|
49
|
+
*/
|
|
50
|
+
this.finalKills = data[`${kit}final_kills_${mode}`] || 0;
|
|
51
|
+
/**
|
|
52
|
+
* Final assists
|
|
53
|
+
* @type {number}
|
|
54
|
+
*/
|
|
55
|
+
this.finalAssists = data[`${kit}final_assists_${mode}`] || 0;
|
|
56
|
+
/**
|
|
57
|
+
* Final deaths
|
|
58
|
+
* @type {number}
|
|
59
|
+
*/
|
|
60
|
+
this.finalDeaths = data[`${kit}final_deaths_${mode}`] || 0;
|
|
61
|
+
/**
|
|
62
|
+
* Final Kill Death ratio
|
|
63
|
+
* @type {number}
|
|
64
|
+
*/
|
|
65
|
+
this.finalKDRatio = divide(this.finalKills, this.finalDeaths);
|
|
66
|
+
/**
|
|
67
|
+
* Played games
|
|
68
|
+
* @type {number}
|
|
69
|
+
*/
|
|
70
|
+
this.playedGames = data[`${kit}games_played_${mode}`] || 0;
|
|
71
|
+
/**
|
|
72
|
+
* Wither damage
|
|
73
|
+
* @type {number}
|
|
74
|
+
*/
|
|
75
|
+
this.witherDamage = data[`${kit}wither_damage_${mode}`] || 0;
|
|
76
|
+
/**
|
|
77
|
+
* Defender kills
|
|
78
|
+
* @type {number}
|
|
79
|
+
*/
|
|
80
|
+
this.defenderKills = data[`${kit}defender_kills_${mode}`] || 0;
|
|
81
|
+
/**
|
|
82
|
+
* Walked
|
|
83
|
+
* @type {number}
|
|
84
|
+
*/
|
|
85
|
+
this.walked = data[`${kit}meters_walked_${mode}`] || 0;
|
|
86
|
+
/**
|
|
87
|
+
* Blocks Placed
|
|
88
|
+
* @type {number}
|
|
89
|
+
*/
|
|
90
|
+
this.blocksPlaced = data[`${kit}blocks_placed_${mode}`] || 0;
|
|
91
|
+
/**
|
|
92
|
+
* Blocks Broken
|
|
93
|
+
* @type {number}
|
|
94
|
+
*/
|
|
95
|
+
this.blocksBroken = data[`${kit}blocks_broken_${mode}`] || 0;
|
|
96
|
+
/**
|
|
97
|
+
* Melee Kills
|
|
98
|
+
* @type {number}
|
|
99
|
+
*/
|
|
100
|
+
this.meleeKills = data[`${kit}kills_melee_${mode}`] || 0;
|
|
101
|
+
/**
|
|
102
|
+
* Damage Delt
|
|
103
|
+
* @type {number}
|
|
104
|
+
*/
|
|
105
|
+
this.damageDealt = data[`${kit}damage_dealt_${mode}`] || 0;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
class MegaWallsKitStats {
|
|
109
|
+
/**
|
|
110
|
+
* @param {object} data MegaWalls data
|
|
111
|
+
* @param {string} kit MegaWalls Kit
|
|
112
|
+
*/
|
|
113
|
+
constructor(data, kit) {
|
|
114
|
+
/**
|
|
115
|
+
* Kills
|
|
116
|
+
* @type {number}
|
|
117
|
+
*/
|
|
118
|
+
this.kills = data[`${kit}_kills`] || 0;
|
|
119
|
+
/**
|
|
120
|
+
* Assists
|
|
121
|
+
* @type {number}
|
|
122
|
+
*/
|
|
123
|
+
this.assists = data[`${kit}_assists`] || 0;
|
|
124
|
+
/**
|
|
125
|
+
* Deaths
|
|
126
|
+
* @type {number}
|
|
127
|
+
*/
|
|
128
|
+
this.deaths = data[`${kit}_deaths`] || 0;
|
|
129
|
+
/**
|
|
130
|
+
* Kill Death ratio
|
|
131
|
+
* @type {number}
|
|
132
|
+
*/
|
|
133
|
+
this.KDRatio = divide(this.kills, this.deaths);
|
|
134
|
+
/**
|
|
135
|
+
* Wins
|
|
136
|
+
* @type {number}
|
|
137
|
+
*/
|
|
138
|
+
this.wins = data[`${kit}_wins`] || 0;
|
|
139
|
+
/**
|
|
140
|
+
* Losses
|
|
141
|
+
* @type {number}
|
|
142
|
+
*/
|
|
143
|
+
this.losses = data[`${kit}_losses`] || 0;
|
|
144
|
+
/**
|
|
145
|
+
* Win Loss ratio
|
|
146
|
+
* @type {number}
|
|
147
|
+
*/
|
|
148
|
+
this.WLRatio = divide(this.wins, this.losses);
|
|
149
|
+
/**
|
|
150
|
+
* Final kills
|
|
151
|
+
* @type {number}
|
|
152
|
+
*/
|
|
153
|
+
this.finalKills = data[`${kit}_final_kills`] || 0;
|
|
154
|
+
/**
|
|
155
|
+
* Final assists
|
|
156
|
+
* @type {number}
|
|
157
|
+
*/
|
|
158
|
+
this.finalAssists = data[`${kit}_final_assists`] || 0;
|
|
159
|
+
/**
|
|
160
|
+
* Final deaths
|
|
161
|
+
* @type {number}
|
|
162
|
+
*/
|
|
163
|
+
this.finalDeaths = data[`${kit}_final_deaths`] || 0;
|
|
164
|
+
/**
|
|
165
|
+
* Final Kill Death ratio
|
|
166
|
+
* @type {number}
|
|
167
|
+
*/
|
|
168
|
+
this.finalKDRatio = divide(this.finalKills, this.finalDeaths);
|
|
169
|
+
/**
|
|
170
|
+
* Played games
|
|
171
|
+
* @type {number}
|
|
172
|
+
*/
|
|
173
|
+
this.playedGames = data[`${kit}_games_played`] || 0;
|
|
174
|
+
/**
|
|
175
|
+
* Wither damage
|
|
176
|
+
* @type {number}
|
|
177
|
+
*/
|
|
178
|
+
this.witherDamage = data[`${kit}_wither_damage`] || 0;
|
|
179
|
+
/**
|
|
180
|
+
* Defender kills
|
|
181
|
+
* @type {number}
|
|
182
|
+
*/
|
|
183
|
+
this.defenderKills = data[`${kit}_defender_kills`] || 0;
|
|
184
|
+
/**
|
|
185
|
+
* Walked
|
|
186
|
+
* @type {number}
|
|
187
|
+
*/
|
|
188
|
+
this.walked = data[`${kit}_meters_walked`] || 0;
|
|
189
|
+
/**
|
|
190
|
+
* Blocks Placed
|
|
191
|
+
* @type {number}
|
|
192
|
+
*/
|
|
193
|
+
this.blocksPlaced = data[`${kit}_blocks_placed`] || 0;
|
|
194
|
+
/**
|
|
195
|
+
* Blocks Broken
|
|
196
|
+
* @type {number}
|
|
197
|
+
*/
|
|
198
|
+
this.blocksBroken = data[`${kit}_blocks_broken`] || 0;
|
|
199
|
+
/**
|
|
200
|
+
* Melee Kills
|
|
201
|
+
* @type {number}
|
|
202
|
+
*/
|
|
203
|
+
this.meleeKills = data[`${kit}_kills_melee`] || 0;
|
|
204
|
+
/**
|
|
205
|
+
* Damage Delt
|
|
206
|
+
* @type {number}
|
|
207
|
+
*/
|
|
208
|
+
this.damageDealt = data[`${kit}_damage_dealt`] || 0;
|
|
209
|
+
/**
|
|
210
|
+
* Stats for each mode
|
|
211
|
+
* @type {MegaWallsModeStats}
|
|
212
|
+
*/
|
|
213
|
+
this.faceOff = new MegaWallsModeStats(data, 'face_off', kit);
|
|
214
|
+
/**
|
|
215
|
+
* Stats for each mode
|
|
216
|
+
* @type {MegaWallsModeStats}
|
|
217
|
+
*/
|
|
218
|
+
this.casualBrawl = new MegaWallsModeStats(data, 'gvg', kit);
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
|
|
2
222
|
/**
|
|
3
223
|
* MegaWalls class
|
|
4
224
|
*/
|
|
@@ -9,7 +229,7 @@ class MegaWalls {
|
|
|
9
229
|
constructor(data) {
|
|
10
230
|
/**
|
|
11
231
|
* Selected class
|
|
12
|
-
* @type {string}
|
|
232
|
+
* @type {string|null}
|
|
13
233
|
*/
|
|
14
234
|
this.selectedClass = data.chosen_class || null;
|
|
15
235
|
/**
|
|
@@ -56,24 +276,22 @@ class MegaWalls {
|
|
|
56
276
|
* Final kills
|
|
57
277
|
* @type {number}
|
|
58
278
|
*/
|
|
59
|
-
this.finalKills = data.final_kills || 0;
|
|
279
|
+
this.finalKills = (data.final_kills || 0) + (data.finalkills || 0);
|
|
60
280
|
/**
|
|
61
281
|
* Final assists
|
|
62
282
|
* @type {number}
|
|
63
283
|
*/
|
|
64
|
-
this.finalAssists = data.final_assists || 0;
|
|
284
|
+
this.finalAssists = (data.final_assists || 0) + (data.finalassists || 0);
|
|
65
285
|
/**
|
|
66
286
|
* Final deaths
|
|
67
287
|
* @type {number}
|
|
68
288
|
*/
|
|
69
|
-
this.finalDeaths =
|
|
70
|
-
? 0
|
|
71
|
-
: Math.floor((data.final_deaths || 0) + (data.finalDeaths || 0));
|
|
289
|
+
this.finalDeaths = (data.final_deaths || 0) + (data.finalDeaths || 0);
|
|
72
290
|
/**
|
|
73
291
|
* Final Kill Death ratio
|
|
74
292
|
* @type {number}
|
|
75
293
|
*/
|
|
76
|
-
this.finalKDRatio = divide(
|
|
294
|
+
this.finalKDRatio = divide(this.finalKills, this.finalDeaths);
|
|
77
295
|
/**
|
|
78
296
|
* Played games
|
|
79
297
|
* @type {number}
|
|
@@ -83,57 +301,178 @@ class MegaWalls {
|
|
|
83
301
|
* Wither damage
|
|
84
302
|
* @type {number}
|
|
85
303
|
*/
|
|
86
|
-
this.witherDamage = data.wither_damage || 0;
|
|
304
|
+
this.witherDamage = (data.wither_damage || 0) + (data.witherDamager || 0);
|
|
87
305
|
/**
|
|
88
306
|
* Defender kills
|
|
89
307
|
* @type {number}
|
|
90
308
|
*/
|
|
91
309
|
this.defenderKills = data.defender_kills || 0;
|
|
310
|
+
/**
|
|
311
|
+
* Walked
|
|
312
|
+
* @type {number}
|
|
313
|
+
*/
|
|
314
|
+
this.walked = data.meters_walked || 0;
|
|
315
|
+
/**
|
|
316
|
+
* Blocks Placed
|
|
317
|
+
* @type {number}
|
|
318
|
+
*/
|
|
319
|
+
this.blocksPlaced = data.blocks_placed || 0;
|
|
320
|
+
/**
|
|
321
|
+
* Blocks Broken
|
|
322
|
+
* @type {number}
|
|
323
|
+
*/
|
|
324
|
+
this.blocksBroken = data.blocks_broken || 0;
|
|
325
|
+
/**
|
|
326
|
+
* Melee Kills
|
|
327
|
+
* @type {number}
|
|
328
|
+
*/
|
|
329
|
+
this.meleeKills = data.kills_melee || 0;
|
|
330
|
+
/**
|
|
331
|
+
* Damage Delt
|
|
332
|
+
* @type {number}
|
|
333
|
+
*/
|
|
334
|
+
this.damageDealt = data.damage_dealt || 0;
|
|
335
|
+
/**
|
|
336
|
+
* Stats for each mode
|
|
337
|
+
* @type {MegaWallsModeStats}
|
|
338
|
+
*/
|
|
339
|
+
this.faceOff = new MegaWallsModeStats(data, 'face_off');
|
|
92
340
|
/**
|
|
93
341
|
* Stats for each mode
|
|
94
|
-
* @type {
|
|
95
|
-
*/
|
|
96
|
-
this.
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
342
|
+
* @type {MegaWallsModeStats}
|
|
343
|
+
*/
|
|
344
|
+
this.casualBrawl = new MegaWallsModeStats(data, 'gvg');
|
|
345
|
+
/**
|
|
346
|
+
* cow kit stats
|
|
347
|
+
* @type {MegaWallsKitStats}
|
|
348
|
+
*/
|
|
349
|
+
this.cow = new MegaWallsKitStats(data, 'cow');
|
|
350
|
+
/**
|
|
351
|
+
* hunter kit stats
|
|
352
|
+
* @type {MegaWallsKitStats}
|
|
353
|
+
*/
|
|
354
|
+
this.hunter = new MegaWallsKitStats(data, 'hunter');
|
|
355
|
+
/**
|
|
356
|
+
* shark kit stats
|
|
357
|
+
* @type {MegaWallsKitStats}
|
|
358
|
+
*/
|
|
359
|
+
this.shark = new MegaWallsKitStats(data, 'shark');
|
|
360
|
+
/**
|
|
361
|
+
* arcanist kit stats
|
|
362
|
+
* @type {MegaWallsKitStats}
|
|
363
|
+
*/
|
|
364
|
+
this.arcanist = new MegaWallsKitStats(data, 'arcanist');
|
|
365
|
+
/**
|
|
366
|
+
* deadlord kit stats
|
|
367
|
+
* @type {MegaWallsKitStats}
|
|
368
|
+
*/
|
|
369
|
+
this.deadlord = new MegaWallsKitStats(data, 'deadlord');
|
|
370
|
+
/**
|
|
371
|
+
* golem kit stats
|
|
372
|
+
* @type {MegaWallsKitStats}
|
|
373
|
+
*/
|
|
374
|
+
this.golem = new MegaWallsKitStats(data, 'golem');
|
|
375
|
+
/**
|
|
376
|
+
* herobrine kit stats
|
|
377
|
+
* @type {MegaWallsKitStats}
|
|
378
|
+
*/
|
|
379
|
+
this.herobrine = new MegaWallsKitStats(data, 'herobrine');
|
|
380
|
+
/**
|
|
381
|
+
* pigman kit stats
|
|
382
|
+
* @type {MegaWallsKitStats}
|
|
383
|
+
*/
|
|
384
|
+
this.pigman = new MegaWallsKitStats(data, 'pigman');
|
|
385
|
+
/**
|
|
386
|
+
* zombie kit stats
|
|
387
|
+
* @type {MegaWallsKitStats}
|
|
388
|
+
*/
|
|
389
|
+
this.zombie = new MegaWallsKitStats(data, 'zombie');
|
|
390
|
+
/**
|
|
391
|
+
* blaze kit stats
|
|
392
|
+
* @type {MegaWallsKitStats}
|
|
393
|
+
*/
|
|
394
|
+
this.blaze = new MegaWallsKitStats(data, 'blaze');
|
|
395
|
+
/**
|
|
396
|
+
* enderman kit stats
|
|
397
|
+
* @type {MegaWallsKitStats}
|
|
398
|
+
*/
|
|
399
|
+
this.enderman = new MegaWallsKitStats(data, 'enderman');
|
|
400
|
+
/**
|
|
401
|
+
* shaman kit stats
|
|
402
|
+
* @type {MegaWallsKitStats}
|
|
403
|
+
*/
|
|
404
|
+
this.shaman = new MegaWallsKitStats(data, 'shaman');
|
|
405
|
+
/**
|
|
406
|
+
* squid kit stats
|
|
407
|
+
* @type {MegaWallsKitStats}
|
|
408
|
+
*/
|
|
409
|
+
this.squid = new MegaWallsKitStats(data, 'squid');
|
|
410
|
+
/**
|
|
411
|
+
* creeper kit stats
|
|
412
|
+
* @type {MegaWallsKitStats}
|
|
413
|
+
*/
|
|
414
|
+
this.creeper = new MegaWallsKitStats(data, 'creeper');
|
|
415
|
+
/**
|
|
416
|
+
* pirate kit stats
|
|
417
|
+
* @type {MegaWallsKitStats}
|
|
418
|
+
*/
|
|
419
|
+
this.pirate = new MegaWallsKitStats(data, 'pirate');
|
|
420
|
+
/**
|
|
421
|
+
* sheep kit stats
|
|
422
|
+
* @type {MegaWallsKitStats}
|
|
423
|
+
*/
|
|
424
|
+
this.sheep = new MegaWallsKitStats(data, 'sheep');
|
|
425
|
+
/**
|
|
426
|
+
* skeleton kit stats
|
|
427
|
+
* @type {MegaWallsKitStats}
|
|
428
|
+
*/
|
|
429
|
+
this.skeleton = new MegaWallsKitStats(data, 'skeleton');
|
|
430
|
+
/**
|
|
431
|
+
* spider kit stats
|
|
432
|
+
* @type {MegaWallsKitStats}
|
|
433
|
+
*/
|
|
434
|
+
this.spider = new MegaWallsKitStats(data, 'spider');
|
|
435
|
+
/**
|
|
436
|
+
* werewolf kit stats
|
|
437
|
+
* @type {MegaWallsKitStats}
|
|
438
|
+
*/
|
|
439
|
+
this.werewolf = new MegaWallsKitStats(data, 'werewolf');
|
|
440
|
+
/**
|
|
441
|
+
* angel kit stats
|
|
442
|
+
* @type {MegaWallsKitStats}
|
|
443
|
+
*/
|
|
444
|
+
this.angel = new MegaWallsKitStats(data, 'angel');
|
|
445
|
+
/**
|
|
446
|
+
* assassin kit stats
|
|
447
|
+
* @type {MegaWallsKitStats}
|
|
448
|
+
*/
|
|
449
|
+
this.assassin = new MegaWallsKitStats(data, 'assassin');
|
|
450
|
+
/**
|
|
451
|
+
* automaton kit stats
|
|
452
|
+
* @type {MegaWallsKitStats}
|
|
453
|
+
*/
|
|
454
|
+
this.automaton = new MegaWallsKitStats(data, 'automaton');
|
|
455
|
+
/**
|
|
456
|
+
* moleman kit stats
|
|
457
|
+
* @type {MegaWallsKitStats}
|
|
458
|
+
*/
|
|
459
|
+
this.moleman = new MegaWallsKitStats(data, 'moleman');
|
|
460
|
+
/**
|
|
461
|
+
* phoenix kit stats
|
|
462
|
+
* @type {MegaWallsKitStats}
|
|
463
|
+
*/
|
|
464
|
+
this.phoenix = new MegaWallsKitStats(data, 'phoenix');
|
|
465
|
+
/**
|
|
466
|
+
* renegade kit stats
|
|
467
|
+
* @type {MegaWallsKitStats}
|
|
468
|
+
*/
|
|
469
|
+
this.renegade = new MegaWallsKitStats(data, 'renegade');
|
|
470
|
+
/**
|
|
471
|
+
* snowman kit stats
|
|
472
|
+
* @type {MegaWallsKitStats}
|
|
473
|
+
*/
|
|
474
|
+
this.snowman = new MegaWallsKitStats(data, 'snowman');
|
|
122
475
|
}
|
|
123
476
|
}
|
|
124
|
-
|
|
125
|
-
* @typedef {object} MegaWallsMode
|
|
126
|
-
* @property {object} normal Normal mode
|
|
127
|
-
* @property {object} faceoff Faceoff mode
|
|
128
|
-
* @property {object} casualBrawl Casual brawl mode
|
|
129
|
-
*/
|
|
130
|
-
/**
|
|
131
|
-
* @typedef {object} MegaWallsModeStats
|
|
132
|
-
* @property {number} kills Kills
|
|
133
|
-
* @property {number} deaths Deaths
|
|
134
|
-
* @property {number} KDRatio Kill Death ratio
|
|
135
|
-
* @property {number} wins Wins
|
|
136
|
-
* @property {number} losses Losses
|
|
137
|
-
* @property {number} WLRatio Win Loss ratio
|
|
138
|
-
*/
|
|
477
|
+
|
|
139
478
|
module.exports = MegaWalls;
|
|
@@ -1,4 +1,89 @@
|
|
|
1
1
|
const divide = require('../../utils/divide');
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* MurderMystery stats by gamemode
|
|
5
|
+
*/
|
|
6
|
+
class MurderMysteryModeStats {
|
|
7
|
+
/**
|
|
8
|
+
* Constructor
|
|
9
|
+
* @param {Object} data Data from API
|
|
10
|
+
* @param {string} gamemode String gamemode name
|
|
11
|
+
*/
|
|
12
|
+
constructor(data, gamemode) {
|
|
13
|
+
/**
|
|
14
|
+
* Amount of gold picked up in games
|
|
15
|
+
* @type {number}
|
|
16
|
+
*/
|
|
17
|
+
this.goldPickedUp = data[`coins_pickedup_${gamemode}`] || 0;
|
|
18
|
+
/**
|
|
19
|
+
* Kills
|
|
20
|
+
* @type {number}
|
|
21
|
+
*/
|
|
22
|
+
this.kills = data[`kills_${gamemode}`] || 0;
|
|
23
|
+
/**
|
|
24
|
+
* Thrown Knife Kills
|
|
25
|
+
* @type {number}
|
|
26
|
+
*/
|
|
27
|
+
this.thrownKnifeKills = data[`thrown_knife_kills_${gamemode}`] || 0;
|
|
28
|
+
/**
|
|
29
|
+
* Knife Kills
|
|
30
|
+
* @type {number}
|
|
31
|
+
*/
|
|
32
|
+
this.knifeKills = data[`knife_kills_${gamemode}`] || 0;
|
|
33
|
+
/**
|
|
34
|
+
* Bow Kills
|
|
35
|
+
* @type {number}
|
|
36
|
+
*/
|
|
37
|
+
this.bowKills = data[`bow_kills_${gamemode}`] || 0;
|
|
38
|
+
/**
|
|
39
|
+
* Trap Kills
|
|
40
|
+
* @type {number}
|
|
41
|
+
*/
|
|
42
|
+
this.trapKills = data[`trap_kills_${gamemode}`] || 0;
|
|
43
|
+
/**
|
|
44
|
+
* Deaths
|
|
45
|
+
* @type {number}
|
|
46
|
+
*/
|
|
47
|
+
this.deaths = data[`deaths_${gamemode}`] || 0;
|
|
48
|
+
/**
|
|
49
|
+
* Suicides
|
|
50
|
+
* @type {number}
|
|
51
|
+
*/
|
|
52
|
+
this.suicides = data[`suicides_${gamemode}`] || 0;
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Kill/Death ratio
|
|
56
|
+
* @type {number}
|
|
57
|
+
*/
|
|
58
|
+
this.KDRatio = divide(this.kills, this.deaths);
|
|
59
|
+
/**
|
|
60
|
+
* Wins as Murderer
|
|
61
|
+
* @type {number}
|
|
62
|
+
*/
|
|
63
|
+
this.wins = data[`wins_${gamemode}`] || 0;
|
|
64
|
+
/**
|
|
65
|
+
* Wins as Detective
|
|
66
|
+
* @type {number}
|
|
67
|
+
*/
|
|
68
|
+
this.winsAsDetective = data[`detective_wins_${gamemode}`] || 0;
|
|
69
|
+
/**
|
|
70
|
+
* Wins as Murderer
|
|
71
|
+
* @type {number}
|
|
72
|
+
*/
|
|
73
|
+
this.winsAsMurderer = data[`murderer_wins_${gamemode}`] || 0;
|
|
74
|
+
/**
|
|
75
|
+
* Wins as Hero
|
|
76
|
+
* @type {number}
|
|
77
|
+
*/
|
|
78
|
+
this.winsAsHero = data[`was_hero_${gamemode}`] || 0;
|
|
79
|
+
/**
|
|
80
|
+
* Played games
|
|
81
|
+
* @type {number}
|
|
82
|
+
*/
|
|
83
|
+
this.playedGames = data[`games_${gamemode}`] || 0;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
|
|
2
87
|
/**
|
|
3
88
|
* MurderMystery class
|
|
4
89
|
*/
|
|
@@ -12,6 +97,11 @@ class MurderMystery {
|
|
|
12
97
|
* @type {number}
|
|
13
98
|
*/
|
|
14
99
|
this.tokens = data.coins || 0;
|
|
100
|
+
/**
|
|
101
|
+
* Amount of gold picked up in games
|
|
102
|
+
* @type {number}
|
|
103
|
+
*/
|
|
104
|
+
this.goldPickedUp = data.coins_pickedup || 0;
|
|
15
105
|
/**
|
|
16
106
|
* Played games
|
|
17
107
|
* @type {number}
|
|
@@ -22,6 +112,31 @@ class MurderMystery {
|
|
|
22
112
|
* @type {number}
|
|
23
113
|
*/
|
|
24
114
|
this.kills = data.kills || 0;
|
|
115
|
+
/**
|
|
116
|
+
* Thrown Knife Kills
|
|
117
|
+
* @type {number}
|
|
118
|
+
*/
|
|
119
|
+
this.thrownKnifeKills = data.thrown_knife_kills || 0;
|
|
120
|
+
/**
|
|
121
|
+
* Knife Kills
|
|
122
|
+
* @type {number}
|
|
123
|
+
*/
|
|
124
|
+
this.knifeKills = data.knife_kills || 0;
|
|
125
|
+
/**
|
|
126
|
+
* Trap Kills
|
|
127
|
+
* @type {number}
|
|
128
|
+
*/
|
|
129
|
+
this.trapKills = data.trap_kills || 0;
|
|
130
|
+
/**
|
|
131
|
+
* Bow Kills
|
|
132
|
+
* @type {number}
|
|
133
|
+
*/
|
|
134
|
+
this.bowKills = data.bow_kills || 0;
|
|
135
|
+
/**
|
|
136
|
+
* Kills As Murderer
|
|
137
|
+
* @type {number}
|
|
138
|
+
*/
|
|
139
|
+
this.killsAsMurderer = data.kills_as_murderer || 0;
|
|
25
140
|
/**
|
|
26
141
|
* Deaths
|
|
27
142
|
* @type {number}
|
|
@@ -31,7 +146,7 @@ class MurderMystery {
|
|
|
31
146
|
* Kill/Death ratio
|
|
32
147
|
* @type {number}
|
|
33
148
|
*/
|
|
34
|
-
this.KDRatio = divide(
|
|
149
|
+
this.KDRatio = divide(this.kills, this.deaths);
|
|
35
150
|
/**
|
|
36
151
|
* Wins as Murderer
|
|
37
152
|
* @type {number}
|
|
@@ -42,52 +157,58 @@ class MurderMystery {
|
|
|
42
157
|
* @type {number}
|
|
43
158
|
*/
|
|
44
159
|
this.winsAsDetective = data.detective_wins || 0;
|
|
160
|
+
/**
|
|
161
|
+
* Wins as Hero
|
|
162
|
+
* @type {number}
|
|
163
|
+
*/
|
|
164
|
+
this.winsAsHero = data.was_hero || 0;
|
|
165
|
+
/**
|
|
166
|
+
* Fastest win as the Murderer (Time in seconds)
|
|
167
|
+
* @type {number}
|
|
168
|
+
*/
|
|
169
|
+
this.fastestWinAsMurderer = data.quickest_murderer_win_time_seconds || 0;
|
|
170
|
+
/**
|
|
171
|
+
* Fastest win as the Detective (Time in seconds)
|
|
172
|
+
* @type {number}
|
|
173
|
+
*/
|
|
174
|
+
this.fastestWinAsDetective = data.quickest_detective_win_time_seconds || 0;
|
|
175
|
+
/**
|
|
176
|
+
* Total time Survived (Time in seconds)
|
|
177
|
+
* @type {number}
|
|
178
|
+
*/
|
|
179
|
+
this.totalTimeSurvived = data.total_time_survived_seconds || 0;
|
|
45
180
|
/**
|
|
46
181
|
* Wins
|
|
47
182
|
* @type {number}
|
|
48
183
|
*/
|
|
49
184
|
this.wins = data.wins || 0;
|
|
185
|
+
/**
|
|
186
|
+
* Suicides
|
|
187
|
+
* @type {number}
|
|
188
|
+
*/
|
|
189
|
+
this.suicides = data.suicides || 0;
|
|
190
|
+
/**
|
|
191
|
+
* Classic
|
|
192
|
+
* @type {MurderMysteryModeStats}
|
|
193
|
+
*/
|
|
194
|
+
this.classic = new MurderMysteryModeStats(data, 'MURDER_CLASSIC');
|
|
50
195
|
/**
|
|
51
196
|
* Assasins
|
|
52
197
|
* @type {MurderMysteryModeStats}
|
|
53
198
|
*/
|
|
54
|
-
this.assassins =
|
|
55
|
-
kills: data.kills_MURDER_ASSASSINS || 0,
|
|
56
|
-
deaths: data.deaths_MURDER_ASSASSINS || 0,
|
|
57
|
-
KDRatio: divide(data.kills_MURDER_ASSASSINS, data.deaths_MURDER_ASSASSINS),
|
|
58
|
-
wins: data.wins_MURDER_ASSASSINS || 0,
|
|
59
|
-
playedGames: data.games_MURDER_ASSASSINS || 0
|
|
60
|
-
};
|
|
199
|
+
this.assassins = new MurderMysteryModeStats(data, 'MURDER_ASSASSINS');
|
|
61
200
|
/**
|
|
62
201
|
* Double Up
|
|
63
202
|
* @type {MurderMysteryModeStats}
|
|
64
203
|
*/
|
|
65
|
-
this.doubleUp =
|
|
66
|
-
|
|
67
|
-
deaths: data.deaths_MURDER_DOUBLE_UP || 0,
|
|
68
|
-
KDRatio: divide(data.kills_MURDER_DOUBLE_UP, data.deaths_MURDER_DOUBLE_UP),
|
|
69
|
-
wins: data.wins_MURDER_DOUBLE_UP || 0,
|
|
70
|
-
playedGames: data.games_MURDER_DOUBLE_UP || 0
|
|
71
|
-
};
|
|
204
|
+
this.doubleUp = new MurderMysteryModeStats(data, 'MURDER_DOUBLE_UP');
|
|
205
|
+
|
|
72
206
|
/**
|
|
73
207
|
* Infection
|
|
74
208
|
* @type {MurderMysteryModeStats}
|
|
75
209
|
*/
|
|
76
|
-
this.infection =
|
|
77
|
-
kills: data.kills_MURDER_INFECTION || 0,
|
|
78
|
-
deaths: data.deaths_MURDER_INFECTION || 0,
|
|
79
|
-
KDRatio: divide(data.kills_MURDER_INFECTION, data.deaths_MURDER_INFECTION),
|
|
80
|
-
wins: data.wins_MURDER_INFECTION || 0,
|
|
81
|
-
playedGames: data.games_MURDER_INFECTION || 0
|
|
82
|
-
};
|
|
210
|
+
this.infection = new MurderMysteryModeStats(data, 'MURDER_INFECTION');
|
|
83
211
|
}
|
|
84
212
|
}
|
|
85
|
-
|
|
86
|
-
* @typedef {object} MurderMysteryModeStats
|
|
87
|
-
* @property {number} kills Kills
|
|
88
|
-
* @property {number} deaths Deaths
|
|
89
|
-
* @property {number} KDRatio Kill/Death ratio
|
|
90
|
-
* @property {number} wins Wins
|
|
91
|
-
* @property {number} playedGames Played games
|
|
92
|
-
*/
|
|
213
|
+
|
|
93
214
|
module.exports = MurderMystery;
|