+ int Iteration() const {
+ return (data && data->target > 0) ? std::floor(data->time / data->target) : 0;
+ }
+ bool JustHit() const {
+ return data && data->justHit;
+ }
+
+ void Reset() {
+ if (data) data->time = 0;
+ }
+ void Restart() {
+ if (data) {
+ if (data->target > 0 && data->justHit) {
+ data->time -= data->target;
+ } else {
+ data->time = 0;
+ }
+ }
+ }