Modified SPB to not route through P_DamageMobj (so wehave more control over the shield dropping/item obliteration, given Sryder picking up his own Thundershield...)

This commit is contained in:
toaster 2018-10-01 21:48:52 +01:00
parent d42736fe3d
commit 147b7a5786
2 changed files with 21 additions and 17 deletions

View File

@ -3016,7 +3016,7 @@ static void K_DoShrink(player_t *player)
}
}
static void K_DoSPB(player_t *victim, player_t *source)
static void K_DoSPB(player_t *victim)
{
//INT32 i;
S_StartSound(victim->mo, sfx_bkpoof); // Sound the BANG!
@ -3027,8 +3027,25 @@ static void K_DoSPB(player_t *victim, player_t *source)
P_FlashPal(&players[i], PAL_NUKE, 10);
}*/
if (victim->mo && !victim->spectator)
P_DamageMobj(victim->mo, source->mo, source->mo, 65);
if (!victim->mo || !victim->mo->health || victim->spectator)
return;
{
mobj_t *spbexplode;
if (!victim->kartstuff[k_invincibilitytimer] && !victim->kartstuff[k_growshrinktimer])
{
K_DropHnextList(victim);
K_StripItems(victim);
}
victim->powers[pw_flashing] = 0;
spbexplode = P_SpawnMobj(victim->mo->x, victim->mo->y, victim->mo->z, MT_BLUEEXPLOSION);
if (playeringame[spbplayer] && !players[spbplayer].spectator && players[spbplayer].mo)
P_SetTarget(&spbexplode->target, players[spbplayer].mo);
}
}
void K_DoPogoSpring(mobj_t *mo, fixed_t vertispeed, UINT8 sound)
@ -3820,7 +3837,7 @@ void K_KartPlayerThink(player_t *player, ticcmd_t *cmd)
if (player->kartstuff[k_deathsentence])
{
if (player->kartstuff[k_deathsentence] == 1)
K_DoSPB(player, &players[spbplayer]);
K_DoSPB(player);
player->kartstuff[k_deathsentence]--;
}

View File

@ -3385,19 +3385,6 @@ boolean P_DamageMobj(mobj_t *target, mobj_t *inflictor, mobj_t *source, INT32 da
S_StartSound(player->mo, sfx_kc59);
return true;
}
// Self-Propelled Bomb
if (damage == 65)
{
mobj_t *spbexplode;
if (player == source->player)
return false;
// Just need to do this now! Being thrown upwards is done by the explosion.
//P_SpawnMobj(player->mo->x, player->mo->y, player->mo->z, MT_BLUELIGHTNING);
spbexplode = P_SpawnMobj(player->mo->x, player->mo->y, player->mo->z, MT_BLUEEXPLOSION);
P_SetTarget(&spbexplode->target, source);
return true;
}
//}
// Sudden-Death mode