make eggmine pop an action like the lua

This commit is contained in:
minenice55 2025-12-08 22:09:16 -05:00
parent 3a74330c5a
commit 82f4599275
5 changed files with 34 additions and 31 deletions

View file

@ -213,6 +213,7 @@ _(A_SSMineExplode, SSMINEEXPLODE)
_(A_SSMineSearch, GRENADERING)
_(A_SSMineExplode, MINEEXPLODE)
_(A_LandMineExplode, LANDMINEEXPLODE)
_(A_EggMinePop, EGGMINEPOP)
_(A_BallhogExplode, BALLHOGEXPLODE)
_(A_LightningFollowPlayer, LIGHTNINGFOLLOWPLAYER)
_(A_FZBoomFlash, FZBOOMFLASH)

View file

@ -2564,35 +2564,6 @@ void K_DoEggMineStrip(mobj_t *tmo, mobj_t *inflictor, mobj_t *source)
}
}
void K_EggMinePop(mobj_t *mo)
{
mobj_t *poof;
mobj_t *landMine;
player_t *player;
if (mo->lastlook == 0) return;
poof = P_SpawnMobj(mo->x, mo->y, mo->z, MT_EXPLODE);
S_StartSound(poof, mo->info->deathsound);
if (!(mo->target && mo->target->player)) return;
player = mo->target->player;
landMine = P_SpawnMobj(mo->x, mo->y, mo->z + mo->height/2, MT_LANDMINE);
K_FlipFromObject(landMine, mo);
landMine->threshold = 10;
landMine->target = player->mo;
P_SetScale(landMine, 3*mo->scale/4);
landMine->destscale = mo->destscale;
landMine->angle = mo->angle;
landMine->momz = (28 * mapobjectscale * P_MobjFlip(mo));
landMine->color = player->skincolor;
}
void K_EggMineSetup(mobj_t *mo)
{
mobj_t *overlay;

View file

@ -222,7 +222,6 @@ void K_AltShrinkPityIncrease(player_t *player);
void K_SpawnEggMineBumpEffect(mobj_t *mo);
void K_DoEggMineStrip(mobj_t *tmo, mobj_t *inflictor, mobj_t *source);
void K_EggMinePop(mobj_t *mo);
void K_EggMineSetup(mobj_t *mo);
void K_EggMineBounce(mobj_t *t1, mobj_t *t2);

View file

@ -11472,6 +11472,39 @@ void A_LandMineExplode(void *thing)
}
}
void A_EggMinePop(void *thing)
{
mobj_t *actor = thing;
mobj_t *poof;
mobj_t *landMine;
player_t *player;
if (LUA_CallAction(A_EGGMINEPOP, actor))
return;
if (actor->lastlook == 0) return;
poof = P_SpawnMobj(actor->x, actor->y, actor->z, MT_EXPLODE);
S_StartSound(poof, actor->info->deathsound);
if (!(actor->target && actor->target->player)) return;
player = actor->target->player;
landMine = P_SpawnMobj(actor->x, actor->y, actor->z + actor->height/2, MT_LANDMINE);
K_FlipFromObject(landMine, actor);
landMine->threshold = 10;
landMine->target = player->mo;
P_SetScale(landMine, 3*actor->scale/4);
landMine->destscale = actor->destscale;
landMine->angle = actor->angle;
landMine->momz = (28 * mapobjectscale * P_MobjFlip(actor));
landMine->color = player->skincolor;
}
void A_BallhogExplode(void *thing)
{
mobj_t *actor = thing;

View file

@ -8833,7 +8833,6 @@ static boolean P_MobjRegularThink(mobj_t *mobj)
mobj->movefactor -= 1;
if (mobj->movefactor <= 0)
{
K_EggMinePop(mobj);
P_KillMobj(mobj, mobj, NULL, DMG_INSTAKILL);
}
else