From b9409ff052ec56a9503991e60f417e54a891b243 Mon Sep 17 00:00:00 2001 From: James R Date: Mon, 1 Aug 2022 19:53:05 -0700 Subject: [PATCH] Flame shield clashes with invincibility and bigger players --- src/k_collide.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/k_collide.c b/src/k_collide.c index 306c01dd8..7b0854a01 100644 --- a/src/k_collide.c +++ b/src/k_collide.c @@ -856,6 +856,9 @@ boolean K_SMKIceBlockCollide(mobj_t *t1, mobj_t *t2) boolean K_PvPTouchDamage(mobj_t *t1, mobj_t *t2) { + const boolean flameT1 = (t1->player->flamedash > 0 && t1->player->itemtype == KITEM_FLAMESHIELD); + const boolean flameT2 = (t2->player->flamedash > 0 && t2->player->itemtype == KITEM_FLAMESHIELD); + boolean t1Condition = false; boolean t2Condition = false; boolean stungT1 = false; @@ -864,7 +867,12 @@ boolean K_PvPTouchDamage(mobj_t *t1, mobj_t *t2) t1Condition = (t1->scale > t2->scale + (mapobjectscale/8)) || (t1->player->invincibilitytimer > 0); t2Condition = (t2->scale > t1->scale + (mapobjectscale/8)) || (t2->player->invincibilitytimer > 0); - if (t1Condition == true && t2Condition == false) + if ((t1Condition == true || flameT1 == true) && (t2Condition == true || flameT2 == true)) + { + K_DoPowerClash(t1->player, t2->player); + return false; + } + else if (t1Condition == true && t2Condition == false) { P_DamageMobj(t2, t1, t1, 1, DMG_TUMBLE); return true; @@ -873,14 +881,11 @@ boolean K_PvPTouchDamage(mobj_t *t1, mobj_t *t2) { P_DamageMobj(t1, t2, t2, 1, DMG_TUMBLE); return true; - } else if (t1Condition == true && t2Condition == true) { - K_DoPowerClash(t1->player, t2->player); - return false; } // Flame Shield dash damage - t1Condition = (t1->player->flamedash > 0 && t1->player->itemtype == KITEM_FLAMESHIELD); - t2Condition = (t2->player->flamedash > 0 && t2->player->itemtype == KITEM_FLAMESHIELD); + t1Condition = flameT1; + t2Condition = flameT2; if (t1Condition == true && t2Condition == false) {