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); 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--;