gw2e-account-statistics 3.19.0 → 3.21.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.
@@ -75,5 +75,8 @@ exports.default = {
75
75
  gaetingCrystals: 77,
76
76
  _essenceOfDespairFromWallet: 78,
77
77
  _essenceOfGreedFromWallet: 80,
78
- _essenceOfTriumphFromWallet: 79
78
+ _essenceOfTriumphFromWallet: 79,
79
+ antiquatedDucat: 81,
80
+ testimonyOfCastoranHeroics: 82,
81
+ aetherRichSap: 83
79
82
  };
@@ -164,9 +164,9 @@ function rareRifEssenceCount(accountStatistics) {
164
164
  }
165
165
 
166
166
  function commandersChoiceChestsCount(accountStatistics) {
167
- if (accountStatistics.vbHerosChoice == null || accountStatistics.tdHerosChoice == null || accountStatistics.abHerosChoice == null || accountStatistics.dsHerosChoice == null || accountStatistics.crystalOasisHerosChoice == null || accountStatistics.elonRiverlandsHerosChoice == null || accountStatistics.theDesolationHerosChoice == null || accountStatistics.domainOfVabbiHerosChoice == null || accountStatistics.seitungProvinceHerosChoice == null || accountStatistics.newKainengCityHerosChoice == null || accountStatistics.echovaldWildsHerosChoice == null || accountStatistics.dragonsEndHerosChoice == null || accountStatistics.gyalaDelveHerosChoice == null || accountStatistics.skywatchArchipelagoHerosChoice == null || accountStatistics.amnytasHerosChoice == null || accountStatistics.innerNayosEndHerosChoice == null || accountStatistics.convergenceHerosChoice == null || accountStatistics.convergenceMountBalriorWayfindersChoice == null || accountStatistics.citadelOfZakirosHerosChoice == null || accountStatistics.janthirSyntriHerosChoice == null || accountStatistics.bavaNisosCommandersChoice == null) {
167
+ if (accountStatistics.vbHerosChoice == null || accountStatistics.tdHerosChoice == null || accountStatistics.abHerosChoice == null || accountStatistics.dsHerosChoice == null || accountStatistics.crystalOasisHerosChoice == null || accountStatistics.elonRiverlandsHerosChoice == null || accountStatistics.theDesolationHerosChoice == null || accountStatistics.domainOfVabbiHerosChoice == null || accountStatistics.seitungProvinceHerosChoice == null || accountStatistics.newKainengCityHerosChoice == null || accountStatistics.echovaldWildsHerosChoice == null || accountStatistics.dragonsEndHerosChoice == null || accountStatistics.gyalaDelveHerosChoice == null || accountStatistics.skywatchArchipelagoHerosChoice == null || accountStatistics.amnytasHerosChoice == null || accountStatistics.innerNayosEndHerosChoice == null || accountStatistics.convergenceHerosChoice == null || accountStatistics.convergenceMountBalriorWayfindersChoice == null || accountStatistics.citadelOfZakirosHerosChoice == null || accountStatistics.janthirSyntriHerosChoice == null || accountStatistics.bavaNisosCommandersChoice == null || accountStatistics.castoraHeroesChoiceChest == null) {
168
168
  return null;
169
169
  }
170
170
 
171
- return accountStatistics.vbHerosChoice + accountStatistics.tdHerosChoice + accountStatistics.abHerosChoice + accountStatistics.dsHerosChoice + accountStatistics.crystalOasisHerosChoice + accountStatistics.elonRiverlandsHerosChoice + accountStatistics.theDesolationHerosChoice + accountStatistics.domainOfVabbiHerosChoice + accountStatistics.seitungProvinceHerosChoice + accountStatistics.newKainengCityHerosChoice + accountStatistics.echovaldWildsHerosChoice + accountStatistics.dragonsEndHerosChoice + accountStatistics.gyalaDelveHerosChoice + accountStatistics.skywatchArchipelagoHerosChoice + accountStatistics.amnytasHerosChoice + accountStatistics.innerNayosEndHerosChoice + accountStatistics.convergenceHerosChoice + accountStatistics.convergenceMountBalriorWayfindersChoice + accountStatistics.citadelOfZakirosHerosChoice + accountStatistics.janthirSyntriHerosChoice + accountStatistics.bavaNisosCommandersChoice;
171
+ return accountStatistics.vbHerosChoice + accountStatistics.tdHerosChoice + accountStatistics.abHerosChoice + accountStatistics.dsHerosChoice + accountStatistics.crystalOasisHerosChoice + accountStatistics.elonRiverlandsHerosChoice + accountStatistics.theDesolationHerosChoice + accountStatistics.domainOfVabbiHerosChoice + accountStatistics.seitungProvinceHerosChoice + accountStatistics.newKainengCityHerosChoice + accountStatistics.echovaldWildsHerosChoice + accountStatistics.dragonsEndHerosChoice + accountStatistics.gyalaDelveHerosChoice + accountStatistics.skywatchArchipelagoHerosChoice + accountStatistics.amnytasHerosChoice + accountStatistics.innerNayosEndHerosChoice + accountStatistics.convergenceHerosChoice + accountStatistics.convergenceMountBalriorWayfindersChoice + accountStatistics.citadelOfZakirosHerosChoice + accountStatistics.janthirSyntriHerosChoice + accountStatistics.bavaNisosCommandersChoice + accountStatistics.castoraHeroesChoiceChest;
172
172
  }
@@ -131,6 +131,7 @@ exports.default = function (accountData, extraInformation) {
131
131
  citadelOfZakirosHerosChoice: countItems(items, [101748, 104728]),
132
132
  janthirSyntriHerosChoice: countItems(items, [102265, 104832, 104942]),
133
133
  bavaNisosCommandersChoice: countItems(items, 104714),
134
+ castoraHeroesChoiceChest: countItems(items, 105822),
134
135
  giftsOfExploration: countItems(items, 19677),
135
136
  giftsOfBattle: countItems(items, 19678),
136
137
  tomesOfKnowledge: countItems(items, [43741, 43766]),
@@ -32,7 +32,8 @@ exports.default = function (accountData) {
32
32
  masteryPointsCrystal: earnedMasteryPoints['Icebrood Saga'] || 0,
33
33
  masteryPointsEndOfDragons: earnedMasteryPoints['End of Dragons'] || 0,
34
34
  masteryPointsSecretsOfTheObscure: earnedMasteryPoints['Secrets of the Obscure'] || 0,
35
- masteryPointsJanthirWilds: earnedMasteryPoints['Janthir Wilds'] || 0
35
+ masteryPointsJanthirWilds: earnedMasteryPoints['Janthir Wilds'] || 0,
36
+ masteryPointsVisionsOfEternity: earnedMasteryPoints['Visions of Eternity'] || 0
36
37
  };
37
38
  };
38
39
 
@@ -39,7 +39,8 @@ exports.default = function (accountData, extraInformation) {
39
39
  aureneLegendaryVariantSkins: aureneLegendaryVariantSkins(accountData),
40
40
  suffusedObsidianArmorSkins: suffusedObsidianArmorSkins(accountData),
41
41
  coloredTitleCount: coloredTitleCount(accountData),
42
- homesteadDecorationCount: homesteadDecorationCount(accountData)
42
+ homesteadDecorationCount: homesteadDecorationCount(accountData),
43
+ homesteadDecorationCountUnique: homesteadDecorationCountUnique(accountData)
43
44
  };
44
45
  };
45
46
 
@@ -408,4 +409,14 @@ function homesteadDecorationCount(accountData) {
408
409
  return accountData.homestead.decorations.reduce(function (sum, decoration) {
409
410
  return sum + decoration.count;
410
411
  }, 0);
412
+ }
413
+
414
+ function homesteadDecorationCountUnique(accountData) {
415
+ if (!accountData.homestead || !accountData.homestead.decorations) {
416
+ return null;
417
+ }
418
+
419
+ return accountData.homestead.decorations.filter(function (d) {
420
+ return d.count > 0;
421
+ }).length;
411
422
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gw2e-account-statistics",
3
- "version": "3.19.0",
3
+ "version": "3.21.0",
4
4
  "description": "Calculate statistics of guildwars2 accounts",
5
5
  "main": "./build/index.js",
6
6
  "scripts": {
@@ -52,10 +52,13 @@ describe('statistics > aggregate', () => {
52
52
  bloodstoneInfusion: 1,
53
53
  heatCoreInfusion: 1,
54
54
  forestWispInfusion: 1,
55
+ chromaticBubbles: 1,
56
+ etherealSeaLifeInfusion: 1,
57
+ agonyLens: 1,
55
58
 
56
59
  // (!) Has to be ignored, else it's counting double
57
60
  celestialInfusion: 999
58
- }).totalAuras).to.equal(43)
61
+ }).totalAuras).to.equal(46)
59
62
  })
60
63
 
61
64
  it('can calculate death count per hour', () => {
@@ -281,7 +284,8 @@ describe('statistics > aggregate', () => {
281
284
  convergenceMountBalriorWayfindersChoice: null,
282
285
  citadelOfZakirosHerosChoice: null,
283
286
  janthirSyntriHerosChoice: 1,
284
- bavaNisosCommandersChoice: null
287
+ bavaNisosCommandersChoice: null,
288
+ castoraHeroesChoiceChest: null
285
289
  }).commandersChoiceChestsCount
286
290
  ).to.equal(null)
287
291
 
@@ -307,7 +311,8 @@ describe('statistics > aggregate', () => {
307
311
  convergenceMountBalriorWayfindersChoice: null,
308
312
  citadelOfZakirosHerosChoice: 1,
309
313
  janthirSyntriHerosChoice: null,
310
- bavaNisosCommandersChoice: null
314
+ bavaNisosCommandersChoice: null,
315
+ castoraHeroesChoiceChest: null
311
316
  }).commandersChoiceChestsCount
312
317
  ).to.equal(null)
313
318
 
@@ -333,7 +338,8 @@ describe('statistics > aggregate', () => {
333
338
  convergenceMountBalriorWayfindersChoice: 1,
334
339
  citadelOfZakirosHerosChoice: null,
335
340
  janthirSyntriHerosChoice: null,
336
- bavaNisosCommandersChoice: null
341
+ bavaNisosCommandersChoice: null,
342
+ castoraHeroesChoiceChest: null
337
343
  }).commandersChoiceChestsCount
338
344
  ).to.equal(null)
339
345
 
@@ -359,7 +365,8 @@ describe('statistics > aggregate', () => {
359
365
  convergenceMountBalriorWayfindersChoice: null,
360
366
  citadelOfZakirosHerosChoice: null,
361
367
  janthirSyntriHerosChoice: null,
362
- bavaNisosCommandersChoice: null
368
+ bavaNisosCommandersChoice: null,
369
+ castoraHeroesChoiceChest: null
363
370
  }).commandersChoiceChestsCount
364
371
  ).to.equal(null)
365
372
 
@@ -385,7 +392,8 @@ describe('statistics > aggregate', () => {
385
392
  convergenceMountBalriorWayfindersChoice: null,
386
393
  citadelOfZakirosHerosChoice: null,
387
394
  janthirSyntriHerosChoice: null,
388
- bavaNisosCommandersChoice: null
395
+ bavaNisosCommandersChoice: null,
396
+ castoraHeroesChoiceChest: null
389
397
  }).commandersChoiceChestsCount
390
398
  ).to.equal(null)
391
399
 
@@ -411,7 +419,8 @@ describe('statistics > aggregate', () => {
411
419
  convergenceMountBalriorWayfindersChoice: null,
412
420
  citadelOfZakirosHerosChoice: null,
413
421
  janthirSyntriHerosChoice: null,
414
- bavaNisosCommandersChoice: null
422
+ bavaNisosCommandersChoice: null,
423
+ castoraHeroesChoiceChest: null
415
424
  }).commandersChoiceChestsCount
416
425
  ).to.equal(null)
417
426
 
@@ -437,7 +446,8 @@ describe('statistics > aggregate', () => {
437
446
  convergenceMountBalriorWayfindersChoice: null,
438
447
  citadelOfZakirosHerosChoice: null,
439
448
  janthirSyntriHerosChoice: null,
440
- bavaNisosCommandersChoice: null
449
+ bavaNisosCommandersChoice: null,
450
+ castoraHeroesChoiceChest: null
441
451
  }).commandersChoiceChestsCount
442
452
  ).to.equal(null)
443
453
 
@@ -463,7 +473,8 @@ describe('statistics > aggregate', () => {
463
473
  convergenceMountBalriorWayfindersChoice: null,
464
474
  citadelOfZakirosHerosChoice: null,
465
475
  janthirSyntriHerosChoice: null,
466
- bavaNisosCommandersChoice: null
476
+ bavaNisosCommandersChoice: null,
477
+ castoraHeroesChoiceChest: null
467
478
  }).commandersChoiceChestsCount
468
479
  ).to.equal(null)
469
480
 
@@ -489,7 +500,8 @@ describe('statistics > aggregate', () => {
489
500
  convergenceMountBalriorWayfindersChoice: null,
490
501
  citadelOfZakirosHerosChoice: null,
491
502
  janthirSyntriHerosChoice: null,
492
- bavaNisosCommandersChoice: null
503
+ bavaNisosCommandersChoice: null,
504
+ castoraHeroesChoiceChest: null
493
505
  }).commandersChoiceChestsCount
494
506
  ).to.equal(null)
495
507
 
@@ -515,7 +527,8 @@ describe('statistics > aggregate', () => {
515
527
  convergenceMountBalriorWayfindersChoice: null,
516
528
  citadelOfZakirosHerosChoice: null,
517
529
  janthirSyntriHerosChoice: null,
518
- bavaNisosCommandersChoice: null
530
+ bavaNisosCommandersChoice: null,
531
+ castoraHeroesChoiceChest: null
519
532
  }).commandersChoiceChestsCount
520
533
  ).to.equal(null)
521
534
 
@@ -541,7 +554,8 @@ describe('statistics > aggregate', () => {
541
554
  convergenceMountBalriorWayfindersChoice: null,
542
555
  citadelOfZakirosHerosChoice: null,
543
556
  janthirSyntriHerosChoice: null,
544
- bavaNisosCommandersChoice: null
557
+ bavaNisosCommandersChoice: null,
558
+ castoraHeroesChoiceChest: null
545
559
  }).commandersChoiceChestsCount
546
560
  ).to.equal(null)
547
561
 
@@ -567,7 +581,8 @@ describe('statistics > aggregate', () => {
567
581
  convergenceMountBalriorWayfindersChoice: null,
568
582
  citadelOfZakirosHerosChoice: null,
569
583
  janthirSyntriHerosChoice: null,
570
- bavaNisosCommandersChoice: null
584
+ bavaNisosCommandersChoice: null,
585
+ castoraHeroesChoiceChest: null
571
586
  }).commandersChoiceChestsCount
572
587
  ).to.equal(null)
573
588
 
@@ -593,7 +608,8 @@ describe('statistics > aggregate', () => {
593
608
  convergenceMountBalriorWayfindersChoice: null,
594
609
  citadelOfZakirosHerosChoice: null,
595
610
  janthirSyntriHerosChoice: null,
596
- bavaNisosCommandersChoice: null
611
+ bavaNisosCommandersChoice: null,
612
+ castoraHeroesChoiceChest: null
597
613
  }).commandersChoiceChestsCount
598
614
  ).to.equal(null)
599
615
 
@@ -619,7 +635,8 @@ describe('statistics > aggregate', () => {
619
635
  convergenceMountBalriorWayfindersChoice: null,
620
636
  citadelOfZakirosHerosChoice: null,
621
637
  janthirSyntriHerosChoice: null,
622
- bavaNisosCommandersChoice: null
638
+ bavaNisosCommandersChoice: null,
639
+ castoraHeroesChoiceChest: null
623
640
  }).commandersChoiceChestsCount
624
641
  ).to.equal(null)
625
642
 
@@ -645,7 +662,8 @@ describe('statistics > aggregate', () => {
645
662
  convergenceMountBalriorWayfindersChoice: null,
646
663
  citadelOfZakirosHerosChoice: null,
647
664
  janthirSyntriHerosChoice: null,
648
- bavaNisosCommandersChoice: null
665
+ bavaNisosCommandersChoice: null,
666
+ castoraHeroesChoiceChest: null
649
667
  }).commandersChoiceChestsCount
650
668
  ).to.equal(null)
651
669
 
@@ -671,7 +689,8 @@ describe('statistics > aggregate', () => {
671
689
  convergenceMountBalriorWayfindersChoice: null,
672
690
  citadelOfZakirosHerosChoice: null,
673
691
  janthirSyntriHerosChoice: null,
674
- bavaNisosCommandersChoice: null
692
+ bavaNisosCommandersChoice: null,
693
+ castoraHeroesChoiceChest: null
675
694
  }).commandersChoiceChestsCount
676
695
  ).to.equal(null)
677
696
 
@@ -697,7 +716,8 @@ describe('statistics > aggregate', () => {
697
716
  convergenceMountBalriorWayfindersChoice: null,
698
717
  citadelOfZakirosHerosChoice: null,
699
718
  janthirSyntriHerosChoice: null,
700
- bavaNisosCommandersChoice: null
719
+ bavaNisosCommandersChoice: null,
720
+ castoraHeroesChoiceChest: null
701
721
  }).commandersChoiceChestsCount
702
722
  ).to.equal(null)
703
723
 
@@ -723,7 +743,8 @@ describe('statistics > aggregate', () => {
723
743
  convergenceMountBalriorWayfindersChoice: null,
724
744
  citadelOfZakirosHerosChoice: null,
725
745
  janthirSyntriHerosChoice: null,
726
- bavaNisosCommandersChoice: null
746
+ bavaNisosCommandersChoice: null,
747
+ castoraHeroesChoiceChest: null
727
748
  }).commandersChoiceChestsCount
728
749
  ).to.equal(null)
729
750
 
@@ -749,7 +770,8 @@ describe('statistics > aggregate', () => {
749
770
  convergenceMountBalriorWayfindersChoice: null,
750
771
  citadelOfZakirosHerosChoice: null,
751
772
  janthirSyntriHerosChoice: null,
752
- bavaNisosCommandersChoice: null
773
+ bavaNisosCommandersChoice: null,
774
+ castoraHeroesChoiceChest: null
753
775
  }).commandersChoiceChestsCount
754
776
  ).to.equal(null)
755
777
 
@@ -775,7 +797,8 @@ describe('statistics > aggregate', () => {
775
797
  convergenceMountBalriorWayfindersChoice: null,
776
798
  citadelOfZakirosHerosChoice: null,
777
799
  janthirSyntriHerosChoice: null,
778
- bavaNisosCommandersChoice: null
800
+ bavaNisosCommandersChoice: null,
801
+ castoraHeroesChoiceChest: null
779
802
  }).commandersChoiceChestsCount
780
803
  ).to.equal(null)
781
804
 
@@ -801,7 +824,35 @@ describe('statistics > aggregate', () => {
801
824
  convergenceMountBalriorWayfindersChoice: null,
802
825
  citadelOfZakirosHerosChoice: null,
803
826
  janthirSyntriHerosChoice: null,
804
- bavaNisosCommandersChoice: 1
827
+ bavaNisosCommandersChoice: 1,
828
+ castoraHeroesChoiceChest: null
829
+ }).commandersChoiceChestsCount
830
+ ).to.equal(null)
831
+
832
+ expect(
833
+ aggregateStatistics({
834
+ vbHerosChoice: null,
835
+ tdHerosChoice: null,
836
+ abHerosChoice: null,
837
+ dsHerosChoice: null,
838
+ crystalOasisHerosChoice: null,
839
+ elonRiverlandsHerosChoice: null,
840
+ theDesolationHerosChoice: null,
841
+ domainOfVabbiHerosChoice: null,
842
+ seitungProvinceHerosChoice: null,
843
+ newKainengCityHerosChoice: null,
844
+ echovaldWildsHerosChoice: null,
845
+ dragonsEndHerosChoice: null,
846
+ gyalaDelveHerosChoice: null,
847
+ skywatchArchipelagoHerosChoice: null,
848
+ amnytasHerosChoice: null,
849
+ innerNayosEndHerosChoice: null,
850
+ convergenceHerosChoice: null,
851
+ convergenceMountBalriorWayfindersChoice: null,
852
+ citadelOfZakirosHerosChoice: null,
853
+ janthirSyntriHerosChoice: null,
854
+ bavaNisosCommandersChoice: null,
855
+ castoraHeroesChoiceChest: 1
805
856
  }).commandersChoiceChestsCount
806
857
  ).to.equal(null)
807
858
 
@@ -827,7 +878,8 @@ describe('statistics > aggregate', () => {
827
878
  convergenceMountBalriorWayfindersChoice: 5,
828
879
  citadelOfZakirosHerosChoice: 3,
829
880
  janthirSyntriHerosChoice: null,
830
- bavaNisosCommandersChoice: 1
881
+ bavaNisosCommandersChoice: 1,
882
+ castoraHeroesChoiceChest: 5
831
883
  }).commandersChoiceChestsCount
832
884
  ).to.equal(null)
833
885
 
@@ -853,8 +905,9 @@ describe('statistics > aggregate', () => {
853
905
  convergenceMountBalriorWayfindersChoice: 5,
854
906
  citadelOfZakirosHerosChoice: 3,
855
907
  janthirSyntriHerosChoice: 1,
856
- bavaNisosCommandersChoice: 1
908
+ bavaNisosCommandersChoice: 1,
909
+ castoraHeroesChoiceChest: 5
857
910
  }).commandersChoiceChestsCount
858
- ).to.equal(42)
911
+ ).to.equal(47)
859
912
  })
860
913
  })
@@ -89,6 +89,7 @@ describe('statistics > items', () => {
89
89
  citadelOfZakirosHerosChoice: null,
90
90
  janthirSyntriHerosChoice: null,
91
91
  bavaNisosCommandersChoice: null,
92
+ castoraHeroesChoiceChest: null,
92
93
  uniqueTonics: null,
93
94
  bloodRubies: null,
94
95
  petrifiedWood: null,
@@ -183,7 +184,10 @@ describe('statistics > items', () => {
183
184
  infiniteWvwBlueprints: null,
184
185
  bloodstoneInfusion: null,
185
186
  heatCoreInfusion: null,
186
- forestWispInfusion: null
187
+ forestWispInfusion: null,
188
+ chromaticBubbles: null,
189
+ etherealSeaLifeInfusion: null,
190
+ agonyLens: null
187
191
  }
188
192
 
189
193
  const bothPermissions = {bank: null, characters: null}
@@ -27,19 +27,21 @@ describe('statistics > masteries', () => {
27
27
  {region: 'Icebrood Saga', spent: 3, earned: 12},
28
28
  {region: 'End of Dragons', spent: 7, earned: 9},
29
29
  {region: 'Secrets of the Obscure', spent: 4, earned: 5},
30
- {region: 'Janthir Wilds', spent: 15, earned: 22}
30
+ {region: 'Janthir Wilds', spent: 15, earned: 22},
31
+ {region: 'Visions of Eternity', spent: 8, earned: 12}
31
32
  ]
32
33
  }
33
34
 
34
35
  expect(masteriesStatistics({mastery: {points: accountData}})).to.deep.equal({
35
- masteryPoints: 58 + 106 + 32 + 12 + 9 + 5 + 22,
36
+ masteryPoints: 58 + 106 + 32 + 12 + 9 + 5 + 22 + 12,
36
37
  masteryPointsTyria: 58,
37
38
  masteryPointsMaguuma: 106,
38
39
  masteryPointsDesert: 32,
39
40
  masteryPointsCrystal: 12,
40
41
  masteryPointsEndOfDragons: 9,
41
42
  masteryPointsSecretsOfTheObscure: 5,
42
- masteryPointsJanthirWilds: 22
43
+ masteryPointsJanthirWilds: 22,
44
+ masteryPointsVisionsOfEternity: 12
43
45
  })
44
46
  })
45
47
 
@@ -59,7 +61,8 @@ describe('statistics > masteries', () => {
59
61
  masteryPointsCrystal: 0,
60
62
  masteryPointsEndOfDragons: 0,
61
63
  masteryPointsSecretsOfTheObscure: 0,
62
- masteryPointsJanthirWilds: 0
64
+ masteryPointsJanthirWilds: 0,
65
+ masteryPointsVisionsOfEternity: 0
63
66
  })
64
67
  })
65
68
 
@@ -72,7 +75,8 @@ describe('statistics > masteries', () => {
72
75
  masteryPointsCrystal: 0,
73
76
  masteryPointsEndOfDragons: 0,
74
77
  masteryPointsSecretsOfTheObscure: 0,
75
- masteryPointsJanthirWilds: 0
78
+ masteryPointsJanthirWilds: 0,
79
+ masteryPointsVisionsOfEternity: 0
76
80
  })
77
81
  })
78
82
  })
@@ -282,4 +282,10 @@ describe('statistics > unlocks', () => {
282
282
  expect(unlocksStatistics({ homestead: { decorations: [] } }, EXTRA_INFO).homesteadDecorationCount).to.equal(0)
283
283
  expect(unlocksStatistics({ homestead: { decorations: [{ id: 1, count: 1 }, { id: 2, count: 2 }] } }, EXTRA_INFO).homesteadDecorationCount).to.equal(3)
284
284
  })
285
+
286
+ it('can calculate homestead decoration count uniquely', () => {
287
+ expect(unlocksStatistics({}, EXTRA_INFO).homesteadDecorationCountUnique).to.equal(null)
288
+ expect(unlocksStatistics({ homestead: { decorations: [] } }, EXTRA_INFO).homesteadDecorationCountUnique).to.equal(0)
289
+ expect(unlocksStatistics({ homestead: { decorations: [{ id: 1, count: 1 }, { id: 2, count: 2 }] } }, EXTRA_INFO).homesteadDecorationCountUnique).to.equal(2)
290
+ })
285
291
  })
@@ -79,7 +79,10 @@ describe('statistics > wallet', () => {
79
79
  gaetingCrystals: null,
80
80
  _essenceOfDespairFromWallet: null,
81
81
  _essenceOfGreedFromWallet: null,
82
- _essenceOfTriumphFromWallet: null
82
+ _essenceOfTriumphFromWallet: null,
83
+ antiquatedDucat: null,
84
+ testimonyOfCastoranHeroics: null,
85
+ aetherRichSap: null
83
86
  })
84
87
  })
85
88
 
@@ -204,7 +207,10 @@ describe('statistics > wallet', () => {
204
207
  gaetingCrystals: 0,
205
208
  _essenceOfDespairFromWallet: 0,
206
209
  _essenceOfGreedFromWallet: 0,
207
- _essenceOfTriumphFromWallet: 0
210
+ _essenceOfTriumphFromWallet: 0,
211
+ antiquatedDucat: 0,
212
+ testimonyOfCastoranHeroics: 0,
213
+ aetherRichSap: 0
208
214
  })
209
215
  })
210
216