So according to a discussion on #chaosforge, the "time duration" for power-ups like Invulnerability, Berserk and Environment protection are not actually based on in-game time but based on in-game action. This is a little unintuitive, since one would think that in-game "time" would be a more universal metric for determining an action as opposed to the meta-concept of an "action" taken by the player.
So, I'm thinking that these power-ups should have their duration clamped to an in-game time amount instead, so that bonuses from attack speed, weapon swap, movement speed can all factor in positively in "prolonging" the power up in terms of number of performable player actions.
Of course there are some issues on this being overpowered. I was thinking that for the first pick up of the power-up, we add some fixed duration to the effect, and subsequent power-ups extend the time left by a fractional amount. This way, we provide a diminishing returns scenario so that the consecutive consumption of the various power-ups will not extend the actual time duration of the power-up indefinitely.
What do yinz think?