Power penalty adjustments
- Lose 30%, drop 15% - Drop at least 2 power items - Improved scattering of drops - No penalty in god mode
This commit is contained in:
parent
6adc079ecd
commit
c1bf52ab0b
1 changed files with 6 additions and 4 deletions
10
src/player.c
10
src/player.c
|
@ -205,14 +205,14 @@ void player_realdeath(Player *plr) {
|
|||
plr->respawntime = global.frames;
|
||||
plr->moveflags = 0;
|
||||
|
||||
int drop = (plr->power / 3.0) / POWER_VALUE;
|
||||
const double arc = 0.3 * M_PI;
|
||||
int drop = max(2, (plr->power * 0.15) / POWER_VALUE);
|
||||
|
||||
for(int i = 0; i < drop; ++i) {
|
||||
create_item(plr->pos, (10+7*frand()) * cexp(I*(1.25*M_PI+0.5*i*M_PI/drop)), Power);
|
||||
double ofs = arc * (i/((double)drop - 1));
|
||||
create_item(plr->pos, (12+3*frand()) * (cexp(I*(1.5*M_PI - 0.5*arc + ofs)) - 1I), Power);
|
||||
}
|
||||
|
||||
player_set_power(plr, plr->power / 2.0);
|
||||
|
||||
plr->pos = VIEWPORT_W/2 + VIEWPORT_H*I+30.0I;
|
||||
plr->recovery = -(global.frames + DEATH_DELAY + 150);
|
||||
|
||||
|
@ -222,6 +222,8 @@ void player_realdeath(Player *plr) {
|
|||
if(plr->iddqd)
|
||||
return;
|
||||
|
||||
player_set_power(plr, plr->power * 0.7);
|
||||
|
||||
if(plr->lifes-- == 0 && global.replaymode != REPLAY_PLAY)
|
||||
stage_gameover();
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue