mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2026-04-26 12:01:47 +00:00
Add K_GiveBumpersToPlayer, subset of K_TakeBumpersFromPlayer functionality
This commit is contained in:
parent
ba114022b9
commit
dafdb0fc10
2 changed files with 20 additions and 10 deletions
29
src/k_kart.c
29
src/k_kart.c
|
|
@ -4483,19 +4483,12 @@ void K_DebtStingPlayer(player_t *player, mobj_t *source)
|
||||||
P_SetPlayerMobjState(player->mo, S_KART_SPINOUT);
|
P_SetPlayerMobjState(player->mo, S_KART_SPINOUT);
|
||||||
}
|
}
|
||||||
|
|
||||||
void K_TakeBumpersFromPlayer(player_t *player, player_t *victim, UINT8 amount)
|
void K_GiveBumpersToPlayer(player_t *player, player_t *victim, UINT8 amount)
|
||||||
{
|
{
|
||||||
const UINT8 oldPlayerBumpers = K_Bumpers(player);
|
const UINT8 oldPlayerBumpers = K_Bumpers(player);
|
||||||
|
|
||||||
UINT8 tookBumpers = 0;
|
UINT8 tookBumpers = 0;
|
||||||
|
|
||||||
amount = min(amount, K_Bumpers(victim));
|
|
||||||
|
|
||||||
if (amount == 0)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
while (tookBumpers < amount)
|
while (tookBumpers < amount)
|
||||||
{
|
{
|
||||||
const UINT8 newbumper = (oldPlayerBumpers + tookBumpers);
|
const UINT8 newbumper = (oldPlayerBumpers + tookBumpers);
|
||||||
|
|
@ -4521,11 +4514,15 @@ void K_TakeBumpersFromPlayer(player_t *player, player_t *victim, UINT8 amount)
|
||||||
newmo = P_SpawnMobj(newx, newy, player->mo->z, MT_BATTLEBUMPER);
|
newmo = P_SpawnMobj(newx, newy, player->mo->z, MT_BATTLEBUMPER);
|
||||||
newmo->threshold = newbumper;
|
newmo->threshold = newbumper;
|
||||||
|
|
||||||
P_SetTarget(&newmo->tracer, victim->mo);
|
if (victim)
|
||||||
|
{
|
||||||
|
P_SetTarget(&newmo->tracer, victim->mo);
|
||||||
|
}
|
||||||
|
|
||||||
P_SetTarget(&newmo->target, player->mo);
|
P_SetTarget(&newmo->target, player->mo);
|
||||||
|
|
||||||
newmo->angle = (diff * (newbumper-1));
|
newmo->angle = (diff * (newbumper-1));
|
||||||
newmo->color = victim->skincolor;
|
newmo->color = (victim ? victim : player)->skincolor;
|
||||||
|
|
||||||
if (newbumper+1 < 2)
|
if (newbumper+1 < 2)
|
||||||
{
|
{
|
||||||
|
|
@ -4545,6 +4542,18 @@ void K_TakeBumpersFromPlayer(player_t *player, player_t *victim, UINT8 amount)
|
||||||
|
|
||||||
// :jartcookiedance:
|
// :jartcookiedance:
|
||||||
player->mo->health += tookBumpers;
|
player->mo->health += tookBumpers;
|
||||||
|
}
|
||||||
|
|
||||||
|
void K_TakeBumpersFromPlayer(player_t *player, player_t *victim, UINT8 amount)
|
||||||
|
{
|
||||||
|
amount = min(amount, K_Bumpers(victim));
|
||||||
|
|
||||||
|
if (amount == 0)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
K_GiveBumpersToPlayer(player, victim, amount);
|
||||||
|
|
||||||
// Play steal sound
|
// Play steal sound
|
||||||
S_StartSound(player->mo, sfx_3db06);
|
S_StartSound(player->mo, sfx_3db06);
|
||||||
|
|
|
||||||
|
|
@ -113,6 +113,7 @@ void K_UpdateStumbleIndicator(player_t *player);
|
||||||
void K_UpdateSliptideZipIndicator(player_t *player);
|
void K_UpdateSliptideZipIndicator(player_t *player);
|
||||||
INT32 K_ExplodePlayer(player_t *player, mobj_t *inflictor, mobj_t *source);
|
INT32 K_ExplodePlayer(player_t *player, mobj_t *inflictor, mobj_t *source);
|
||||||
void K_DebtStingPlayer(player_t *player, mobj_t *source);
|
void K_DebtStingPlayer(player_t *player, mobj_t *source);
|
||||||
|
void K_GiveBumpersToPlayer(player_t *player, player_t *victim, UINT8 amount);
|
||||||
void K_TakeBumpersFromPlayer(player_t *player, player_t *victim, UINT8 amount);
|
void K_TakeBumpersFromPlayer(player_t *player, player_t *victim, UINT8 amount);
|
||||||
void K_MineFlashScreen(mobj_t *source);
|
void K_MineFlashScreen(mobj_t *source);
|
||||||
void K_SpawnMineExplosion(mobj_t *source, UINT8 color, tic_t delay);
|
void K_SpawnMineExplosion(mobj_t *source, UINT8 color, tic_t delay);
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue