From c1a80e4b1b0ea1769eba93734982bc4cfb88c446 Mon Sep 17 00:00:00 2001 From: Antonio Martinez Date: Thu, 25 Sep 2025 19:15:46 -0400 Subject: [PATCH 1/3] Kill players who die at lethal threshold --- src/k_respawn.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/k_respawn.c b/src/k_respawn.c index 5c2cf393c..7d7227852 100644 --- a/src/k_respawn.c +++ b/src/k_respawn.c @@ -176,6 +176,12 @@ void K_DoIngameRespawn(player_t *player) K_DoFault(player); } + if (player->rings <= -20) + { + P_KillMobj(player->mo, NULL, NULL, DMG_INSTAKILL); + return; + } + player->ringboost = 0; player->driftboost = player->strongdriftboost = 0; player->gateBoost = 0; @@ -740,7 +746,7 @@ static void K_DropDashWait(player_t *player) player->respawn.timer--; if (player->pflags & PF_FAULT) - return; + return; if (leveltime % 8 == 0) { From 48e1ed5779552bddfda36dfe5430164a15700efd Mon Sep 17 00:00:00 2001 From: Antonio Martinez Date: Thu, 25 Sep 2025 21:58:45 -0400 Subject: [PATCH 2/3] Don't die from Ring Shooter at -20 --- src/k_respawn.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/k_respawn.c b/src/k_respawn.c index 7d7227852..ac4eeca8f 100644 --- a/src/k_respawn.c +++ b/src/k_respawn.c @@ -176,7 +176,7 @@ void K_DoIngameRespawn(player_t *player) K_DoFault(player); } - if (player->rings <= -20) + if (player->rings <= -20 && (!player->ringShooter || P_MobjWasRemoved(player->ringShooter))) { P_KillMobj(player->mo, NULL, NULL, DMG_INSTAKILL); return; From bf330bafcc27e21b41eb36bbf17101b4ff152160 Mon Sep 17 00:00:00 2001 From: Antonio Martinez Date: Thu, 25 Sep 2025 22:56:16 -0400 Subject: [PATCH 3/3] Fix ringshooter death check to only activate if you are USING your ringshooter --- src/k_respawn.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/k_respawn.c b/src/k_respawn.c index ac4eeca8f..346f0fb38 100644 --- a/src/k_respawn.c +++ b/src/k_respawn.c @@ -176,7 +176,7 @@ void K_DoIngameRespawn(player_t *player) K_DoFault(player); } - if (player->rings <= -20 && (!player->ringShooter || P_MobjWasRemoved(player->ringShooter))) + if (player->rings <= -20 && !player->respawn.fromRingShooter) { P_KillMobj(player->mo, NULL, NULL, DMG_INSTAKILL); return;