@blizzhackers/d2data 2.7.4 → 2.7.6

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/compile.js CHANGED
@@ -461,6 +461,8 @@ const moncountest = require('./json/moncountest.json');
461
461
  let monpopulation = {};
462
462
 
463
463
  [0, 1, 2].forEach((diff) => {
464
+ let uniqueCount = 3.5 + diff;
465
+ let champCount = 3;
464
466
  let s = _s(diff);
465
467
  full.levels.forEach((level) => {
466
468
  let l = (key) => level[key] || 0;
@@ -478,20 +480,38 @@ let monpopulation = {};
478
480
  bosses = full.monstats.filter((mon) => mon.areaId == level.Id),
479
481
  acount = (moncountest[level.Id] && moncountest[level.Id][diff]) || 0,
480
482
  scount = supers.reduce((total, sup) => {
483
+ let mon = full.monstats[sup.Class];
484
+
481
485
  return (
482
486
  total +
483
487
  1 +
484
488
  diff +
485
- ((sup["MinGrp"] || 0) + (sup["MaxGrp"] || 0)) / 2
489
+ avg(
490
+ (sup["MinGrp"] || 0),
491
+ (sup["MaxGrp"] || 0)
492
+ ) +
493
+ avg(
494
+ (mon["PartyMin"] || 0),
495
+ (mon["PartyMax"] || 0)
496
+ )
486
497
  );
487
498
  }, 0),
488
499
  bcount = bosses.reduce((total, mon) => {
489
500
  return (
490
- total + 1 + +((mon["MinGrp"] || 0) + (mon["MaxGrp"] || 0)) / 2
501
+ total +
502
+ 1 +
503
+ avg(
504
+ (mon["MinGrp"] || 0),
505
+ (mon["MaxGrp"] || 0)
506
+ ) +
507
+ avg(
508
+ (mon["PartyMin"] || 0),
509
+ (mon["PartyMax"] || 0)
510
+ )
491
511
  );
492
512
  }, 0),
493
- ucount = avg(l(s("MonUMin")), l(s("MonUMax"))) * 0.8 * 5.5,
494
- ccount = avg(l(s("MonUMin")), l(s("MonUMax"))) * 0.2 * 3,
513
+ ucount = avg(l(s("MonUMin")), l(s("MonUMax"))) * 0.2 * uniqueCount,
514
+ ccount = avg(l(s("MonUMin")), l(s("MonUMax"))) * 0.8 * champCount,
495
515
  count = acount - ucount - ccount - scount - bcount;
496
516
 
497
517
  if (count > 0) {
@@ -517,8 +537,8 @@ let monpopulation = {};
517
537
  forEachMonster(level, diff, (mon, mlvl, type) => {
518
538
  let mult = [
519
539
  count / totalpackssize,
520
- ccount / 3 / udiv,
521
- ucount / 5.5 / udiv,
540
+ ccount / champCount / udiv,
541
+ ucount / uniqueCount / udiv,
522
542
  ][type];
523
543
  monpopulation[level.Id][['normal', 'champion', 'unique'][type]][mon.Id] = monpopulation[level.Id][['normal', 'champion', 'unique'][type]][mon.Id] || {
524
544
  "mlvl": 0,
@@ -544,9 +564,12 @@ let monpopulation = {};
544
564
  "packCount(N)": 0,
545
565
  "mlvl(H)": 0,
546
566
  "packCount(H)": 0,
567
+ "hasStaticLevel": false,
547
568
  };
569
+
548
570
  monpopulation[level.Id]['superunique'][sup.Superunique][s('mlvl')] = mlvl;
549
571
  monpopulation[level.Id]['superunique'][sup.Superunique][s('packCount')] = sup.hcIdx === 19 ? 1 / 7 : 1;
572
+ monpopulation[level.Id]['superunique'][sup.Superunique].hasStaticLevel = Boolean(mon.boss);
550
573
  });
551
574
 
552
575
  bosses.forEach((mon) => {
@@ -559,9 +582,11 @@ let monpopulation = {};
559
582
  "packCount(N)": 0,
560
583
  "mlvl(H)": 0,
561
584
  "packCount(H)": 0,
585
+ "hasStaticLevel": false,
562
586
  };
563
587
  monpopulation[level.Id]['boss'][mon.Id][s('mlvl')] = mlvl;
564
588
  monpopulation[level.Id]['boss'][mon.Id][s('packCount')] = 1;
589
+ monpopulation[level.Id]['boss'][mon.Id].hasStaticLevel = Boolean(mon.boss);
565
590
  });
566
591
  }
567
592
  });