Bumper destruction starts with the normal bumper sprite before transitioning into the giant bumper

This commit is contained in:
Sally Coolatta 2020-11-16 01:20:55 -05:00
parent ae5d5abe24
commit 8c5abf41ea
3 changed files with 18 additions and 8 deletions

View file

@ -24113,7 +24113,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
sfx_None, // painsound
S_NULL, // meleestate
S_NULL, // missilestate
S_BATTLEBUMPER_EXCRYSTALA1, // deathstate
S_BATTLEBUMPER1, // deathstate
S_NULL, // xdeathstate
sfx_None, // deathsound
4*FRACUNIT, // speed

View file

@ -1469,9 +1469,7 @@ void P_KillMobj(mobj_t *target, mobj_t *inflictor, mobj_t *source, UINT8 damaget
}
target->momz += (24 * target->scale) * P_MobjFlip(target);
target->shadowscale *= 3;
target->fuse = 16;
target->fuse = 8;
overlay = P_SpawnMobjFromMobj(target, 0, 0, 0, MT_OVERLAY);
@ -1479,7 +1477,7 @@ void P_KillMobj(mobj_t *target, mobj_t *inflictor, mobj_t *source, UINT8 damaget
P_SetTarget(&overlay->target, target);
overlay->color = target->color;
P_SetMobjState(overlay, S_BATTLEBUMPER_EXSHELLA1);
P_SetMobjState(overlay, S_INVISIBLE);
}
break;

View file

@ -5290,7 +5290,19 @@ static void P_MobjSceneryThink(mobj_t *mobj)
{
statenum_t curState = (mobj->state - states);
if (curState >= S_BATTLEBUMPER_EXCRYSTALA1 && curState <= S_BATTLEBUMPER_EXCRYSTALA4)
if (curState == S_BATTLEBUMPER1)
{
P_SetMobjState(mobj, S_BATTLEBUMPER_EXCRYSTALA1);
if (mobj->tracer && !P_MobjWasRemoved(mobj->tracer))
{
P_SetMobjState(mobj->tracer, S_BATTLEBUMPER_EXSHELLA1);
}
mobj->shadowscale *= 2;
mobj->fuse = 12;
}
else if (curState >= S_BATTLEBUMPER_EXCRYSTALA1 && curState <= S_BATTLEBUMPER_EXCRYSTALA4)
{
P_SetMobjState(mobj, S_BATTLEBUMPER_EXCRYSTALB1);
@ -5299,7 +5311,7 @@ static void P_MobjSceneryThink(mobj_t *mobj)
P_SetMobjState(mobj->tracer, S_BATTLEBUMPER_EXSHELLB1);
}
mobj->shadowscale *= 3;
mobj->shadowscale *= 2;
mobj->fuse = 24;
break;
}
@ -5312,7 +5324,7 @@ static void P_MobjSceneryThink(mobj_t *mobj)
P_SetMobjState(mobj->tracer, S_BATTLEBUMPER_EXSHELLC1);
}
mobj->shadowscale *= 3;
mobj->shadowscale *= 2;
mobj->fuse = 32;
break;
}