* Bubble bounce completed (minus graphics).

* Flame burst fixed with respect to scale.
This commit is contained in:
toasterbabe 2016-10-17 14:03:32 +01:00
parent 76b30df528
commit c693af96b1
4 changed files with 13 additions and 4 deletions

View file

@ -295,7 +295,7 @@ void P_TouchSpecialThing(mobj_t *special, mobj_t *toucher, boolean heightcheck)
return;
#endif
elementalpierce = (((player->powers[pw_shield] & SH_NOSTACK) == SH_ELEMENTAL) && (player->pflags & PF_SHIELDABILITY));
elementalpierce = (((player->powers[pw_shield] & SH_NOSTACK) == SH_ELEMENTAL || (player->powers[pw_shield] & SH_NOSTACK) == SH_BUBBLEWRAP) && (player->pflags & PF_SHIELDABILITY));
if (special->flags & MF_BOSS)
{

View file

@ -1052,7 +1052,8 @@ static boolean PIT_CheckThing(mobj_t *thing)
else if (thing->z - FixedMul(FRACUNIT, thing->scale) <= tmthing->z + tmthing->height
&& thing->z + thing->height + FixedMul(FRACUNIT, thing->scale) >= tmthing->z)
{
boolean elementalpierce = (((tmthing->player->powers[pw_shield] & SH_NOSTACK) == SH_ELEMENTAL)
boolean elementalpierce = (((tmthing->player->powers[pw_shield] & SH_NOSTACK) == SH_ELEMENTAL
|| (tmthing->player->powers[pw_shield] & SH_NOSTACK) == SH_BUBBLEWRAP)
&& (tmthing->player->pflags & PF_SHIELDABILITY));
if (thing->flags & MF_MONITOR
&& (tmthing->player->pflags & (PF_SPINNING|PF_GLIDING)

View file

@ -3252,6 +3252,14 @@ static void P_PlayerZMovement(mobj_t *mo)
: 5*FRACUNIT/2,
false);
P_SetPlayerMobjState(mo, S_PLAY_FALL);
mo->momx = mo->momy = 0;
clipmomz = false;
}
else if ((mo->player->powers[pw_shield] & SH_NOSTACK) == SH_BUBBLEWRAP) // Bubble shield's bounce attack.
{
S_StartSound(mo, sfx_s3k44);
P_DoJump(mo->player, false);
mo->momz = FixedMul(mo->momz, 5*FRACUNIT/4);
clipmomz = false;
}
}
@ -3642,7 +3650,7 @@ void P_MobjCheckWater(mobj_t *mobj)
p->powers[pw_underwater] = underwatertics + 1;
}
if ((mobj->eflags & MFE_GOOWATER) && (p->powers[pw_shield] & SH_NOSTACK) == SH_ELEMENTAL && (p->pflags & PF_SHIELDABILITY))
if ((mobj->eflags & MFE_GOOWATER) && ((p->powers[pw_shield] & SH_NOSTACK) == SH_ELEMENTAL || (p->powers[pw_shield] & SH_NOSTACK) == SH_BUBBLEWRAP) && (p->pflags & PF_SHIELDABILITY))
p->pflags &= ~PF_SHIELDABILITY;
}

View file

@ -7033,7 +7033,7 @@ static void P_MovePlayer(player_t *player)
// Flame shield activation
case SH_FLAMEAURA:
player->pflags |= PF_THOKKED|PF_SHIELDABILITY;
P_Thrust(player->mo, player->mo->angle, 30*player->mo->scale - FixedMul(FixedSqrt(player->speed), FixedSqrt(player->mo->scale)));
P_Thrust(player->mo, player->mo->angle, FixedMul(30*FRACUNIT - FixedSqrt(FixedDiv(player->speed, player->mo->scale)), player->mo->scale));
S_StartSound(player->mo, sfx_s3k43);
default:
break;