From acee24939f3f049ba30e65e88ce31c38305505f8 Mon Sep 17 00:00:00 2001 From: James R Date: Mon, 15 Jan 2024 22:28:48 -0800 Subject: [PATCH] Fix Guard vs Guard clash --- src/k_collide.cpp | 3 +-- src/k_kart.c | 9 +++++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/k_collide.cpp b/src/k_collide.cpp index 04e0025e7..de19100f4 100644 --- a/src/k_collide.cpp +++ b/src/k_collide.cpp @@ -1046,8 +1046,7 @@ boolean K_PvPTouchDamage(mobj_t *t1, mobj_t *t2) || (t1->player->invincibilitytimer > 0) || (t1->player->flamedash > 0 && t1->player->itemtype == KITEM_FLAMESHIELD) || (t1->player->curshield == KSHIELD_TOP && !K_IsHoldingDownTop(t1->player)) - || (t1->player->bubbleblowup > 0) - || (t1->player->spheres > 0 && K_PlayerEBrake(t1->player)); + || (t1->player->bubbleblowup > 0); }; if (canClash(t1, t2) && canClash(t2, t1)) diff --git a/src/k_kart.c b/src/k_kart.c index a0a9a4335..03e562232 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -1016,9 +1016,14 @@ boolean K_KartBouncing(mobj_t *mobj1, mobj_t *mobj2) if (mobj1->type == MT_PLAYER && mobj2->type == MT_PLAYER) { - if (K_PlayerGuard(mobj1->player)) + boolean guard1 = K_PlayerGuard(mobj1->player); + boolean guard2 = K_PlayerGuard(mobj2->player); + + if (guard1 && guard2) + K_DoPowerClash(mobj1, mobj2); + else if (guard1) K_DoGuardBreak(mobj1, mobj2); - if (K_PlayerGuard(mobj2->player)) + else if (guard2) K_DoGuardBreak(mobj2, mobj1); }