mirror of
https://git.do.srb2.org/STJr/SRB2.git
synced 2025-01-18 07:22:28 +00:00
* Bubble bounce completed (minus graphics).
* Flame burst fixed with respect to scale.
This commit is contained in:
parent
76b30df528
commit
c693af96b1
4 changed files with 13 additions and 4 deletions
|
@ -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)
|
||||
{
|
||||
|
|
|
@ -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)
|
||||
|
|
10
src/p_mobj.c
10
src/p_mobj.c
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in a new issue