mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2025-12-24 08:52:33 +00:00
Guard break, UFO instawhip
This commit is contained in:
parent
6f02923d89
commit
9aa4a459ce
7 changed files with 27 additions and 12 deletions
|
|
@ -3950,9 +3950,9 @@ state_t states[NUMSTATES] =
|
|||
|
||||
{SPR_SLPT, FF_PAPERSPRITE|0, -1, {NULL}, 0, 0, S_NULL}, // S_SLIPTIDEZIP
|
||||
|
||||
{SPR_IWHP, FF_FLOORSPRITE|FF_ANIMATE|0, -1, {NULL}, 6, 2, S_NULL}, // S_INSTAWHIP
|
||||
{SPR_GRNG, FF_PAPERSPRITE|0, -1, {NULL}, 0, 0, S_NULL}, // S_BLOCKRING
|
||||
{SPR_GBDY, FF_ANIMATE|0, -1, {NULL}, 4, 2, S_NULL}, // S_BLOCKBODY
|
||||
{SPR_IWHP, FF_FULLBRIGHT|FF_FLOORSPRITE|FF_ANIMATE|0, -1, {NULL}, 6, 2, S_NULL}, // S_INSTAWHIP
|
||||
{SPR_GRNG, FF_FULLBRIGHT|FF_PAPERSPRITE|0, -1, {NULL}, 0, 0, S_NULL}, // S_BLOCKRING
|
||||
{SPR_GBDY, FF_FULLBRIGHT|FF_ANIMATE|0, -1, {NULL}, 4, 2, S_NULL}, // S_BLOCKBODY
|
||||
|
||||
{SPR_SGNS, FF_ADD|FF_FULLBRIGHT, 1, {NULL}, 0, 0, S_SIGNSPARK2}, // S_SIGNSPARK1
|
||||
{SPR_SGNS, FF_ADD|FF_FULLBRIGHT|1, 1, {NULL}, 0, 0, S_SIGNSPARK3}, // S_SIGNSPARK2
|
||||
|
|
|
|||
|
|
@ -811,7 +811,7 @@ boolean K_InstaWhipCollide(mobj_t *shield, mobj_t *victim)
|
|||
if (victim != attacker && !P_PlayerInPain(victimPlayer) && victimPlayer->flashing == 0)
|
||||
{
|
||||
// BLOW THAT SHIT THE FUCK UP with guard
|
||||
if (K_PlayerEBrake(victimPlayer) && victimPlayer->spheres > 0)
|
||||
if (K_PlayerGuard(victimPlayer))
|
||||
//if (true)
|
||||
{
|
||||
victimHitlag = 2*victimHitlag;
|
||||
|
|
@ -876,7 +876,7 @@ boolean K_InstaWhipCollide(mobj_t *shield, mobj_t *victim)
|
|||
|| victim->type == MT_BANANA || victim->type == MT_EGGMANITEM || victim->type == MT_BALLHOG
|
||||
|| victim->type == MT_SSMINE || victim->type == MT_LANDMINE || victim->type == MT_SINK
|
||||
|| victim->type == MT_GARDENTOP || victim->type == MT_DROPTARGET || victim->type == MT_BATTLECAPSULE
|
||||
|| victim->type == MT_MONITOR)
|
||||
|| victim->type == MT_MONITOR || victim->type == MT_SPECIAL_UFO)
|
||||
{
|
||||
// Monitor hack. We can hit monitors once per instawhip, no multihit shredding!
|
||||
// Damage values in Obj_MonitorGetDamage.
|
||||
|
|
|
|||
20
src/k_kart.c
20
src/k_kart.c
|
|
@ -718,7 +718,7 @@ static void K_SpawnBumpForObjs(mobj_t *mobj1, mobj_t *mobj2)
|
|||
}
|
||||
}
|
||||
|
||||
static void K_PlayerJustBumped(player_t *player)
|
||||
static void K_PlayerJustBumped(player_t *player, boolean guardbreak)
|
||||
{
|
||||
mobj_t *playerMobj = NULL;
|
||||
|
||||
|
|
@ -742,6 +742,13 @@ static void K_PlayerJustBumped(player_t *player)
|
|||
player->rmomy = playerMobj->momy - player->cmomy;
|
||||
}
|
||||
|
||||
if (guardbreak && K_PlayerGuard(player))
|
||||
{
|
||||
S_StartSound(player->mo, sfx_s3k9e);
|
||||
K_AddHitLag(player->mo, TICRATE, true);
|
||||
player->instaShieldCooldown = 2*TICRATE;
|
||||
}
|
||||
|
||||
player->justbumped = bumptime;
|
||||
player->spindash = 0;
|
||||
|
||||
|
|
@ -933,8 +940,8 @@ boolean K_KartBouncing(mobj_t *mobj1, mobj_t *mobj2)
|
|||
|
||||
K_SpawnBumpForObjs(mobj1, mobj2);
|
||||
|
||||
K_PlayerJustBumped(mobj1->player);
|
||||
K_PlayerJustBumped(mobj2->player);
|
||||
K_PlayerJustBumped(mobj1->player, true);
|
||||
K_PlayerJustBumped(mobj2->player, true);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
@ -1003,7 +1010,7 @@ boolean K_KartSolidBounce(mobj_t *bounceMobj, mobj_t *solidMobj)
|
|||
bounceMobj->momz = -bounceMobj->momz;
|
||||
|
||||
K_SpawnBumpForObjs(bounceMobj, solidMobj);
|
||||
K_PlayerJustBumped(bounceMobj->player);
|
||||
K_PlayerJustBumped(bounceMobj->player, false);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
@ -9797,6 +9804,11 @@ boolean K_PlayerEBrake(player_t *player)
|
|||
return false;
|
||||
}
|
||||
|
||||
boolean K_PlayerGuard(player_t *player)
|
||||
{
|
||||
return (K_PlayerEBrake(player) && player->spheres > 0 && player->instaShieldCooldown == 0);
|
||||
}
|
||||
|
||||
SINT8 K_Sliptiding(player_t *player)
|
||||
{
|
||||
if (player->mo->eflags & MFE_UNDERWATER)
|
||||
|
|
|
|||
|
|
@ -178,6 +178,7 @@ SINT8 K_GetForwardMove(player_t *player);
|
|||
fixed_t K_GetNewSpeed(player_t *player);
|
||||
fixed_t K_3dKartMovement(player_t *player);
|
||||
boolean K_PlayerEBrake(player_t *player);
|
||||
boolean K_PlayerGuard(player_t *player);
|
||||
SINT8 K_Sliptiding(player_t *player);
|
||||
boolean K_FastFallBounce(player_t *player);
|
||||
fixed_t K_PlayerBaseFriction(player_t *player, fixed_t original);
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
#include "../info.h"
|
||||
#include "../k_objects.h"
|
||||
#include "../p_local.h"
|
||||
#include "../k_kart.h"
|
||||
|
||||
void Obj_BlockRingThink (mobj_t *ring)
|
||||
{
|
||||
|
|
@ -34,7 +35,7 @@ void Obj_BlockRingThink (mobj_t *ring)
|
|||
else
|
||||
ring->renderflags |= RF_DONTDRAW;
|
||||
|
||||
if (player->spheres == 0)
|
||||
if (!K_PlayerGuard(player))
|
||||
ring->renderflags |= RF_DONTDRAW;
|
||||
}
|
||||
}
|
||||
|
|
@ -69,7 +70,7 @@ void Obj_BlockBodyThink (mobj_t *body)
|
|||
else
|
||||
body->renderflags |= RF_DONTDRAW;
|
||||
|
||||
if (player->spheres == 0)
|
||||
if (!K_PlayerGuard(player))
|
||||
body->renderflags |= RF_DONTDRAW;
|
||||
}
|
||||
}
|
||||
|
|
@ -670,6 +670,7 @@ static UINT8 GetUFODamage(mobj_t *inflictor, UINT8 damageType)
|
|||
{
|
||||
case MT_JAWZ_SHIELD:
|
||||
case MT_ORBINAUT_SHIELD:
|
||||
case MT_INSTAWHIP:
|
||||
{
|
||||
// Shields deal chip damage.
|
||||
return 10;
|
||||
|
|
|
|||
|
|
@ -2209,7 +2209,7 @@ boolean P_DamageMobj(mobj_t *target, mobj_t *inflictor, mobj_t *source, INT32 da
|
|||
{
|
||||
sfx = sfx_grownd;
|
||||
}
|
||||
else if (player->spheres > 0 && K_PlayerEBrake(player))
|
||||
else if (K_PlayerGuard(player))
|
||||
{
|
||||
sfx = sfx_s3k3a;
|
||||
clash = true;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue