Talk:Augmenter Tweaking
above formula is incorrect.
if the aug says +40% then posaug1 is .4
if the aug says -40% then negaug1 is -.4
from HAL's:
Ok I'll explain it the best I can.
Let us say we have our stats start out at 0. Now if you have a +100% (x2) bonus, you will get +1. If you have a +200% (x3) bonus it is +2.
The direct opposite of a +100% bonus would be a -50%, which is -1. Therefore it stands to reason that the direct opposite of a +200% bonus would be -2, which works out to -66% when you invert it back (which if you multiply out by x3 evens out exactly).
Here is the code we get when initially applying the bonuses to find a number relative to zero. The bonus is a number relative to 1, so for example -50% would be 0.5, +30% would be 1.3, etc.
if (bonus > 1.0) factor += bonus - 1.0; else factor += (-1 / bonus) + 1;
Here is the formula for reverting back to a number relative to 1 so that it can be easily multiplied out by the rest of your ship stats.
if (factor < 0.0) factor = (-1 / (factor - 1)); else factor += 1.0;
Simon's Explanation:
okay full augmenter calculation formula. starting with a postive aug +25% = .25 and a negative aug -33% = -.33 we will convert these to based around 1 numbers by simply adding 1, so .25 becomes 1.25 and -.33 becomes .67. But first we need to use the AT formula AT on positive aug is 1+(posaug*(1+.04*ATlevel+.02*ITlevel)) which becomes 1+(.25*(1+1+.02)) so that only the augmenter portion gets tweaked, not the 100% base stat which is the 1 in the equation. this gets us 1.505 with AT25 and IT1 or +50.5%. AT on a negative aug is (1+negaug)/(1-(negaug*(.04*AT+.02*IT))) which becomes (1-.33)/(1-(-.33*(1+.02))) which is basically reducing the factor of .67 by the tweaking factor to give us 0.501271884 with AT25 and IT1 or -49.87%. now to combine augmenters we have to convert to a system centered around 0 instead of the one centered around 1 that we have been using. starting with our tweaked values of 1.505 and .501 we are going to treat positive and negative augs differerently. For positive augs, or augs with a factor greater than 1, we simply subtract 1. For negative augs, or augs with a factor less than 1, we have to use the following formula. negative0basenumber = (-1/negative1basenumber) +1 or in our case (-1/.501) +1 which gives us -0.994925373 and as a reminder the positive formula is simply: positive0basenumber = positive1basenumber - 1 or in our case 1.505-1=.505 now we add up all of our base 0 numbers, in our case giving -0.994925373) + .505 = -0.489925373 and convert back to base 1 numbers again using different rules for positive and negative sums. for positive sums you just add the 1 back on. In our case we have a negative sum so we need to use the negative formula: negative1basenumber = -1/(negative0basenumber -1) which gives in our case: negative1basenumber = -1/(-0.489925373 -1) negative1basenumber = 0.671174556 which, by subtracting 1, equates to aprox. a -33% stat.