Orbital/backspam downgrade cleanup

This commit is contained in:
Antonio Martinez 2025-09-22 04:41:42 -04:00
parent 4b94f06186
commit 587eddeb70
3 changed files with 16 additions and 14 deletions

View file

@ -1034,8 +1034,6 @@ boolean K_InstaWhipCollide(mobj_t *shield, mobj_t *victim)
} }
// if you're here, you're getting hit // if you're here, you're getting hit
// Damage is a bit hacky, we want only a small loss-of-control
// while still behaving as if it's a "real" hit.
P_DamageMobj(victim, shield, attacker, 1, DMG_WHUMBLE); P_DamageMobj(victim, shield, attacker, 1, DMG_WHUMBLE);
K_DropPowerUps(victimPlayer); K_DropPowerUps(victimPlayer);

View file

@ -215,18 +215,12 @@ boolean Obj_OrbinautJawzCollide(mobj_t *t1, mobj_t *t2)
else else
{ {
// Player Damage // Player Damage
if ((t1->type == MT_ORBINAUT_SHIELD || t1->type == MT_JAWZ_SHIELD) P_DamageMobj(t2, t1, t1->target, 1, DMG_WOMBO |
&& !t2->player->invincibilitytimer && !K_IsBigger(t2, t1)) // UGH. Stumble ignores invinc. Fix this damage type someday. (tumbleitem ? DMG_TUMBLE : DMG_WIPEOUT));
{
P_DamageMobj(t2, t1, t1->target, 1, DMG_WOMBO | DMG_WHUMBLE); if (tumbleitem || !t2->player->tripwireLeniency)
} if ((gametyperules & GTR_SPHERES) || (t1->type != MT_ORBINAUT_SHIELD && t1->type != MT_JAWZ_SHIELD))
else
{
P_DamageMobj(t2, t1, t1->target, 1, DMG_WOMBO |
(tumbleitem ? DMG_TUMBLE : DMG_WIPEOUT));
if (tumbleitem || (gametyperules & GTR_SPHERES) || !t2->player->tripwireLeniency)
K_KartBouncing(t2, t1); K_KartBouncing(t2, t1);
}
S_StartSound(t2, sfx_s3k7b); S_StartSound(t2, sfx_s3k7b);
} }

View file

@ -3466,12 +3466,22 @@ boolean P_DamageMobj(mobj_t *target, mobj_t *inflictor, mobj_t *source, INT32 da
S_StartSound(target, sfx_gshc7); S_StartSound(target, sfx_gshc7);
player->flashing = TICRATE; player->flashing = TICRATE;
type = DMG_STUMBLE; type = DMG_STUMBLE;
downgraded = true;
} }
// Downgrade backthrown items that are not dedicated traps.
if (inflictor && !P_MobjWasRemoved(inflictor) && P_IsKartItem(inflictor->type) && inflictor->cvmem if (inflictor && !P_MobjWasRemoved(inflictor) && P_IsKartItem(inflictor->type) && inflictor->cvmem
&& inflictor->type != MT_BANANA) // Are there other designed trap items that can be deployed and dropped? If you add one, list it here! && inflictor->type != MT_BANANA)
{ {
type = DMG_WHUMBLE; type = DMG_WHUMBLE;
downgraded = true;
}
// Downgrade orbital items.
if (inflictor && !P_MobjWasRemoved(inflictor) && (inflictor->type == MT_ORBINAUT_SHIELD || inflictor->type == MT_JAWZ_SHIELD))
{
type = DMG_WHUMBLE;
downgraded = true;
} }
if (!(gametyperules & GTR_SPHERES) && player->tripwireLeniency && !P_PlayerInPain(player)) if (!(gametyperules & GTR_SPHERES) && player->tripwireLeniency && !P_PlayerInPain(player))