@Shivan, if you want a step down, you shouldn't be using nested when in the first place. What you should do is something like this.
when
- >=
-- hits-left
-- TriggerHullReduction[100]
- Set the fire-rate from the TriggerHullReduction variable too. As you said you might need to use some algorithm to multiply it until you get the number you want but that's fairly easy )
- modify-variable
-- TriggerHullReduction[100]
-- -
--- TriggerHullReduction[100]
--- Let's say 20 so that we trigger this at 80% 60% 40% and 20%
Give the event a trigger count of 5 because you want it to happen a total of 5 times and you're done.
Now Battuta's solution wouldn't be wrong in any major way for the problem it solves. I even suspect Doko would find it much easier to use than the solution I typed up. But as a coder, we're always taught that you should never copy and paste code when you can instead make it do the same job twice instead. If you wanted the event to trigger more than once, this way has a few advantages.
1) If Doko realises he wants something else to happen every time those turrets get hit (play the same message, play a sound, update a gauge on screen) he's going to have to change every single nested when (In fact he's actually going to have to get rid of them and go back to separate events). Using my solution, he only needs to change the event once and all the other times the event triggers it will still do it.
2) It doesn't require an infinite trigger count. So the code is slightly more efficient than a nested when. And although speeding up the FPS isn't really a consideration during FREDding, it's not a bad thing to do either.