[Change] Afterburn now breaks when you run out of energy.

This commit is contained in:
Allanis 2013-08-03 17:57:35 +01:00
parent 846f12cd65
commit 9d43435d4a
2 changed files with 16 additions and 10 deletions

View File

@ -476,15 +476,17 @@ static void pilot_update(Pilot* pilot, const double dt) {
return; return;
} }
/* We are still alive. */ /* We are still alive. */
else if(pilot->armour < pilot->armour_max) { else if(pilot->armour < pilot->armour_max)
/* Regen armour. */ /* Regen armour. */
pilot->armour += pilot->armour_regen*dt; pilot->armour += pilot->armour_regen*dt;
pilot->energy += pilot->energy_regen*dt; else
} else {
/* And shields. */ /* And shields. */
pilot->shield += pilot->shield_regen*dt; pilot->shield += pilot->shield_regen*dt;
pilot->energy += pilot->energy_regen*dt;
} /* Update energy. */
if((pilot->energy < 1.) && pilot_isFlag(pilot, PILOT_AFTERBURNER))
pilot_rmFlag(pilot, PILOT_AFTERBURNER); /* Break afterburner. */
pilot->energy += pilot->energy_regen * dt;
/* Check limits. */ /* Check limits. */
if(pilot->armour > pilot->armour_max) pilot->armour = pilot->armour_max; if(pilot->armour > pilot->armour_max) pilot->armour = pilot->armour_max;

View File

@ -1215,11 +1215,15 @@ void player_think(Pilot* pplayer) {
if(player_isFlag(PLAYER_SECONDARY)) /* Needs a target. */ if(player_isFlag(PLAYER_SECONDARY)) /* Needs a target. */
pilot_shoot(pplayer, player_target, 1); pilot_shoot(pplayer, player_target, 1);
if(player_isFlag(PLAYER_AFTERBURNER)) /* Afterburn! */
if(player_isFlag(PLAYER_AFTERBURNER)) {
if(pilot_isFlag(player, PILOT_AFTERBURNER))
vect_pset(&pplayer->solid->force, vect_pset(&pplayer->solid->force,
pplayer->thrust * pplayer->afterburner->outfit->u.afb.thrust_perc + pplayer->thrust * pplayer->afterburner->outfit->u.afb.thrust_perc +
pplayer->afterburner->outfit->u.afb.thrust_abs, pplayer->solid->dir); pplayer->afterburner->outfit->u.afb.thrust_abs, pplayer->solid->dir);
else else /* Ran out of energy. */
player_afterburnOver();
} else
vect_pset(&pplayer->solid->force, pplayer->thrust * player_acc, vect_pset(&pplayer->solid->force, pplayer->thrust * player_acc,
pplayer->solid->dir); pplayer->solid->dir);