@@ -495,7 +495,12 @@ const fs = require('fs');
495495 [ 0 , 1 , 2 ] . forEach ( ( diff ) => {
496496 let uniqueCount = 3.5 + diff ;
497497 let champCount = 3 ;
498- let uniqueRatio = 0.8 , champRatio = 0.2 ;
498+ let uniqueRatio = 0.8 , champRatio = 0.2 * champCount ;
499+ let uadj = uniqueRatio + champRatio * 3 ;
500+
501+ uniqueRatio /= uadj ;
502+ champRatio /= uadj ;
503+
499504 let s = _s ( diff ) ;
500505 full . levels . forEach ( ( level ) => {
501506 let l = ( key ) => level [ key ] || 0 ;
@@ -543,7 +548,7 @@ const fs = require('fs');
543548 )
544549 ) ;
545550 } , 0 ) ,
546- monucount = avg ( l ( s ( "MonUMin" ) ) , l ( s ( "MonUMax" ) ) ) ,
551+ monucount = avg ( l ( s ( "MonUMin" ) ) , l ( s ( "MonUMax" ) ) ) + 0.47 , // The bonus here comes from champions spawn last, overcapping the spawns.
547552 ucount = monucount * uniqueRatio * uniqueCount ,
548553 ccount = 0 ;
549554
@@ -589,7 +594,7 @@ const fs = require('fs');
589594 forEachMonster ( level , diff , ( mon , mlvl , type , rarity ) => {
590595 let mult = [
591596 count * ratio [ type ] [ mon . Id ] / ( avg ( ( mon [ "MinGrp" ] || 0 ) , ( mon [ "MaxGrp" ] || 0 ) ) + avg ( ( mon [ "PartyMin" ] || 0 ) , ( mon [ "PartyMax" ] || 0 ) ) ) ,
592- monucount * rarity * champRatio ,
597+ monucount * rarity * champRatio / champCount ,
593598 monucount * rarity * uniqueRatio ,
594599 ] [ type ] ;
595600 monpopulation [ level . Id ] [ [ 'normal' , 'champion' , 'unique' ] [ type ] ] [ mon . Id ] = monpopulation [ level . Id ] [ [ 'normal' , 'champion' , 'unique' ] [ type ] ] [ mon . Id ] || {
0 commit comments