Status duration reduction noticeably less than tooltip?
Posted: Mon Aug 10, 2020 3:38 pm
This question doesn't feel particularly stupid (I hope!) or a bug so I'm asking it here. I've been messing around in dev mode with the duration reduction effects on negative status you get on things like time shield, the skeleton racial, OOP buffs and so forth.
The skeleton racial gives 44% reduction, and time shield gives 50%. When I use dev mode to apply a 9 turn freeze on myself, the following things happen:
0% reduction: 10 turn freeze. I'm not too bothered about this I'm just going to treat the 9 turn freeze as a 10 turn freeze for the next two steps
44% reduction: 7 turn freeze
50% and 44% reduction: 5 turn freeze
I should mention that on a 1000 turn freeze everything works as you'd expect, they stack multiplicatively to give (approximately) 280 turns. So, I assume this is from rounding up at points in the code or some weird effect that scales down reduction on already low durations.
For 44%: Obviously rounding up 10*0.56 gives 6 turns. In the weird event the 10 turn freeze is actually a rounded down 10.9 turn freeze and the code uses the original, then rounding up 10.9*0.56 would in fact give 7. I'm sure there are other scenarios where you could end up with 7 too.
For the 50%, 44%: I can't construct any sequence in my head of how this is getting to 5 turns, even with double rounding. The main reason i'm asking this question
I'm not at all code literate but i've tried my best to scour through it, I'm fairly sure it's this part: https://git.net-core.org/tome/t-engine4 ... .lua#L7314 and I can't figure it out.
It feels kinda terrible to have stacked 50%, 44% reductions and have the second...just do nothing. But more importantly, not understanding it will drive me crazy. Can anyone help explain this to me?
The skeleton racial gives 44% reduction, and time shield gives 50%. When I use dev mode to apply a 9 turn freeze on myself, the following things happen:
0% reduction: 10 turn freeze. I'm not too bothered about this I'm just going to treat the 9 turn freeze as a 10 turn freeze for the next two steps
44% reduction: 7 turn freeze
50% and 44% reduction: 5 turn freeze
I should mention that on a 1000 turn freeze everything works as you'd expect, they stack multiplicatively to give (approximately) 280 turns. So, I assume this is from rounding up at points in the code or some weird effect that scales down reduction on already low durations.
For 44%: Obviously rounding up 10*0.56 gives 6 turns. In the weird event the 10 turn freeze is actually a rounded down 10.9 turn freeze and the code uses the original, then rounding up 10.9*0.56 would in fact give 7. I'm sure there are other scenarios where you could end up with 7 too.
For the 50%, 44%: I can't construct any sequence in my head of how this is getting to 5 turns, even with double rounding. The main reason i'm asking this question
I'm not at all code literate but i've tried my best to scour through it, I'm fairly sure it's this part: https://git.net-core.org/tome/t-engine4 ... .lua#L7314 and I can't figure it out.
It feels kinda terrible to have stacked 50%, 44% reductions and have the second...just do nothing. But more importantly, not understanding it will drive me crazy. Can anyone help explain this to me?