ffxiv-teamcraft/simulator

Discrepancy in progress increase during Malleable proc

ff14wed opened this issue · 1 comments

Experimentally, I've tested the simulator at 2763 craftsmanship on the r513 expert recipes and I've noticed a discrepancy in the progress increase in-game vs in simulator:

In-game:
Rapid Synth progress with no bonuses: 2355
Rapid Synth progress with veneration: 3532
Rapid Synth progress with malleable: 3532
Rapid Synth progress with veneration + malleable: 5298

Simulator:
Rapid Synth progress with no bonuses: 2355
Rapid Synth progress with veneration: 3532
Rapid Synth progress with malleable: 3530
Rapid Synth progress with veneration + malleable: 5295

I suspect it has something to do with how Math.floor is applied to the rate of progression increase before potency is applied here:

simulation.progression += Math.floor((Math.floor(progressionIncrease) * potency * bonus) / 100);

For instance, perhaps the correct formula for this follows:

Math.floor((Math.floor(progressionIncrease * potency) * bonus) / 100);

However, I also do not have enough data to determine if the inner Math.floor is even necessary.

It's applying condition after flooring, rather than before. So more like this:

Math.floor((Math.floor(progressionIncrease) * conditionMod * potency * bonus) / 100);

Technically bonus itself is just a mod to potency tho.