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 sfx_None, // painsound
S_NULL, // meleestate S_NULL, // meleestate
S_NULL, // missilestate S_NULL, // missilestate
S_BATTLEBUMPER_EXCRYSTALA1, // deathstate S_BATTLEBUMPER1, // deathstate
S_NULL, // xdeathstate S_NULL, // xdeathstate
sfx_None, // deathsound sfx_None, // deathsound
4*FRACUNIT, // speed 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->momz += (24 * target->scale) * P_MobjFlip(target);
target->fuse = 8;
target->shadowscale *= 3;
target->fuse = 16;
overlay = P_SpawnMobjFromMobj(target, 0, 0, 0, MT_OVERLAY); 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); P_SetTarget(&overlay->target, target);
overlay->color = target->color; overlay->color = target->color;
P_SetMobjState(overlay, S_BATTLEBUMPER_EXSHELLA1); P_SetMobjState(overlay, S_INVISIBLE);
} }
break; break;

View file

@ -5290,7 +5290,19 @@ static void P_MobjSceneryThink(mobj_t *mobj)
{ {
statenum_t curState = (mobj->state - states); 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); P_SetMobjState(mobj, S_BATTLEBUMPER_EXCRYSTALB1);
@ -5299,7 +5311,7 @@ static void P_MobjSceneryThink(mobj_t *mobj)
P_SetMobjState(mobj->tracer, S_BATTLEBUMPER_EXSHELLB1); P_SetMobjState(mobj->tracer, S_BATTLEBUMPER_EXSHELLB1);
} }
mobj->shadowscale *= 3; mobj->shadowscale *= 2;
mobj->fuse = 24; mobj->fuse = 24;
break; break;
} }
@ -5312,7 +5324,7 @@ static void P_MobjSceneryThink(mobj_t *mobj)
P_SetMobjState(mobj->tracer, S_BATTLEBUMPER_EXSHELLC1); P_SetMobjState(mobj->tracer, S_BATTLEBUMPER_EXSHELLC1);
} }
mobj->shadowscale *= 3; mobj->shadowscale *= 2;
mobj->fuse = 32; mobj->fuse = 32;
break; break;
} }