gw2e-account-statistics 3.16.0 → 3.17.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.
- package/build/gameData/coloredTitles.js +15 -0
- package/build/statistics/items.js +17 -4
- package/build/statistics/unlocks.js +18 -1
- package/package.json +1 -1
- package/tests/index.spec.js +4 -1
- package/tests/items.spec.js +81 -65
- package/tests/unlocks.spec.js +7 -0
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
|
|
5
|
+
var _coloredTitles = require('@gw2efficiency/game-data/titles/categories/colored-titles');
|
|
6
|
+
|
|
7
|
+
var _coloredTitles2 = _interopRequireDefault(_coloredTitles);
|
|
8
|
+
|
|
9
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
10
|
+
|
|
11
|
+
var coloredTitleIds = _coloredTitles2.default.map(function (x) {
|
|
12
|
+
return x.id;
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
exports.default = coloredTitleIds;
|
|
@@ -4,14 +4,27 @@ exports.__esModule = true;
|
|
|
4
4
|
|
|
5
5
|
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
|
|
6
6
|
|
|
7
|
-
exports.default = function (accountData) {
|
|
7
|
+
exports.default = function (accountData, extraInformation) {
|
|
8
8
|
var items = allItems(accountData);
|
|
9
|
+
var noveltyIdMap = extraInformation.novelties.idMap;
|
|
10
|
+
var accountNoveltyIds = accountData.novelties || [];
|
|
11
|
+
Object.entries(noveltyIdMap).forEach(function (_ref) {
|
|
12
|
+
var noveltyId = _ref[0],
|
|
13
|
+
unlockItemId = _ref[1];
|
|
14
|
+
|
|
15
|
+
if (accountNoveltyIds.includes(Number(noveltyId))) {
|
|
16
|
+
var existingItem = items.find(function (item) {
|
|
17
|
+
return item.id === unlockItemId[0];
|
|
18
|
+
});
|
|
19
|
+
existingItem ? existingItem.count++ : items.push({ id: unlockItemId[0], count: 1 });
|
|
20
|
+
}
|
|
21
|
+
});
|
|
9
22
|
|
|
10
23
|
var auraItems = Object.entries(_cosmeticAuras2.default).map(function (entry) {
|
|
11
24
|
return [entry[0], countItems(items, entry[1])];
|
|
12
|
-
}).reduce(function (object,
|
|
13
|
-
var key =
|
|
14
|
-
value =
|
|
25
|
+
}).reduce(function (object, _ref2) {
|
|
26
|
+
var key = _ref2[0],
|
|
27
|
+
value = _ref2[1];
|
|
15
28
|
|
|
16
29
|
object[key] = value;
|
|
17
30
|
return object;
|
|
@@ -36,7 +36,8 @@ exports.default = function (accountData, extraInformation) {
|
|
|
36
36
|
_pristineFractalRelicsFromTitles: pristineFractalRelicsFromTitles(accountData),
|
|
37
37
|
_unstableFractalEssenceFromUnlocks: unstableFractalEssenceFromUnlocks(accountData),
|
|
38
38
|
aureneLegendaryVariantSkins: aureneLegendaryVariantSkins(accountData),
|
|
39
|
-
suffusedObsidianArmorSkins: suffusedObsidianArmorSkins(accountData)
|
|
39
|
+
suffusedObsidianArmorSkins: suffusedObsidianArmorSkins(accountData),
|
|
40
|
+
coloredTitleCount: coloredTitleCount(accountData)
|
|
40
41
|
};
|
|
41
42
|
};
|
|
42
43
|
|
|
@@ -64,6 +65,10 @@ var _suffusedObsidianArmors = require('../gameData/suffusedObsidianArmors');
|
|
|
64
65
|
|
|
65
66
|
var _suffusedObsidianArmors2 = _interopRequireDefault(_suffusedObsidianArmors);
|
|
66
67
|
|
|
68
|
+
var _coloredTitles = require('../gameData/coloredTitles');
|
|
69
|
+
|
|
70
|
+
var _coloredTitles2 = _interopRequireDefault(_coloredTitles);
|
|
71
|
+
|
|
67
72
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
68
73
|
|
|
69
74
|
// The unlocked dyes on the account
|
|
@@ -202,6 +207,18 @@ function titleCount(accountData) {
|
|
|
202
207
|
return accountData.titles.length;
|
|
203
208
|
}
|
|
204
209
|
|
|
210
|
+
function coloredTitleCount(accountData) {
|
|
211
|
+
if (!accountData.titles) {
|
|
212
|
+
return null;
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
var titleCount = _coloredTitles2.default.filter(function (x) {
|
|
216
|
+
return accountData.titles.includes(x);
|
|
217
|
+
}).length;
|
|
218
|
+
|
|
219
|
+
return titleCount;
|
|
220
|
+
}
|
|
221
|
+
|
|
205
222
|
// The unlocked recipes on the account
|
|
206
223
|
function recipeCount(accountData) {
|
|
207
224
|
if (!accountData.recipes) {
|
package/package.json
CHANGED
package/tests/index.spec.js
CHANGED
|
@@ -6,7 +6,10 @@ describe('statistics', () => {
|
|
|
6
6
|
it('can calculate all statistics', () => {
|
|
7
7
|
const statistics = accountStatistics(
|
|
8
8
|
{},
|
|
9
|
-
{
|
|
9
|
+
{
|
|
10
|
+
skins: { typeMap: { Armor: [], Weapon: [], Back: [] } },
|
|
11
|
+
novelties: { idMap: {} }
|
|
12
|
+
}
|
|
10
13
|
)
|
|
11
14
|
|
|
12
15
|
expect(statistics).to.contain.all.keys([
|
package/tests/items.spec.js
CHANGED
|
@@ -11,7 +11,23 @@ const generateAccount = (items) => {
|
|
|
11
11
|
bags: [
|
|
12
12
|
{inventory: items.slice(1)}
|
|
13
13
|
]
|
|
14
|
-
}]
|
|
14
|
+
}],
|
|
15
|
+
novelties: [1]
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
const EXTRA_INFO = {
|
|
20
|
+
novelties: {
|
|
21
|
+
idMap: {
|
|
22
|
+
1: [88124],
|
|
23
|
+
2: [36174]
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
const EMPTY_EXTRA_INFO = {
|
|
29
|
+
novelties: {
|
|
30
|
+
idMap: {}
|
|
15
31
|
}
|
|
16
32
|
}
|
|
17
33
|
|
|
@@ -164,13 +180,13 @@ describe('statistics > items', () => {
|
|
|
164
180
|
}
|
|
165
181
|
|
|
166
182
|
const bothPermissions = {bank: null, characters: null}
|
|
167
|
-
expect(itemsStatistics(bothPermissions)).to.deep.equal(emptyObject)
|
|
183
|
+
expect(itemsStatistics(bothPermissions, EMPTY_EXTRA_INFO)).to.deep.equal(emptyObject)
|
|
168
184
|
|
|
169
185
|
const inventoriesPermission = {bank: null, characters: [{name: 'Yo'}]}
|
|
170
|
-
expect(itemsStatistics(inventoriesPermission)).to.deep.equal(emptyObject)
|
|
186
|
+
expect(itemsStatistics(inventoriesPermission, EMPTY_EXTRA_INFO)).to.deep.equal(emptyObject)
|
|
171
187
|
|
|
172
188
|
const charactersPermission = {bank: [{id: 30687}], characters: null}
|
|
173
|
-
expect(itemsStatistics(charactersPermission)).to.deep.equal(emptyObject)
|
|
189
|
+
expect(itemsStatistics(charactersPermission, EMPTY_EXTRA_INFO)).to.deep.equal(emptyObject)
|
|
174
190
|
})
|
|
175
191
|
|
|
176
192
|
it('can calculate legendary count', () => {
|
|
@@ -191,7 +207,7 @@ describe('statistics > items', () => {
|
|
|
191
207
|
|
|
192
208
|
account.legendaryarmory = [{id: 80205, count: 2}] // 5 + 6
|
|
193
209
|
|
|
194
|
-
expect(itemsStatistics(account).legendaryItems).to.equal(6)
|
|
210
|
+
expect(itemsStatistics(account, EXTRA_INFO).legendaryItems).to.equal(6)
|
|
195
211
|
})
|
|
196
212
|
|
|
197
213
|
it('can calculate legendary weapon count', () => {
|
|
@@ -202,7 +218,7 @@ describe('statistics > items', () => {
|
|
|
202
218
|
{id: 1, count: 1},
|
|
203
219
|
{id: 7, count: 1},
|
|
204
220
|
{id: 77474, count: 1}
|
|
205
|
-
])).legendaryItemsWeapon).to.equal(2)
|
|
221
|
+
]), EXTRA_INFO).legendaryItemsWeapon).to.equal(2)
|
|
206
222
|
})
|
|
207
223
|
|
|
208
224
|
it('can calculate legendary armor count', () => {
|
|
@@ -213,7 +229,7 @@ describe('statistics > items', () => {
|
|
|
213
229
|
{id: 1, count: 1},
|
|
214
230
|
{id: 7, count: 1},
|
|
215
231
|
{id: 77474, count: 1}
|
|
216
|
-
])).legendaryItemsArmor).to.equal(2)
|
|
232
|
+
]), EXTRA_INFO).legendaryItemsArmor).to.equal(2)
|
|
217
233
|
})
|
|
218
234
|
|
|
219
235
|
it('can calculate legendary back count', () => {
|
|
@@ -224,7 +240,7 @@ describe('statistics > items', () => {
|
|
|
224
240
|
{id: 1, count: 1},
|
|
225
241
|
{id: 30704, count: 1},
|
|
226
242
|
{id: 77474, count: 1}
|
|
227
|
-
])).legendaryItemsBack).to.equal(2)
|
|
243
|
+
]), EXTRA_INFO).legendaryItemsBack).to.equal(2)
|
|
228
244
|
})
|
|
229
245
|
|
|
230
246
|
it('can calculate legendary trinket count', () => {
|
|
@@ -235,7 +251,7 @@ describe('statistics > items', () => {
|
|
|
235
251
|
{id: 1, count: 1},
|
|
236
252
|
{id: 81908, count: 1},
|
|
237
253
|
{id: 77474, count: 1}
|
|
238
|
-
])).legendaryItemsTrinket).to.equal(1)
|
|
254
|
+
]), EXTRA_INFO).legendaryItemsTrinket).to.equal(1)
|
|
239
255
|
})
|
|
240
256
|
|
|
241
257
|
it('can calculate fractal tonic count', () => {
|
|
@@ -245,7 +261,7 @@ describe('statistics > items', () => {
|
|
|
245
261
|
{id: 71383, count: 1},
|
|
246
262
|
{id: 49277, count: 1},
|
|
247
263
|
{id: 49277, count: 1}
|
|
248
|
-
])).fractalTonics).to.equal(3)
|
|
264
|
+
]), EXTRA_INFO).fractalTonics).to.equal(3)
|
|
249
265
|
})
|
|
250
266
|
|
|
251
267
|
it('can calculate legendary insight count', () => {
|
|
@@ -301,7 +317,7 @@ describe('statistics > items', () => {
|
|
|
301
317
|
|
|
302
318
|
function countFromList (itemList) {
|
|
303
319
|
const account = generateAccount(itemList.map(id => ({id, count: 1})))
|
|
304
|
-
return itemsStatistics(account)._legendaryInsightsFromItems
|
|
320
|
+
return itemsStatistics(account, EXTRA_INFO)._legendaryInsightsFromItems
|
|
305
321
|
}
|
|
306
322
|
|
|
307
323
|
// Count the basic items
|
|
@@ -309,7 +325,7 @@ describe('statistics > items', () => {
|
|
|
309
325
|
{id: 80516, count: 3}, // Envoy Insignia => 25 each
|
|
310
326
|
{id: 78989, count: 1}, // Gift of Prowess => 25 each
|
|
311
327
|
{id: 77302, count: 7} // Legendary Insight => 1 each
|
|
312
|
-
]))._legendaryInsightsFromItems, 'basic items').to.equal(3 * 25 + 25 + 7)
|
|
328
|
+
]), EXTRA_INFO)._legendaryInsightsFromItems, 'basic items').to.equal(3 * 25 + 25 + 7)
|
|
313
329
|
|
|
314
330
|
// Count the full first ascended set (from the achievement, so no LI spent)
|
|
315
331
|
const oneWeightAscendedSet = [
|
|
@@ -407,7 +423,7 @@ describe('statistics > items', () => {
|
|
|
407
423
|
{id: 71383, count: 1},
|
|
408
424
|
{id: 78978, count: 1},
|
|
409
425
|
{id: 78978, count: 1}
|
|
410
|
-
])).whiteMantlePortalDevices).to.equal(3)
|
|
426
|
+
]), EXTRA_INFO).whiteMantlePortalDevices).to.equal(3)
|
|
411
427
|
})
|
|
412
428
|
|
|
413
429
|
it('can calculate chak egg sack count', () => {
|
|
@@ -417,7 +433,7 @@ describe('statistics > items', () => {
|
|
|
417
433
|
{id: 71383, count: 1},
|
|
418
434
|
{id: 72021, count: 1},
|
|
419
435
|
{id: 72021, count: 1}
|
|
420
|
-
])).chakEggSacks).to.equal(3)
|
|
436
|
+
]), EXTRA_INFO).chakEggSacks).to.equal(3)
|
|
421
437
|
})
|
|
422
438
|
|
|
423
439
|
it('can calculate preserved queen bee count', () => {
|
|
@@ -427,7 +443,7 @@ describe('statistics > items', () => {
|
|
|
427
443
|
{id: 71383, count: 1},
|
|
428
444
|
{id: 68440, count: 1},
|
|
429
445
|
{id: 68440, count: 1}
|
|
430
|
-
])).preservedQueenBees).to.equal(3)
|
|
446
|
+
]), EXTRA_INFO).preservedQueenBees).to.equal(3)
|
|
431
447
|
})
|
|
432
448
|
|
|
433
449
|
it('can calculate ghostly infusion count', () => {
|
|
@@ -437,7 +453,7 @@ describe('statistics > items', () => {
|
|
|
437
453
|
{id: 71383, count: 1},
|
|
438
454
|
{id: 77316, count: 1},
|
|
439
455
|
{id: 77394, count: 1}
|
|
440
|
-
])).ghostlyInfusions).to.equal(3)
|
|
456
|
+
]), EXTRA_INFO).ghostlyInfusions).to.equal(3)
|
|
441
457
|
})
|
|
442
458
|
|
|
443
459
|
it('can calculate bauble infusion count', () => {
|
|
@@ -447,7 +463,7 @@ describe('statistics > items', () => {
|
|
|
447
463
|
{id: 71383, count: 1},
|
|
448
464
|
{id: 78028, count: 1},
|
|
449
465
|
{id: 78097, count: 1}
|
|
450
|
-
])).baubleInfusions).to.equal(3)
|
|
466
|
+
]), EXTRA_INFO).baubleInfusions).to.equal(3)
|
|
451
467
|
})
|
|
452
468
|
|
|
453
469
|
it('can calculate luminescent refractor count', () => {
|
|
@@ -457,7 +473,7 @@ describe('statistics > items', () => {
|
|
|
457
473
|
{id: 71383, count: 1},
|
|
458
474
|
{id: 67370, count: 1},
|
|
459
475
|
{id: 67372, count: 1}
|
|
460
|
-
])).luminescentRefractors).to.equal(3)
|
|
476
|
+
]), EXTRA_INFO).luminescentRefractors).to.equal(3)
|
|
461
477
|
})
|
|
462
478
|
|
|
463
479
|
it('can calculate broken spoon count', () => {
|
|
@@ -467,7 +483,7 @@ describe('statistics > items', () => {
|
|
|
467
483
|
{id: 71383, count: 1},
|
|
468
484
|
{id: 74996, count: 1},
|
|
469
485
|
{id: 74996, count: 1}
|
|
470
|
-
])).brokenSpoons).to.equal(3)
|
|
486
|
+
]), EXTRA_INFO).brokenSpoons).to.equal(3)
|
|
471
487
|
})
|
|
472
488
|
|
|
473
489
|
it('can calculate black lion claim ticket count', () => {
|
|
@@ -477,13 +493,13 @@ describe('statistics > items', () => {
|
|
|
477
493
|
{id: 71383, count: 1},
|
|
478
494
|
{id: 43998, count: 3},
|
|
479
495
|
{id: 43998, count: 1}
|
|
480
|
-
])).blackLionClaimTickets).to.equal(1.4)
|
|
496
|
+
]), EXTRA_INFO).blackLionClaimTickets).to.equal(1.4)
|
|
481
497
|
|
|
482
498
|
expect(itemsStatistics(generateAccount([
|
|
483
499
|
{id: 43992, count: 3},
|
|
484
500
|
{id: 30687, count: 1},
|
|
485
501
|
{id: 43998, count: 164}
|
|
486
|
-
])).blackLionClaimTickets).to.equal(19.4)
|
|
502
|
+
]), EXTRA_INFO).blackLionClaimTickets).to.equal(19.4)
|
|
487
503
|
})
|
|
488
504
|
|
|
489
505
|
it('can calculate instrument count', () => {
|
|
@@ -493,7 +509,7 @@ describe('statistics > items', () => {
|
|
|
493
509
|
{id: 71383, count: 1},
|
|
494
510
|
{id: 38129, count: 1}, // This is a container and does not count
|
|
495
511
|
{id: 43526, count: 1}
|
|
496
|
-
])).instruments).to.equal(2)
|
|
512
|
+
]), EXTRA_INFO).instruments).to.equal(2)
|
|
497
513
|
})
|
|
498
514
|
|
|
499
515
|
it('can calculate fish items count', () => {
|
|
@@ -503,7 +519,7 @@ describe('statistics > items', () => {
|
|
|
503
519
|
{id: 82432, count: 1},
|
|
504
520
|
{id: 97409, count: 1},
|
|
505
521
|
{id: 83826, count: 1}
|
|
506
|
-
]))
|
|
522
|
+
]), EXTRA_INFO)
|
|
507
523
|
|
|
508
524
|
expect(_statistics.fishItems).to.equal(3)
|
|
509
525
|
expect(_statistics.fishItemsLegendary).to.equal(2)
|
|
@@ -518,7 +534,7 @@ describe('statistics > items', () => {
|
|
|
518
534
|
{id: 82432, count: 1},
|
|
519
535
|
{id: 38129, count: 1},
|
|
520
536
|
{id: 83826, count: 1}
|
|
521
|
-
])).musicBoxes).to.equal(2)
|
|
537
|
+
]), EXTRA_INFO).musicBoxes).to.equal(2)
|
|
522
538
|
})
|
|
523
539
|
|
|
524
540
|
it('can calculate permanent tool count', () => {
|
|
@@ -528,7 +544,7 @@ describe('statistics > items', () => {
|
|
|
528
544
|
{id: 71383, count: 1},
|
|
529
545
|
{id: 38129, count: 1},
|
|
530
546
|
{id: 47897, count: 1}
|
|
531
|
-
])).permanentTools).to.equal(2)
|
|
547
|
+
]), EXTRA_INFO).permanentTools).to.equal(2)
|
|
532
548
|
})
|
|
533
549
|
|
|
534
550
|
it('can calculate chak egg count', () => {
|
|
@@ -538,7 +554,7 @@ describe('statistics > items', () => {
|
|
|
538
554
|
{id: 71383, count: 1},
|
|
539
555
|
{id: 72205, count: 1},
|
|
540
556
|
{id: 72205, count: 1}
|
|
541
|
-
])).chakEggs).to.equal(3)
|
|
557
|
+
]), EXTRA_INFO).chakEggs).to.equal(3)
|
|
542
558
|
})
|
|
543
559
|
|
|
544
560
|
it('can calculate reclaimed metal plate count', () => {
|
|
@@ -548,7 +564,7 @@ describe('statistics > items', () => {
|
|
|
548
564
|
{id: 71383, count: 1},
|
|
549
565
|
{id: 74356, count: 1},
|
|
550
566
|
{id: 74356, count: 1}
|
|
551
|
-
])).reclaimedMetalPlates).to.equal(3)
|
|
567
|
+
]), EXTRA_INFO).reclaimedMetalPlates).to.equal(3)
|
|
552
568
|
})
|
|
553
569
|
|
|
554
570
|
it('can calculate fossilized insects count', () => {
|
|
@@ -558,7 +574,7 @@ describe('statistics > items', () => {
|
|
|
558
574
|
{id: 71383, count: 1},
|
|
559
575
|
{id: 66646, count: 1},
|
|
560
576
|
{id: 66642, count: 1}
|
|
561
|
-
])).fossilizedInsects).to.equal(3)
|
|
577
|
+
]), EXTRA_INFO).fossilizedInsects).to.equal(3)
|
|
562
578
|
})
|
|
563
579
|
|
|
564
580
|
it('can calculate champion bag count', () => {
|
|
@@ -568,7 +584,7 @@ describe('statistics > items', () => {
|
|
|
568
584
|
{id: 71383, count: 1},
|
|
569
585
|
{id: 44226, count: 1},
|
|
570
586
|
{id: 44199, count: 250}
|
|
571
|
-
])).championBags).to.equal(252)
|
|
587
|
+
]), EXTRA_INFO).championBags).to.equal(252)
|
|
572
588
|
})
|
|
573
589
|
|
|
574
590
|
it('can calculate triple trouble chest count', () => {
|
|
@@ -578,7 +594,7 @@ describe('statistics > items', () => {
|
|
|
578
594
|
{id: 71383, count: 1},
|
|
579
595
|
{id: 49664, count: 1},
|
|
580
596
|
{id: 49664, count: 250}
|
|
581
|
-
])).tripleTroubleChests).to.equal(252)
|
|
597
|
+
]), EXTRA_INFO).tripleTroubleChests).to.equal(252)
|
|
582
598
|
})
|
|
583
599
|
|
|
584
600
|
it('can calculate tequatl chest count', () => {
|
|
@@ -588,7 +604,7 @@ describe('statistics > items', () => {
|
|
|
588
604
|
{id: 71383, count: 1},
|
|
589
605
|
{id: 47836, count: 1},
|
|
590
606
|
{id: 47836, count: 250}
|
|
591
|
-
])).tequatlChests).to.equal(252)
|
|
607
|
+
]), EXTRA_INFO).tequatlChests).to.equal(252)
|
|
592
608
|
})
|
|
593
609
|
|
|
594
610
|
it('can calculate unique tonic count', () => {
|
|
@@ -599,7 +615,7 @@ describe('statistics > items', () => {
|
|
|
599
615
|
{id: 66926, count: 1},
|
|
600
616
|
{id: 5, count: 250},
|
|
601
617
|
{id: 68046, count: 100}
|
|
602
|
-
])).uniqueTonics).to.equal(2)
|
|
618
|
+
]), EXTRA_INFO).uniqueTonics).to.equal(2)
|
|
603
619
|
})
|
|
604
620
|
|
|
605
621
|
it('can calculate blood ruby count', () => {
|
|
@@ -609,7 +625,7 @@ describe('statistics > items', () => {
|
|
|
609
625
|
{id: 71383, count: 1},
|
|
610
626
|
{id: 79280, count: 1},
|
|
611
627
|
{id: 79280, count: 250}
|
|
612
|
-
])).bloodRubies).to.equal(252)
|
|
628
|
+
]), EXTRA_INFO).bloodRubies).to.equal(252)
|
|
613
629
|
})
|
|
614
630
|
|
|
615
631
|
it('can calculate petrified wood count', () => {
|
|
@@ -619,7 +635,7 @@ describe('statistics > items', () => {
|
|
|
619
635
|
{id: 71383, count: 1},
|
|
620
636
|
{id: 79469, count: 1},
|
|
621
637
|
{id: 79469, count: 250}
|
|
622
|
-
])).petrifiedWood).to.equal(252)
|
|
638
|
+
]), EXTRA_INFO).petrifiedWood).to.equal(252)
|
|
623
639
|
})
|
|
624
640
|
|
|
625
641
|
it('can calculate tomes of knowledge count', () => {
|
|
@@ -629,7 +645,7 @@ describe('statistics > items', () => {
|
|
|
629
645
|
{id: 71383, count: 1},
|
|
630
646
|
{id: 43741, count: 1},
|
|
631
647
|
{id: 43766, count: 250}
|
|
632
|
-
])).tomesOfKnowledge).to.equal(252)
|
|
648
|
+
]), EXTRA_INFO).tomesOfKnowledge).to.equal(252)
|
|
633
649
|
})
|
|
634
650
|
|
|
635
651
|
it('can calculate permanent contract count', () => {
|
|
@@ -639,7 +655,7 @@ describe('statistics > items', () => {
|
|
|
639
655
|
{id: 71383, count: 1},
|
|
640
656
|
{id: 35984, count: 1},
|
|
641
657
|
{id: 49501, count: 1}
|
|
642
|
-
])).permanentContracts).to.equal(3)
|
|
658
|
+
]), EXTRA_INFO).permanentContracts).to.equal(3)
|
|
643
659
|
})
|
|
644
660
|
|
|
645
661
|
it('can calculate fresh winterberry count', () => {
|
|
@@ -649,7 +665,7 @@ describe('statistics > items', () => {
|
|
|
649
665
|
{id: 79899, count: 1},
|
|
650
666
|
{id: 79899, count: 1},
|
|
651
667
|
{id: 49501, count: 1}
|
|
652
|
-
])).freshWinterberries).to.equal(4)
|
|
668
|
+
]), EXTRA_INFO).freshWinterberries).to.equal(4)
|
|
653
669
|
})
|
|
654
670
|
|
|
655
671
|
it('can calculate winter\' heart infusion count', () => {
|
|
@@ -659,7 +675,7 @@ describe('statistics > items', () => {
|
|
|
659
675
|
{id: 79959, count: 1},
|
|
660
676
|
{id: 79899, count: 1},
|
|
661
677
|
{id: 49501, count: 1}
|
|
662
|
-
])).wintersHeartInfusions).to.equal(2)
|
|
678
|
+
]), EXTRA_INFO).wintersHeartInfusions).to.equal(2)
|
|
663
679
|
})
|
|
664
680
|
|
|
665
681
|
it('can calculate kodas warmth enrichment count', () => {
|
|
@@ -669,7 +685,7 @@ describe('statistics > items', () => {
|
|
|
669
685
|
{id: 79926, count: 1},
|
|
670
686
|
{id: 79899, count: 1},
|
|
671
687
|
{id: 49501, count: 1}
|
|
672
|
-
])).kodasWarmthEnrichment).to.equal(1)
|
|
688
|
+
]), EXTRA_INFO).kodasWarmthEnrichment).to.equal(1)
|
|
673
689
|
})
|
|
674
690
|
|
|
675
691
|
it('can calculate phospholuminescent infusions count', () => {
|
|
@@ -679,7 +695,7 @@ describe('statistics > items', () => {
|
|
|
679
695
|
{id: 79653, count: 1},
|
|
680
696
|
{id: 79899, count: 1},
|
|
681
697
|
{id: 49501, count: 1}
|
|
682
|
-
])).phospholuminescentInfusions).to.equal(1)
|
|
698
|
+
]), EXTRA_INFO).phospholuminescentInfusions).to.equal(1)
|
|
683
699
|
})
|
|
684
700
|
|
|
685
701
|
it('can calculate liquid aurillium count', () => {
|
|
@@ -689,7 +705,7 @@ describe('statistics > items', () => {
|
|
|
689
705
|
{id: 79653, count: 1},
|
|
690
706
|
{id: 79899, count: 1},
|
|
691
707
|
{id: 49501, count: 1}
|
|
692
|
-
])).liquidAurillium).to.equal(3)
|
|
708
|
+
]), EXTRA_INFO).liquidAurillium).to.equal(3)
|
|
693
709
|
})
|
|
694
710
|
|
|
695
711
|
it('can calculate celestial infusion count', () => {
|
|
@@ -699,7 +715,7 @@ describe('statistics > items', () => {
|
|
|
699
715
|
{id: 79653, count: 1},
|
|
700
716
|
{id: 79899, count: 1},
|
|
701
717
|
{id: 49501, count: 1}
|
|
702
|
-
])).celestialInfusion).to.equal(3)
|
|
718
|
+
]), EXTRA_INFO).celestialInfusion).to.equal(3)
|
|
703
719
|
})
|
|
704
720
|
|
|
705
721
|
it('can calculate gemstore toys count', () => {
|
|
@@ -709,7 +725,7 @@ describe('statistics > items', () => {
|
|
|
709
725
|
{id: 49939, count: 1},
|
|
710
726
|
{id: 79899, count: 1},
|
|
711
727
|
{id: 49501, count: 1}
|
|
712
|
-
])).gemstoreToys).to.equal(1
|
|
728
|
+
]), EXTRA_INFO).gemstoreToys).to.equal(2) // 1 extra comes from EXTRA_INFO
|
|
713
729
|
})
|
|
714
730
|
|
|
715
731
|
it('can calculate black lion miniature claim tickets count', () => {
|
|
@@ -719,7 +735,7 @@ describe('statistics > items', () => {
|
|
|
719
735
|
{id: 78474, count: 1},
|
|
720
736
|
{id: 79899, count: 1},
|
|
721
737
|
{id: 49501, count: 1}
|
|
722
|
-
])).blackLionMiniatureClaimTickets).to.equal(3)
|
|
738
|
+
]), EXTRA_INFO).blackLionMiniatureClaimTickets).to.equal(3)
|
|
723
739
|
})
|
|
724
740
|
|
|
725
741
|
it('can calculate jade shards count', () => {
|
|
@@ -729,7 +745,7 @@ describe('statistics > items', () => {
|
|
|
729
745
|
{id: 78474, count: 1},
|
|
730
746
|
{id: 80332, count: 1},
|
|
731
747
|
{id: 49501, count: 1}
|
|
732
|
-
])).jadeShards).to.equal(3)
|
|
748
|
+
]), EXTRA_INFO).jadeShards).to.equal(3)
|
|
733
749
|
})
|
|
734
750
|
|
|
735
751
|
it('can calculate gifts of exploration count', () => {
|
|
@@ -739,7 +755,7 @@ describe('statistics > items', () => {
|
|
|
739
755
|
{id: 78474, count: 1},
|
|
740
756
|
{id: 19677, count: 1},
|
|
741
757
|
{id: 49501, count: 1}
|
|
742
|
-
])).giftsOfExploration).to.equal(3)
|
|
758
|
+
]), EXTRA_INFO).giftsOfExploration).to.equal(3)
|
|
743
759
|
})
|
|
744
760
|
|
|
745
761
|
it('can calculate gifts of battle count', () => {
|
|
@@ -749,7 +765,7 @@ describe('statistics > items', () => {
|
|
|
749
765
|
{id: 78474, count: 1},
|
|
750
766
|
{id: 19678, count: 1},
|
|
751
767
|
{id: 49501, count: 1}
|
|
752
|
-
])).giftsOfBattle).to.equal(3)
|
|
768
|
+
]), EXTRA_INFO).giftsOfBattle).to.equal(3)
|
|
753
769
|
})
|
|
754
770
|
|
|
755
771
|
it('can calculate dragonite ore count', () => {
|
|
@@ -759,7 +775,7 @@ describe('statistics > items', () => {
|
|
|
759
775
|
{id: 78474, count: 1},
|
|
760
776
|
{id: 19677, count: 1},
|
|
761
777
|
{id: 46732, count: 4}
|
|
762
|
-
])).dragoniteOre).to.equal(422)
|
|
778
|
+
]), EXTRA_INFO).dragoniteOre).to.equal(422)
|
|
763
779
|
})
|
|
764
780
|
|
|
765
781
|
it('can calculate bloodstone dust count', () => {
|
|
@@ -769,7 +785,7 @@ describe('statistics > items', () => {
|
|
|
769
785
|
{id: 78474, count: 1},
|
|
770
786
|
{id: 19677, count: 1},
|
|
771
787
|
{id: 46730, count: 4}
|
|
772
|
-
])).bloodstoneDust).to.equal(422)
|
|
788
|
+
]), EXTRA_INFO).bloodstoneDust).to.equal(422)
|
|
773
789
|
})
|
|
774
790
|
|
|
775
791
|
it('can calculate empyreal fragments count', () => {
|
|
@@ -779,7 +795,7 @@ describe('statistics > items', () => {
|
|
|
779
795
|
{id: 78474, count: 1},
|
|
780
796
|
{id: 19677, count: 1},
|
|
781
797
|
{id: 46734, count: 4}
|
|
782
|
-
])).empyrealFragments).to.equal(422)
|
|
798
|
+
]), EXTRA_INFO).empyrealFragments).to.equal(422)
|
|
783
799
|
})
|
|
784
800
|
|
|
785
801
|
it('can calculate crystalline ore count', () => {
|
|
@@ -789,7 +805,7 @@ describe('statistics > items', () => {
|
|
|
789
805
|
{id: 78474, count: 1},
|
|
790
806
|
{id: 19677, count: 1},
|
|
791
807
|
{id: 46683, count: 4}
|
|
792
|
-
])).crystallineOre).to.equal(26)
|
|
808
|
+
]), EXTRA_INFO).crystallineOre).to.equal(26)
|
|
793
809
|
})
|
|
794
810
|
|
|
795
811
|
it('can calculate airship oil count', () => {
|
|
@@ -799,7 +815,7 @@ describe('statistics > items', () => {
|
|
|
799
815
|
{id: 78474, count: 1},
|
|
800
816
|
{id: 76933, count: 1},
|
|
801
817
|
{id: 69434, count: 4}
|
|
802
|
-
])).airshipOil).to.equal(5)
|
|
818
|
+
]), EXTRA_INFO).airshipOil).to.equal(5)
|
|
803
819
|
})
|
|
804
820
|
|
|
805
821
|
it('can calculate auric dust count', () => {
|
|
@@ -809,7 +825,7 @@ describe('statistics > items', () => {
|
|
|
809
825
|
{id: 73537, count: 1},
|
|
810
826
|
{id: 76933, count: 1},
|
|
811
827
|
{id: 69434, count: 4}
|
|
812
|
-
])).auricDust).to.equal(53)
|
|
828
|
+
]), EXTRA_INFO).auricDust).to.equal(53)
|
|
813
829
|
})
|
|
814
830
|
|
|
815
831
|
it('can calculate ley line sparks count', () => {
|
|
@@ -819,7 +835,7 @@ describe('statistics > items', () => {
|
|
|
819
835
|
{id: 76933, count: 1},
|
|
820
836
|
{id: 74042, count: 1},
|
|
821
837
|
{id: 69434, count: 4}
|
|
822
|
-
])).leyLineSparks).to.equal(24)
|
|
838
|
+
]), EXTRA_INFO).leyLineSparks).to.equal(24)
|
|
823
839
|
})
|
|
824
840
|
|
|
825
841
|
it('can calculate legendary spikes count', () => {
|
|
@@ -829,7 +845,7 @@ describe('statistics > items', () => {
|
|
|
829
845
|
{id: 76933, count: 1},
|
|
830
846
|
{id: 74042, count: 1},
|
|
831
847
|
{id: 69434, count: 4}
|
|
832
|
-
])).legendarySpikes).to.equal(22)
|
|
848
|
+
]), EXTRA_INFO).legendarySpikes).to.equal(22)
|
|
833
849
|
})
|
|
834
850
|
|
|
835
851
|
it('can calculate fire orchid blossoms count', () => {
|
|
@@ -839,7 +855,7 @@ describe('statistics > items', () => {
|
|
|
839
855
|
{id: 81127, count: 1},
|
|
840
856
|
{id: 74042, count: 1},
|
|
841
857
|
{id: 81127, count: 4}
|
|
842
|
-
])).fireOrchidBlossoms).to.equal(5)
|
|
858
|
+
]), EXTRA_INFO).fireOrchidBlossoms).to.equal(5)
|
|
843
859
|
})
|
|
844
860
|
|
|
845
861
|
it('can calculate orrian peal count', () => {
|
|
@@ -849,7 +865,7 @@ describe('statistics > items', () => {
|
|
|
849
865
|
{id: 81706, count: 1},
|
|
850
866
|
{id: 74042, count: 1},
|
|
851
867
|
{id: 81706, count: 4}
|
|
852
|
-
])).orrianPearls).to.equal(5)
|
|
868
|
+
]), EXTRA_INFO).orrianPearls).to.equal(5)
|
|
853
869
|
})
|
|
854
870
|
|
|
855
871
|
it('can calculate luck', () => {
|
|
@@ -864,7 +880,7 @@ describe('statistics > items', () => {
|
|
|
864
880
|
{id: 45178, count: 3}, // 600
|
|
865
881
|
{id: 45179, count: 1}, // 500
|
|
866
882
|
{id: 45179, count: 7} // 3500
|
|
867
|
-
]))._luckFromItems).to.equal(5810)
|
|
883
|
+
]), EXTRA_INFO)._luckFromItems).to.equal(5810)
|
|
868
884
|
})
|
|
869
885
|
|
|
870
886
|
it('can calculate kralkatite ore', () => {
|
|
@@ -879,7 +895,7 @@ describe('statistics > items', () => {
|
|
|
879
895
|
{id: 45178, count: 3},
|
|
880
896
|
{id: 86069, count: 1},
|
|
881
897
|
{id: 45179, count: 7}
|
|
882
|
-
])).kralkatiteOre).to.equal(5)
|
|
898
|
+
]), EXTRA_INFO).kralkatiteOre).to.equal(5)
|
|
883
899
|
})
|
|
884
900
|
|
|
885
901
|
it('can calculate festive confetti infusions', () => {
|
|
@@ -894,7 +910,7 @@ describe('statistics > items', () => {
|
|
|
894
910
|
{id: 45178, count: 1},
|
|
895
911
|
{id: 84882, count: 1},
|
|
896
912
|
{id: 84882, count: 1}
|
|
897
|
-
])).festiveConfettiInfusions).to.equal(4)
|
|
913
|
+
]), EXTRA_INFO).festiveConfettiInfusions).to.equal(4)
|
|
898
914
|
})
|
|
899
915
|
|
|
900
916
|
it('can calculate potions of pvp reward', () => {
|
|
@@ -909,7 +925,7 @@ describe('statistics > items', () => {
|
|
|
909
925
|
{id: 45178, count: 1},
|
|
910
926
|
{id: 84882, count: 1},
|
|
911
927
|
{id: 84882, count: 1}
|
|
912
|
-
])).potionOfPvpRewards).to.equal(2)
|
|
928
|
+
]), EXTRA_INFO).potionOfPvpRewards).to.equal(2)
|
|
913
929
|
})
|
|
914
930
|
|
|
915
931
|
it('can calculate potions of wvw reward', () => {
|
|
@@ -924,7 +940,7 @@ describe('statistics > items', () => {
|
|
|
924
940
|
{id: 78600, count: 1},
|
|
925
941
|
{id: 84882, count: 1},
|
|
926
942
|
{id: 84882, count: 1}
|
|
927
|
-
])).potionOfWvwRewards).to.equal(2)
|
|
943
|
+
]), EXTRA_INFO).potionOfWvwRewards).to.equal(2)
|
|
928
944
|
})
|
|
929
945
|
|
|
930
946
|
it('can calculate skirmish chests', () => {
|
|
@@ -939,7 +955,7 @@ describe('statistics > items', () => {
|
|
|
939
955
|
{id: 81324, count: 1},
|
|
940
956
|
{id: 84882, count: 1},
|
|
941
957
|
{id: 84882, count: 1}
|
|
942
|
-
])).skirmishChests).to.equal(2)
|
|
958
|
+
]), EXTRA_INFO).skirmishChests).to.equal(2)
|
|
943
959
|
})
|
|
944
960
|
|
|
945
961
|
it('can calculate unstable fractal essence', () => {
|
|
@@ -955,7 +971,7 @@ describe('statistics > items', () => {
|
|
|
955
971
|
{id: 94055, count: 1}, // Endless Inner Demon Combat Tonic
|
|
956
972
|
|
|
957
973
|
{id: 81761, count: 9999999} // Celestial Infusion (Blue) -- (!) Does not count
|
|
958
|
-
]))._unstableFractalEssenceFromItems).to.equal(7410)
|
|
974
|
+
]), EXTRA_INFO)._unstableFractalEssenceFromItems).to.equal(7410)
|
|
959
975
|
})
|
|
960
976
|
|
|
961
977
|
it('can calculate stat infusion count', () => {
|
|
@@ -965,6 +981,6 @@ describe('statistics > items', () => {
|
|
|
965
981
|
{ id: 71383, count: 1 },
|
|
966
982
|
{ id: 38129, count: 1 },
|
|
967
983
|
{ id: 47897, count: 1 }
|
|
968
|
-
])).statInfusions).to.equal(3)
|
|
984
|
+
]), EXTRA_INFO).statInfusions).to.equal(3)
|
|
969
985
|
})
|
|
970
986
|
})
|
package/tests/unlocks.spec.js
CHANGED
|
@@ -149,6 +149,13 @@ describe('statistics > unlocks', () => {
|
|
|
149
149
|
expect(unlocksStatistics({titles: [1, 2, 7, 9, 10]}, EXTRA_INFO).titleCount).to.equal(5)
|
|
150
150
|
})
|
|
151
151
|
|
|
152
|
+
it('can calculate colored title coun', () => {
|
|
153
|
+
expect(unlocksStatistics({}, EXTRA_INFO).coloredTitleCount).to.equal(null)
|
|
154
|
+
expect(unlocksStatistics({titles: []}, EXTRA_INFO).coloredTitleCount).to.equal(0)
|
|
155
|
+
expect(unlocksStatistics({titles: [1]}, EXTRA_INFO).coloredTitleCount).to.equal(0)
|
|
156
|
+
expect(unlocksStatistics({titles: [1, 89]}, EXTRA_INFO).coloredTitleCount).to.equal(1)
|
|
157
|
+
})
|
|
158
|
+
|
|
152
159
|
it('can calculate recipe count', () => {
|
|
153
160
|
expect(unlocksStatistics({}, EXTRA_INFO).recipeCount).to.equal(null)
|
|
154
161
|
expect(unlocksStatistics({recipes: []}, EXTRA_INFO).recipeCount).to.equal(0)
|