[Change] Afterburn now breaks when you run out of energy.
This commit is contained in:
parent
846f12cd65
commit
9d43435d4a
12
src/pilot.c
12
src/pilot.c
@ -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;
|
||||||
|
@ -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);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user