Posted January 14, 2021 (edited) 1 hour ago, Ogare said: @ChakronI thought you where be a smart aleck (inferring it can't be done yet still asking me to do it) or just plain sarcasm. Anyway, I edited my post as I can't delete. A single non-simulated equation can be made. If modified skill ( for example the average of mining skill and pickaxe ql) is supplied then it becomes a simple input of that value and difficulty to move the distribution around. We know the distribution's shape/size so we don't need to simulate it. But and its a big one, there is normal curve deformation that happens as the mean approach either -100 or 100. The deformation might make normal curve stats math inaccurate. I'll see about reviewing stats (as all that stuff is on the internet for free) so I can try to make the equation. I hope you come up with something, as you correctly point out its not just a simple truncated normal distribution unfortunately, you have to find the probability that the result is within the cutoff parameter and skillgain range. I don't have the time to work it out right now but it should be at least somewhat possible. You'd have to look at when the default result of +/-(90-95) is relevant after 100 failed tries. If it helps here is an explanation with sort of mathematical notation I did a while ago. Edit: above is just the skill.rollgaussian you'd have to factor in bonus etc as well Edited January 14, 2021 by Lethyria Share this post Link to post Share on other sites
Posted January 14, 2021 Interesting. How does this work for skills that don't follow the standard rules, such as Fighting (and I believe Weaponsmithing, though maybe that's just arbitrarily high difficult). And how about the difference between improvement and creation actions? Share this post Link to post Share on other sites
Posted January 14, 2021 (edited) 2 hours ago, Chakron said: Interesting. How does this work for skills that don't follow the standard rules, such as Fighting (and I believe Weaponsmithing, though maybe that's just arbitrarily high difficult). And how about the difference between improvement and creation actions? There are two things at play, I was referring to the tickrate, that is standard across skill checks (most skills) the size of the skill tick is determined by a few things but the key ones are: timer length, skill "difficulty", current skill and creation/non creation. As to the exact skillgain amount its a little complicated but the difficulty is a straight divider, so blacksmithing and carpentry at 4000 have 5 times larger ticks than weaponsmithing at 20000, and mining is between the two at 8000. Creation actions give 1/3 skillgain with some exceptions. Fighting, weapon and shield skills are calculated differently and I haven't fully read that part yet. Edited January 14, 2021 by Lethyria mining number wrong Share this post Link to post Share on other sites
Posted February 10, 2021 (edited) Would be nice if the calculator could be improved to fully reflect benediction. Currently with benediction the selectable, 0+ and 90+ numbers ignore anything greater than 100. The two areas where this is a problem are in statsStore._update skillgain: sumValues(this.data, [0, 40]), success: sumValues(this.data, [0, 101]), // Should be [0, 106] or [0, 101 + (paramsStore.params.fixed.benediction ? 5 :0) ] selected: this.brush ? sumValues(this.data, [Math.round(this.brush[0]), Math.round(this.brush[1])]) : [], meanSelected: this.brush ? computeMean(this.data, [Math.round(this.brush[0]), Math.round(this.brush[1])]) : [], top: sumValues(this.data, [90, 101]), // Should be [0, 106] or [0, 101 + (paramsStore.params.fixed.benediction ? 5 :0) ] and in sumValues function sumValues(data, _ref2) { var _ref3 = _slicedToArray(_ref2, 2), xFrom = _ref3[0], xTo = _ref3[1]; if (xTo >= 100) { xTo = 100; // should be 105 or 100 + (paramsStore.params.fixed.benediction ? 5 : 0) } var totalFreq = 0; var totalCount = 0; data.forEach(function (_ref4) { var power = _ref4.power, frequency = _ref4.frequency, count = _ref4.count; if (power >= xFrom && power <= xTo) { totalFreq += frequency; totalCount += count; } }); return { freq: totalFreq, count: totalCount }; } I'm not certain this is the best way to access the benediction state as I've not used react before. Edited February 10, 2021 by Lethyria corrected first code block Share this post Link to post Share on other sites