mirror of
https://git.do.srb2.org/STJr/SRB2.git
synced 2025-01-30 13:10:55 +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;
|
return;
|
||||||
#endif
|
#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)
|
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
|
else if (thing->z - FixedMul(FRACUNIT, thing->scale) <= tmthing->z + tmthing->height
|
||||||
&& thing->z + thing->height + FixedMul(FRACUNIT, thing->scale) >= tmthing->z)
|
&& 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));
|
&& (tmthing->player->pflags & PF_SHIELDABILITY));
|
||||||
if (thing->flags & MF_MONITOR
|
if (thing->flags & MF_MONITOR
|
||||||
&& (tmthing->player->pflags & (PF_SPINNING|PF_GLIDING)
|
&& (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,
|
: 5*FRACUNIT/2,
|
||||||
false);
|
false);
|
||||||
P_SetPlayerMobjState(mo, S_PLAY_FALL);
|
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;
|
clipmomz = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3642,7 +3650,7 @@ void P_MobjCheckWater(mobj_t *mobj)
|
||||||
p->powers[pw_underwater] = underwatertics + 1;
|
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;
|
p->pflags &= ~PF_SHIELDABILITY;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -7033,7 +7033,7 @@ static void P_MovePlayer(player_t *player)
|
||||||
// Flame shield activation
|
// Flame shield activation
|
||||||
case SH_FLAMEAURA:
|
case SH_FLAMEAURA:
|
||||||
player->pflags |= PF_THOKKED|PF_SHIELDABILITY;
|
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);
|
S_StartSound(player->mo, sfx_s3k43);
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in a new issue