Flame shield clashes with invincibility and bigger players

This commit is contained in:
James R 2022-08-01 19:53:05 -07:00
parent 9169538dd4
commit b9409ff052

View file

@ -856,6 +856,9 @@ boolean K_SMKIceBlockCollide(mobj_t *t1, mobj_t *t2)
boolean K_PvPTouchDamage(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 t1Condition = false;
boolean t2Condition = false; boolean t2Condition = false;
boolean stungT1 = 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); t1Condition = (t1->scale > t2->scale + (mapobjectscale/8)) || (t1->player->invincibilitytimer > 0);
t2Condition = (t2->scale > t1->scale + (mapobjectscale/8)) || (t2->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); P_DamageMobj(t2, t1, t1, 1, DMG_TUMBLE);
return true; return true;
@ -873,14 +881,11 @@ boolean K_PvPTouchDamage(mobj_t *t1, mobj_t *t2)
{ {
P_DamageMobj(t1, t2, t2, 1, DMG_TUMBLE); P_DamageMobj(t1, t2, t2, 1, DMG_TUMBLE);
return true; return true;
} else if (t1Condition == true && t2Condition == true) {
K_DoPowerClash(t1->player, t2->player);
return false;
} }
// Flame Shield dash damage // Flame Shield dash damage
t1Condition = (t1->player->flamedash > 0 && t1->player->itemtype == KITEM_FLAMESHIELD); t1Condition = flameT1;
t2Condition = (t2->player->flamedash > 0 && t2->player->itemtype == KITEM_FLAMESHIELD); t2Condition = flameT2;
if (t1Condition == true && t2Condition == false) if (t1Condition == true && t2Condition == false)
{ {