mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2026-04-28 04:51:42 +00:00
Toxomister death effects
This commit is contained in:
parent
6001336873
commit
e2c4341896
5 changed files with 25 additions and 6 deletions
|
|
@ -3122,6 +3122,7 @@ const char *const STATE_LIST[] = { // array length left dynamic for sanity testi
|
||||||
"S_STON",
|
"S_STON",
|
||||||
|
|
||||||
"S_TOXAA",
|
"S_TOXAA",
|
||||||
|
"S_TOXAA_DEAD",
|
||||||
"S_TOXAB",
|
"S_TOXAB",
|
||||||
"S_TOXBA",
|
"S_TOXBA",
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -3708,6 +3708,7 @@ state_t states[NUMSTATES] =
|
||||||
{SPR_STON, 0, -1, {NULL}, 0, 0, S_STON}, // S_STON
|
{SPR_STON, 0, -1, {NULL}, 0, 0, S_STON}, // S_STON
|
||||||
//
|
//
|
||||||
{SPR_TOXA, 0, -1, {NULL}, 0, 0, S_TOXAA}, // S_TOXAA
|
{SPR_TOXA, 0, -1, {NULL}, 0, 0, S_TOXAA}, // S_TOXAA
|
||||||
|
{SPR_TOXA, 0, 175, {NULL}, 0, 0, S_NULL}, // S_TOXAA_DEAD
|
||||||
{SPR_TOXA, 1, -1, {NULL}, 0, 0, S_TOXAB}, // S_TOXAB
|
{SPR_TOXA, 1, -1, {NULL}, 0, 0, S_TOXAB}, // S_TOXAB
|
||||||
{SPR_TOXB, FF_ANIMATE|FF_RANDOMANIM, -1, {NULL}, 6, 5, S_TOXBA}, // S_TOXBA
|
{SPR_TOXB, FF_ANIMATE|FF_RANDOMANIM, -1, {NULL}, 6, 5, S_TOXBA}, // S_TOXBA
|
||||||
};
|
};
|
||||||
|
|
@ -22731,7 +22732,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
||||||
sfx_None, // painsound
|
sfx_None, // painsound
|
||||||
S_NULL, // meleestate
|
S_NULL, // meleestate
|
||||||
S_NULL, // missilestate
|
S_NULL, // missilestate
|
||||||
S_NULL, // deathstate
|
S_TOXAA_DEAD, // deathstate
|
||||||
S_NULL, // xdeathstate
|
S_NULL, // xdeathstate
|
||||||
sfx_None, // deathsound
|
sfx_None, // deathsound
|
||||||
0, // speed
|
0, // speed
|
||||||
|
|
|
||||||
|
|
@ -4191,6 +4191,7 @@ typedef enum state
|
||||||
S_STON,
|
S_STON,
|
||||||
|
|
||||||
S_TOXAA,
|
S_TOXAA,
|
||||||
|
S_TOXAA_DEAD,
|
||||||
S_TOXAB,
|
S_TOXAB,
|
||||||
S_TOXBA,
|
S_TOXBA,
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -75,7 +75,7 @@ struct Eye : Mobj
|
||||||
{
|
{
|
||||||
static constexpr INT32 kOrbitRadius = 24;
|
static constexpr INT32 kOrbitRadius = 24;
|
||||||
|
|
||||||
bool valid() const { return Mobj::valid(owner()); }
|
bool valid() const { return Mobj::valid(owner()) && owner()->health > 0; }
|
||||||
|
|
||||||
bool tick()
|
bool tick()
|
||||||
{
|
{
|
||||||
|
|
@ -230,8 +230,15 @@ struct Pole : Mobj
|
||||||
if (K_TryPickMeUp(this, toucher, false))
|
if (K_TryPickMeUp(this, toucher, false))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
// TODO: spawn a puff of smoke?
|
// Adapted from P_XYMovement, MT_JAWZ
|
||||||
remove();
|
voice(info->deathsound);
|
||||||
|
P_KillMobj(this, NULL, NULL, DMG_NORMAL);
|
||||||
|
|
||||||
|
P_SetObjectMomZ(this, 24*FRACUNIT, false);
|
||||||
|
instathrust(R_PointToAngle2(toucher->x, toucher->y, x, y), 32 * mapobjectscale);
|
||||||
|
|
||||||
|
flags &= ~MF_NOGRAVITY;
|
||||||
|
hitlag(toucher, toucher, 8, true);
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
@ -306,7 +313,7 @@ struct Cloud : Mobj
|
||||||
|
|
||||||
bool tick_patrol()
|
bool tick_patrol()
|
||||||
{
|
{
|
||||||
if (Mobj::valid(pole()))
|
if (Mobj::valid(pole()) && pole()->health > 0)
|
||||||
{
|
{
|
||||||
move_origin(pole()->pos());
|
move_origin(pole()->pos());
|
||||||
instathrust(angle, 64 * mapobjectscale);
|
instathrust(angle, 64 * mapobjectscale);
|
||||||
|
|
|
||||||
11
src/p_mobj.c
11
src/p_mobj.c
|
|
@ -1246,9 +1246,12 @@ fixed_t P_GetMobjGravity(mobj_t *mo)
|
||||||
gravityadd /= 2;
|
gravityadd /= 2;
|
||||||
break;
|
break;
|
||||||
case MT_GACHABOM:
|
case MT_GACHABOM:
|
||||||
case MT_TOXOMISTER_POLE:
|
|
||||||
gravityadd = (5*gravityadd)/2;
|
gravityadd = (5*gravityadd)/2;
|
||||||
break;
|
break;
|
||||||
|
case MT_TOXOMISTER_POLE:
|
||||||
|
if (mo->health > 0)
|
||||||
|
gravityadd = (5*gravityadd)/2;
|
||||||
|
break;
|
||||||
case MT_BANANA:
|
case MT_BANANA:
|
||||||
case MT_BALLHOG:
|
case MT_BALLHOG:
|
||||||
case MT_BALLHOG_RETICULE_TEST:
|
case MT_BALLHOG_RETICULE_TEST:
|
||||||
|
|
@ -6868,6 +6871,12 @@ static boolean P_MobjDeadThink(mobj_t *mobj)
|
||||||
P_SetMobjState(mobj, mobj->info->xdeathstate);
|
P_SetMobjState(mobj, mobj->info->xdeathstate);
|
||||||
/* FALLTHRU */
|
/* FALLTHRU */
|
||||||
case MT_JAWZ_SHIELD:
|
case MT_JAWZ_SHIELD:
|
||||||
|
mobj->renderflags ^= RF_DONTDRAW;
|
||||||
|
break;
|
||||||
|
case MT_TOXOMISTER_POLE:
|
||||||
|
if (mobj->momz == 0 && P_IsObjectOnGround(mobj))
|
||||||
|
P_SetMobjState(mobj, mobj->info->xdeathstate);
|
||||||
|
|
||||||
mobj->renderflags ^= RF_DONTDRAW;
|
mobj->renderflags ^= RF_DONTDRAW;
|
||||||
break;
|
break;
|
||||||
case MT_SSMINE:
|
case MT_SSMINE:
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue