What
A cooldown condition limits X increments of progress for Y seconds
Why
- Example objectives:
- Although no such objective exists yet: Login every day for 7 days
- Swipe 5 cards at least 1h apart, up to 2 per hour
Notes
- During dev,
- it was discovered that making this a condition wasn’t the right model:
- There can’t be realistically two cooldown conditions (breaks the independence of conditions and their ability to be composed)
- It wouldn’t make sense inside and/or/not (it would become the only condition to be excluded from them)
- Instead, the cooldown will become a configurable property of AmountObjective (like
amountRequired)
- Kill 2 scientists within 5 seconds → may be a separate condition? Cooldown sounds more like events happening “outside” a time frame, while this is more “inside” a time frame
Effort: Medium → Very High
Mid-development, I changed this task’s from Medium to Very High. I realized having a cooldown state without any visual support to it was confusing. So I have to add UI to this and it’s actually a pain 🙂 Had I known this before and had I not already implemented the actual cooldown logic yet, I would have de-prioritized this task for sure. Let that be a lesson for future tasks that require UI.