From abf9d3ff39eaa5d5c7ba27888f05325a623e3579 Mon Sep 17 00:00:00 2001 From: minenice55 Date: Mon, 30 Mar 2026 19:51:43 -0400 Subject: [PATCH 1/2] don't steal bubble and attraction shield when using --- src/k_items.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/k_items.c b/src/k_items.c index 3e025d2c2..1ca4f7b52 100644 --- a/src/k_items.c +++ b/src/k_items.c @@ -1772,7 +1772,11 @@ static void K_DoHyudoroSteal(player_t *player) && (players[i].itemtype && players[i].itemamount && !(players[i].itemflags & IF_ITEMOUT) - && !players[i].itemblink)) + && !players[i].itemblink + //todo: make this more modular for hold-button items (these should never be stolen when being used) + && !players[i].bubblecool + && !players[i].attractioncharge + )) { kartitemflags_e flags = K_GetItemFlags(players[i].itemtype); @@ -1912,6 +1916,11 @@ void K_DoAttractionShield(player_t *player, boolean hipower) fixed_t sy; angle_t an; + if (S_SoundPlaying(player->mo, sfx_vwre)) + { + S_StopSoundByID(player->mo, sfx_vwre); + } + S_StartSound(player->mo, sfx_zio3); K_AttractionShieldAttack(player->mo, (cv_kartthunder_radius.value + THUNDERSPRITE) * FRACUNIT); From ceebaba53496c75ad79bd015db4b47eaba0712f1 Mon Sep 17 00:00:00 2001 From: minenice55 Date: Mon, 30 Mar 2026 19:55:45 -0400 Subject: [PATCH 2/2] clean up like bubble --- src/k_kart.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/k_kart.c b/src/k_kart.c index 7820cb9d6..03d31718b 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -7724,6 +7724,15 @@ void K_KartPlayerThink(player_t *player, ticcmd_t *cmd) player->bubblehealth = 0; } + // yes this runs even with standard thunder shield + if (player->itemtype != KITEM_THUNDERSHIELD || (!K_IsKartItemAlternate(KITEM_THUNDERSHIELD))) + { + player->attractionattack = 0; + player->attractionattack_hipower = false; + player->attractioncharge = 0; + player->attractionboost = 0; + } + if (player->flamedash) player->flamedash--;