Page 1 of 1

Is Jahara's reroll calculator accurate?

Posted: Thu May 14, 2009 3:53 pm
by Numi
I've been playing with Jahara's reroll calculator and getting some wierd results. Just want to make sure it is accurate before I decide to retire my char or not!

For example, I try a Noldo elf with base 19 INT, then reroll its INT lower and get the following results:

Rerolled INT Distance
------------ ----------
18 (-1) ....... 14
17 (-2) ....... 42
16 (-3) ....... 28
15 (-4) ....... 71
14 (-3) ....... 57
13 (-2) ....... 99

This seems like a strange concept of distance. It is not just based on the value of the delta, odd numbered deltas create less difference than even ones. I see similar results for all other stats.

Can someone confirm if this is correct or not?

Re: Is Jahara's reroll calculator accurate?

Posted: Fri May 15, 2009 2:39 pm
by Elestir
I can confirm it's incorrect. :-)

Re: Is Jahara's reroll calculator accurate?

Posted: Fri May 15, 2009 3:53 pm
by Jahara
I didn't write the code for the reroll calculator (it is a multi-player effort). Elestir is right, the code isn't perfect, but its close to working :-)

Re: Is Jahara's reroll calculator accurate?

Posted: Thu May 21, 2009 12:02 am
by science
Why would you want a non-max int though anyways?

Re: Is Jahara's reroll calculator accurate?

Posted: Fri Sep 06, 2013 7:11 pm
by deedmbot
It was starting to bug me that the reroll calculator was incorrect. I improved the javascript function used to calculate the difference, so that its a little more accurate. Not sure if Jahara is still maintaining the page to update....

I couldn't get the exact decimal numbers used, but my numbers appear to be correct +/- 1 point. If someone has better numbers, feel free to update.

Code: Select all

function computeDiff() {
    var diff = 0;	
    for (var i = 0; i < oldTmpStats.length; i++) {
		t1 =  Math.abs(oldTmpStats[i] - newTmpStats[i]);
		var distance = 0;
		switch (t1) {
		  case 0:distance = 0;break;
		  case 1:distance = 1433;break;
		  case 2:distance = 3395;break;
		  case 3:distance = 5640;break;
		  case 4:distance = 8080;break;
		  case 5:distance = 10680;break;
		  case 6:distance = 13415;break;
		  case 7:distance = 16260;break;
		  case 8:distance = 19220;break;
		  case 9:distance = 22270;break;
		  case 10:distance = 25400;break;
		  default:distance = 25400;break;
		}
		diff += distance;
    }
    return Math.floor(diff/100);
}