ability_timer.start(glide_time);
else if (ability_timer.started()) {
log_debug << ability_timer.get_timeleft() << std::endl;
- if (ability_timer.get_timeleft() <= 0.05f) {
+ // glide stops after some duration or if buttjump is initiated
+ if ((ability_timer.get_timeleft() <= 0.05f) || controller->hold(Controller::DOWN)) {
glide_time = 0;
ability_timer.stop();
} else {
void
Player::bounce(BadGuy& )
{
- if(controller->hold(Controller::JUMP))
- physic.set_velocity_y(-520);
- else
- physic.set_velocity_y(-300);
+ if(!(player_status->bonus == AIR_BONUS))
+ physic.set_velocity_y(controller->hold(Controller::JUMP) ? -520 : -300);
+ else {
+ physic.set_velocity_y(controller->hold(Controller::JUMP) ? -580 : -340);
+ glide_time = player_status->max_air_time * GLIDE_TIME_PER_FLOWER;
+ }
}
//scripting Functions Below