Is that with savescumming? As according to the code, there should be an equal chance of nerfs and buffs, and the magnitude of the nerfs should be more than enough to offset the buffs. In my last extended playthrough in 0.B, I didn’t touch Granades because I was trying to adhere to a no-savescumming rule, and near as I can tell, Granades are a losing proposition in large numbers.*
*Mathematical reasoning:[spoiler]
According to the Granade functional code in iuse.cpp, the “BUFFS!!” effect adds between 0 and 50% to the value of each stat, and the “NERFS!!” code should subtract between 0 and 50%. Assuming a flat RNG, this should mean that the average buff is 25%, and the average nerf is also 25%. Moreover, if you’re using enough of them, the order that the effects happen in shouldn’t matter. Therefore, for a sufficiently large population of Granades, the expected value of a given stat S should be:
S[sub]expected[/sub] = S[sub]initial/sub[sup]n/sup[sup]b[/sup]
Where b is the number of Granades that are “BUFFS!!”, and n is the number that are “NERFS!!”
Now according to the code, the selection between buffs, nerfs and other effects is accomplished with a simple switch case, with all cases having the same weight. Since both buffs and nerfs have a 20% chance of occurring, b=n, so:
S[sub]expected[/sub] = S[sub]initial/sub[sup]n/sup[sup]n[/sup] = S[sub]initial/sub[sup]n[/sup]
Therefore, for G, a given number of Granades:
S[sub]expected[/sub] = S[sub]initial/sub[sup]0.4G[/sup]
As you can see, S[sub]expected[/sub] will go to 0 as G goes to infinity, (though in practice I don’t believe you should be able to ever get below 1 due to integer typecasting, although at that point you’d be stuck and “BUFFS!!” would provide no bonus.) Now admittedly, this analysis is a tad primitive, and you certainly can get legitmately high stats for small numbers of Granades if you’re lucky, but it should accurate for large numbers as far as I can tell. If you were to scour dozens of bunkers and get a pile of 100 Granades, then spend a week setting them off, accepting whatever effect they have, (and sleeping off the damage from “NERFS!!” and running from bees,) you would be a quivering shell with 1’s or 2’s for all your base stats.
Any corrections on the math are welcome, and if you have experience that flatly contradicts this, there’s probably something I’m missing. I don’t think that implicit typecasting in _max / 2 should change this analysis much, but I’d be happy to be proven wrong.