{
if (!running) return;
- time_left = std::max(time_left - elapsed_time, 0.0f);
+ int prev_time = (int) floor(time_left*5);
+ time_left -= elapsed_time;
if(time_left <= 0) {
- Sector::current()->player->kill(true);
- stop();
+ if(time_left <= -5 || !Sector::current()->player->get_coins())
+ {
+ Sector::current()->player->kill(true);
+ stop();
+ }
+ if(prev_time != (int) floor(time_left*5))
+ {
+ Sector::current()->player->add_coins(-1);
+ }
}
}
if (time_surf) {
float all_width = time_surf->get_width() + white_text->get_text_width(time_text);
context.draw_surface(time_surf, Vector((SCREEN_WIDTH - all_width)/2, BORDER_Y + 1), LAYER_FOREGROUND1);
- context.draw_text(gold_text, time_text, Vector((SCREEN_WIDTH - all_width)/2 + time_surf->get_width(), BORDER_Y), LEFT_ALLIGN, LAYER_FOREGROUND1);
+ context.draw_text(gold_text, time_text, Vector((SCREEN_WIDTH - all_width)/2 + time_surf->get_width(), BORDER_Y), ALIGN_LEFT, LAYER_FOREGROUND1);
}
}
{
running = false;
}
-
-float
+
+float
LevelTime::get_time()
{
return time_left;