During the creation of prototypes, it might be necessary to allow a certain action to be performed only every X seconds. In the same vein, it might be required to prevent performing a certain action for X seconds after its execution.
Examples might be the shooting of a gun which happens on mouse-click but should not happen more often than once every 0.5 seconds, or a power-up that lasts 10 seconds with a certain effect.
The cooldown effect currently can be realized using multiple connections:
if not value in Store to symbolize cooldown, trigger action
start Clock Behavior with a duration of wanted cooldown value and on-elapsed remove cooldown value from Store
write cooldown value to Store
This is cumbersome and requires a specific order of operation to prevent deadlocks or ineffective cooldowns.
As such constructs are required more often than previously anticipated a dedicated behavior for this might be useful.
During the creation of prototypes, it might be necessary to allow a certain action to be performed only every X seconds. In the same vein, it might be required to prevent performing a certain action for X seconds after its execution. Examples might be the shooting of a gun which happens on mouse-click but should not happen more often than once every 0.5 seconds, or a power-up that lasts 10 seconds with a certain effect.
The cooldown effect currently can be realized using multiple connections:
This is cumbersome and requires a specific order of operation to prevent deadlocks or ineffective cooldowns. As such constructs are required more often than previously anticipated a dedicated behavior for this might be useful.