Merge branch 'atz-hazards' into 'master'

Azure Temple Zone hazards, round 2

See merge request STJr/SRB2Internal!437
This commit is contained in:
MascaraSnake 2019-11-12 18:05:44 -05:00
commit d9558fb724
6 changed files with 176 additions and 115 deletions

View File

@ -3542,7 +3542,7 @@ thingtypes
}
124
{
title = "AquaBuzz";
title = "Buggle";
sprite = "BBUZA1";
width = 20;
height = 24;
@ -5673,8 +5673,8 @@ thingtypes
{
arrow = 1;
blocking = 2;
title = "Trapgoyle";
sprite = "GARGA1";
title = "Glaregoyle";
sprite = "BGARA1";
width = 16;
height = 40;
flags4text = "[4] Slides when pushed";
@ -5684,8 +5684,8 @@ thingtypes
{
arrow = 1;
blocking = 2;
title = "Trapgoyle (Up)";
sprite = "GARGA1";
title = "Glaregoyle (Up)";
sprite = "BGARA1";
width = 16;
height = 40;
flags4text = "[4] Slides when pushed";
@ -5695,8 +5695,8 @@ thingtypes
{
arrow = 1;
blocking = 2;
title = "Trapgoyle (Down)";
sprite = "GARGA1";
title = "Glaregoyle (Down)";
sprite = "BGARA1";
width = 16;
height = 40;
flags4text = "[4] Slides when pushed";
@ -5706,8 +5706,8 @@ thingtypes
{
arrow = 1;
blocking = 2;
title = "Trapgoyle (Long)";
sprite = "GARGA1";
title = "Glaregoyle (Long)";
sprite = "BGARA1";
width = 16;
height = 40;
flags4text = "[4] Slides when pushed";

View File

@ -5718,7 +5718,7 @@ static const char *const STATE_LIST[] = { // array length left dynamic for sanit
"S_ARROW",
"S_ARROWBONK",
// Trapgoyle Demon fire
// Glaregoyle Demon fire
"S_DEMONFIRE",
// GFZ flowers
@ -6086,29 +6086,35 @@ static const char *const STATE_LIST[] = { // array length left dynamic for sanit
"S_WALLVINE_LONG",
"S_WALLVINE_SHORT",
// Trapgoyles
"S_TRAPGOYLE",
"S_TRAPGOYLE_CHECK",
"S_TRAPGOYLE_FIRE1",
"S_TRAPGOYLE_FIRE2",
"S_TRAPGOYLE_FIRE3",
"S_TRAPGOYLEUP",
"S_TRAPGOYLEUP_CHECK",
"S_TRAPGOYLEUP_FIRE1",
"S_TRAPGOYLEUP_FIRE2",
"S_TRAPGOYLEUP_FIRE3",
"S_TRAPGOYLEDOWN",
"S_TRAPGOYLEDOWN_CHECK",
"S_TRAPGOYLEDOWN_FIRE1",
"S_TRAPGOYLEDOWN_FIRE2",
"S_TRAPGOYLEDOWN_FIRE3",
"S_TRAPGOYLELONG",
"S_TRAPGOYLELONG_CHECK",
"S_TRAPGOYLELONG_FIRE1",
"S_TRAPGOYLELONG_FIRE2",
"S_TRAPGOYLELONG_FIRE3",
"S_TRAPGOYLELONG_FIRE4",
"S_TRAPGOYLELONG_FIRE5",
// Glaregoyles
"S_GLAREGOYLE",
"S_GLAREGOYLE_CHARGE",
"S_GLAREGOYLE_BLINK",
"S_GLAREGOYLE_HOLD",
"S_GLAREGOYLE_FIRE",
"S_GLAREGOYLE_LOOP",
"S_GLAREGOYLE_COOLDOWN",
"S_GLAREGOYLEUP",
"S_GLAREGOYLEUP_CHARGE",
"S_GLAREGOYLEUP_BLINK",
"S_GLAREGOYLEUP_HOLD",
"S_GLAREGOYLEUP_FIRE",
"S_GLAREGOYLEUP_LOOP",
"S_GLAREGOYLEUP_COOLDOWN",
"S_GLAREGOYLEDOWN",
"S_GLAREGOYLEDOWN_CHARGE",
"S_GLAREGOYLEDOWN_BLINK",
"S_GLAREGOYLEDOWN_HOLD",
"S_GLAREGOYLEDOWN_FIRE",
"S_GLAREGOYLEDOWN_LOOP",
"S_GLAREGOYLEDOWN_COOLDOWN",
"S_GLAREGOYLELONG",
"S_GLAREGOYLELONG_CHARGE",
"S_GLAREGOYLELONG_BLINK",
"S_GLAREGOYLELONG_HOLD",
"S_GLAREGOYLELONG_FIRE",
"S_GLAREGOYLELONG_LOOP",
"S_GLAREGOYLELONG_COOLDOWN",
// ATZ's Red Crystal/Target
"S_TARGET_IDLE",
@ -6120,6 +6126,9 @@ static const char *const STATE_LIST[] = { // array length left dynamic for sanit
// ATZ's green flame
"S_GREENFLAME",
// ATZ Blue Gargoyle
"S_BLUEGARGOYLE",
// Stalagmites
"S_STG0",
"S_STG1",
@ -7309,8 +7318,8 @@ static const char *const STATE_LIST[] = { // array length left dynamic for sanit
"S_BUMBLEBORE_STUCK2",
"S_BUMBLEBORE_DIE",
"S_BBUZZFLY1",
"S_BBUZZFLY2",
"S_BUGGLEIDLE",
"S_BUGGLEFLY",
"S_SMASHSPIKE_FLOAT",
"S_SMASHSPIKE_EASE1",
@ -7706,7 +7715,7 @@ static const char *const MOBJTYPE_LIST[] = { // array length left dynamic for s
"MT_CANNONBALL", // Cannonball
"MT_CANNONBALLDECOR", // Decorative/still cannonball
"MT_ARROW", // Arrow
"MT_DEMONFIRE", // Trapgoyle fire
"MT_DEMONFIRE", // Glaregoyle fire
// Greenflower Scenery
"MT_GFZFLOWER1",
@ -7869,12 +7878,13 @@ static const char *const MOBJTYPE_LIST[] = { // array length left dynamic for s
// Egg Rock Scenery
// Azure Temple Scenery
"MT_TRAPGOYLE",
"MT_TRAPGOYLEUP",
"MT_TRAPGOYLEDOWN",
"MT_TRAPGOYLELONG",
"MT_GLAREGOYLE",
"MT_GLAREGOYLEUP",
"MT_GLAREGOYLEDOWN",
"MT_GLAREGOYLELONG",
"MT_TARGET",
"MT_GREENFLAME",
"MT_BLUEGARGOYLE",
// Stalagmites
"MT_STALAGMITE0",
@ -8149,7 +8159,7 @@ static const char *const MOBJTYPE_LIST[] = { // array length left dynamic for s
"MT_HIVEELEMENTAL",
"MT_BUMBLEBORE",
"MT_BUBBLEBUZZ",
"MT_BUGGLE",
"MT_SMASHINGSPIKEBALL",
"MT_CACOLANTERN",

View File

@ -2524,32 +2524,38 @@ state_t states[NUMSTATES] =
{SPR_WVIN, FF_PAPERSPRITE, -1, {NULL}, 0, 0, S_NULL}, // S_WALLVINE_LONG
{SPR_WVIN, 1|FF_PAPERSPRITE, -1, {NULL}, 0, 0, S_NULL}, // S_WALLVINE_SHORT
// Trapgoyles
{SPR_BGAR, 0, 67, {NULL}, 0, 0, S_TRAPGOYLE_CHECK}, // S_TRAPGOYLE
{SPR_BGAR, 0, 3, {NULL}, 0, 0, S_TRAPGOYLE_FIRE1}, // S_TRAPGOYLE_CHECK
{SPR_BGAR, 0, 1, {A_TrapShot}, (16<<16)+MT_DEMONFIRE, (30<<16), S_TRAPGOYLE_FIRE2}, // S_TRAPGOYLE_FIRE1
{SPR_BGAR, 0, 1, {A_TrapShot}, (16<<16)+MT_DEMONFIRE, (30<<16), S_TRAPGOYLE_FIRE3}, // S_TRAPGOYLE_FIRE2
{SPR_BGAR, 0, 1, {A_TrapShot}, (16<<16)+MT_DEMONFIRE, (30<<16), S_TRAPGOYLE}, // S_TRAPGOYLE_FIRE3
// Glaregoyles
{SPR_BGAR, 0, 22, {NULL}, 0, 0, S_GLAREGOYLE_CHARGE}, // S_GLAREGOYLE
{SPR_BGAR, 2, 6, {NULL}, 0, 0, S_GLAREGOYLE_BLINK}, // S_GLAREGOYLE_CHARGE
{SPR_BGAR, FF_ANIMATE|1, 18, {NULL}, 1, 3, S_GLAREGOYLE_HOLD}, // S_GLAREGOYLE_BLINK
{SPR_BGAR, 1, 9, {NULL}, 0, 0, S_GLAREGOYLE_FIRE}, // S_GLAREGOYLE_HOLD
{SPR_BGAR, 1, 1, {A_TrapShot}, (16<<16)+MT_DEMONFIRE, (30<<16), S_GLAREGOYLE_LOOP}, // S_GLAREGOYLE_FIRE
{SPR_BGAR, 1, 0, {A_Repeat}, 3, S_GLAREGOYLE_FIRE, S_GLAREGOYLE_COOLDOWN}, // S_GLAREGOYLE_LOOP
{SPR_BGAR, FF_ANIMATE|1, 15, {NULL}, 1, 9, S_GLAREGOYLE}, // S_GLAREGOYLE_COOLDOWN
{SPR_BGAR, 0, 67, {NULL}, 0, 0, S_TRAPGOYLEUP_CHECK}, // S_TRAPGOYLEUP
{SPR_BGAR, 0, 3, {NULL}, 0, 0, S_TRAPGOYLEUP_FIRE1}, // S_TRAPGOYLEUP_CHECK
{SPR_BGAR, 0, 1, {A_TrapShot}, (16<<16)+MT_DEMONFIRE, (30<<16)+45, S_TRAPGOYLEUP_FIRE2}, // S_TRAPGOYLEUP_FIRE1
{SPR_BGAR, 0, 1, {A_TrapShot}, (16<<16)+MT_DEMONFIRE, (30<<16)+45, S_TRAPGOYLEUP_FIRE3}, // S_TRAPGOYLEUP_FIRE2
{SPR_BGAR, 0, 1, {A_TrapShot}, (16<<16)+MT_DEMONFIRE, (30<<16)+45, S_TRAPGOYLEUP}, // S_TRAPGOYLEUP_FIRE3
{SPR_BGAR, 0, 22, {NULL}, 0, 0, S_GLAREGOYLEUP_CHARGE}, // S_GLAREGOYLEUP
{SPR_BGAR, 2, 6, {NULL}, 0, 0, S_GLAREGOYLEUP_BLINK}, // S_GLAREGOYLEUP_CHARGE
{SPR_BGAR, FF_ANIMATE|1, 18, {NULL}, 1, 3, S_GLAREGOYLEUP_HOLD}, // S_GLAREGOYLEUP_BLINK
{SPR_BGAR, 1, 9, {NULL}, 0, 0, S_GLAREGOYLEUP_FIRE}, // S_GLAREGOYLEUP_HOLD
{SPR_BGAR, 1, 1, {A_TrapShot}, (16<<16)+MT_DEMONFIRE, (30<<16)+45, S_GLAREGOYLEUP_LOOP}, // S_GLAREGOYLEUP_FIRE
{SPR_BGAR, 1, 0, {A_Repeat}, 3, S_GLAREGOYLEUP_FIRE, S_GLAREGOYLEUP_COOLDOWN}, // S_GLAREGOYLEUP_LOOP
{SPR_BGAR, FF_ANIMATE|1, 15, {NULL}, 1, 9, S_GLAREGOYLEUP}, // S_GLAREGOYLEUP_COOLDOWN
{SPR_BGAR, 0, 67, {NULL}, 0, 0, S_TRAPGOYLEDOWN_CHECK}, // S_TRAPGOYLEDOWN
{SPR_BGAR, 0, 3, {NULL}, 0, 0, S_TRAPGOYLEDOWN_FIRE1}, // S_TRAPGOYLEDOWN_CHECK
{SPR_BGAR, 0, 1, {A_TrapShot}, (16<<16)+MT_DEMONFIRE, (30<<16)+315, S_TRAPGOYLEDOWN_FIRE2}, // S_TRAPGOYLEDOWN_FIRE1
{SPR_BGAR, 0, 1, {A_TrapShot}, (16<<16)+MT_DEMONFIRE, (30<<16)+315, S_TRAPGOYLEDOWN_FIRE3}, // S_TRAPGOYLEDOWN_FIRE2
{SPR_BGAR, 0, 1, {A_TrapShot}, (16<<16)+MT_DEMONFIRE, (30<<16)+315, S_TRAPGOYLEDOWN}, // S_TRAPGOYLEDOWN_FIRE3
{SPR_BGAR, 0, 22, {NULL}, 0, 0, S_GLAREGOYLEDOWN_CHARGE}, // S_GLAREGOYLEDOWN
{SPR_BGAR, 2, 6, {NULL}, 0, 0, S_GLAREGOYLEDOWN_BLINK}, // S_GLAREGOYLEDOWN_CHARGE
{SPR_BGAR, FF_ANIMATE|1, 18, {NULL}, 1, 3, S_GLAREGOYLEDOWN_HOLD}, // S_GLAREGOYLEDOWN_BLINK
{SPR_BGAR, 1, 9, {NULL}, 0, 0, S_GLAREGOYLEDOWN_FIRE}, // S_GLAREGOYLEDOWN_HOLD
{SPR_BGAR, 1, 1, {A_TrapShot}, (16<<16)+MT_DEMONFIRE, (30<<16)+315, S_GLAREGOYLEDOWN_LOOP}, // S_GLAREGOYLEDOWN_FIRE
{SPR_BGAR, 1, 0, {A_Repeat}, 3, S_GLAREGOYLEDOWN_FIRE, S_GLAREGOYLEDOWN_COOLDOWN}, // S_GLAREGOYLEDOWN_LOOP
{SPR_BGAR, FF_ANIMATE|1, 15, {NULL}, 1, 9, S_GLAREGOYLEDOWN}, // S_GLAREGOYLEDOWN_COOLDOWN
{SPR_BGAR, 0, 135, {NULL}, 0, 0, S_TRAPGOYLELONG_CHECK}, // S_TRAPGOYLELONG
{SPR_BGAR, 0, 3, {NULL}, 0, 0, S_TRAPGOYLELONG_FIRE1}, // S_TRAPGOYLELONG_CHECK
{SPR_BGAR, 0, 1, {A_TrapShot}, (16<<16)+MT_DEMONFIRE, (30<<16), S_TRAPGOYLELONG_FIRE2}, // S_TRAPGOYLELONG_FIRE1
{SPR_BGAR, 0, 1, {A_TrapShot}, (16<<16)+MT_DEMONFIRE, (30<<16), S_TRAPGOYLELONG_FIRE3}, // S_TRAPGOYLELONG_FIRE2
{SPR_BGAR, 0, 1, {A_TrapShot}, (16<<16)+MT_DEMONFIRE, (30<<16), S_TRAPGOYLELONG_FIRE4}, // S_TRAPGOYLELONG_FIRE3
{SPR_BGAR, 0, 1, {A_TrapShot}, (16<<16)+MT_DEMONFIRE, (30<<16), S_TRAPGOYLELONG_FIRE5}, // S_TRAPGOYLELONG_FIRE4
{SPR_BGAR, 0, 1, {A_TrapShot}, (16<<16)+MT_DEMONFIRE, (30<<16), S_TRAPGOYLELONG}, // S_TRAPGOYLELONG_FIRE5
{SPR_BGAR, 0, 90, {NULL}, 0, 0, S_GLAREGOYLELONG_CHARGE}, // S_GLAREGOYLELONG
{SPR_BGAR, 2, 6, {NULL}, 0, 0, S_GLAREGOYLELONG_BLINK}, // S_GLAREGOYLELONG_CHARGE
{SPR_BGAR, FF_ANIMATE|1, 18, {NULL}, 1, 3, S_GLAREGOYLELONG_HOLD}, // S_GLAREGOYLELONG_BLINK
{SPR_BGAR, 1, 9, {NULL}, 0, 0, S_GLAREGOYLELONG_FIRE}, // S_GLAREGOYLELONG_HOLD
{SPR_BGAR, 1, 1, {A_TrapShot}, (16<<16)+MT_DEMONFIRE, (30<<16), S_GLAREGOYLELONG_LOOP}, // S_GLAREGOYLELONG_FIRE
{SPR_BGAR, 1, 0, {A_Repeat}, 5, S_GLAREGOYLELONG_FIRE, S_GLAREGOYLELONG_COOLDOWN}, // S_GLAREGOYLELONG_LOOP
{SPR_BGAR, FF_ANIMATE|1, 15, {NULL}, 1, 9, S_GLAREGOYLELONG}, // S_GLAREGOYLELONG_COOLDOWN
// Target/Red Crystal
{SPR_RCRY, 0, -1, {NULL}, 0, 0, S_TARGET_IDLE}, // S_TARGET_IDLE
@ -2561,6 +2567,9 @@ state_t states[NUMSTATES] =
// Green flame
{SPR_CFLM, FF_FULLBRIGHT|FF_ANIMATE|FF_RANDOMANIM, -1, {NULL}, 7, 3, S_GREENFLAME}, // S_GREENFLAME
// ATZ Blue Gargoyle
{SPR_BGAR, 3, -1, {NULL}, 0, 0, S_NULL}, // S_BLUEGARGOYLE
// Stalagmites
{SPR_STLG, 0, -1, {NULL}, 0, 0, S_NULL}, // S_STG0
{SPR_STLG, 1, -1, {NULL}, 0, 0, S_NULL}, // S_STG1
@ -3808,8 +3817,8 @@ state_t states[NUMSTATES] =
{SPR_BUMB, 5, 120, {NULL}, 0, 0, S_BUMBLEBORE_DIE}, // S_BUMBLEBORE_STUCK2
{SPR_BUMB, 5, 0, {A_CryingToMomma}, 0, 0, S_XPLD1}, // S_BUMBLEBORE_DIE
{SPR_BBUZ, 0, 2, {NULL}, 0, 0, S_BBUZZFLY2}, // S_BBUZZFLY1
{SPR_BBUZ, 1, 2, {NULL}, 0, 0, S_BBUZZFLY1}, // S_BBUZZFLY2
{SPR_BBUZ, 0, -1, {NULL}, 0, 0, S_NULL}, // S_BUGGLEIDLE
{SPR_BBUZ, FF_ANIMATE, -1, {NULL}, 1, 2, S_NULL}, // S_BUGGLEFLY
{SPR_FMCE, 0, 20, {NULL}, 0, 0, S_SMASHSPIKE_EASE1}, // S_SMASHSPIKE_FLOAT
{SPR_FMCE, 0, 4, {A_ZThrust}, 4, (1<<16)|1, S_SMASHSPIKE_EASE2}, // S_SMASHSPIKE_EASE1
@ -13526,9 +13535,9 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
S_NULL // raisestate
},
{ // MT_TRAPGOYLE
{ // MT_GLAREGOYLE
1500, // doomednum
S_TRAPGOYLE, // spawnstate
S_GLAREGOYLE, // spawnstate
1000, // spawnhealth
S_NULL, // seestate
sfx_None, // seesound
@ -13553,9 +13562,9 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
S_NULL // raisestate
},
{ // MT_TRAPGOYLEUP
{ // MT_GLAREGOYLEUP
1501, // doomednum
S_TRAPGOYLEUP, // spawnstate
S_GLAREGOYLEUP, // spawnstate
1000, // spawnhealth
S_NULL, // seestate
sfx_None, // seesound
@ -13580,9 +13589,9 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
S_NULL // raisestate
},
{ // MT_TRAPGOYLEDOWN
{ // MT_GLAREGOYLEDOWN
1502, // doomednum
S_TRAPGOYLEDOWN,// spawnstate
S_GLAREGOYLEDOWN,// spawnstate
1000, // spawnhealth
S_NULL, // seestate
sfx_None, // seesound
@ -13607,9 +13616,9 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
S_NULL // raisestate
},
{ // MT_TRAPGOYLELONG
{ // MT_GLAREGOYLELONG
1503, // doomednum
S_TRAPGOYLELONG,// spawnstate
S_GLAREGOYLELONG,// spawnstate
1000, // spawnhealth
S_NULL, // seestate
sfx_None, // seesound
@ -13688,6 +13697,33 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
S_NULL // raisestate
},
{ // MT_BLUEGARGOYLE
1506, // doomednum
S_BLUEGARGOYLE, // spawnstate
1000, // spawnhealth
S_NULL, // seestate
sfx_None, // seesound
8, // reactiontime
sfx_None, // attacksound
S_NULL, // painstate
0, // painchance
sfx_None, // painsound
S_NULL, // meleestate
S_NULL, // missilestate
S_NULL, // deathstate
S_NULL, // xdeathstate
sfx_None, // deathsound
21*FRACUNIT, // speed
16*FRACUNIT, // radius
40*FRACUNIT, // height
0, // display offset
100, // mass
1, // damage
sfx_statu2, // activesound
MF_SLIDEME|MF_SOLID|MF_PUSHABLE, // flags
S_NULL // raisestate
},
{ // MT_STALAGMITE0
1900, // doomednum
S_STG0, // spawnstate
@ -20073,11 +20109,11 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
S_NULL // raisestate
},
{ // MT_BUBBLEBUZZ
{ // MT_BUGGLE
124, // doomednum
S_BBUZZFLY1, // spawnstate
S_BUGGLEIDLE, // spawnstate
1, // spawnhealth
S_BBUZZFLY1, // seestate
S_BUGGLEFLY, // seestate
sfx_None, // seesound
2, // reactiontime
sfx_None, // attacksound

View File

@ -2277,7 +2277,7 @@ typedef enum state
S_ARROW,
S_ARROWBONK,
// Trapgoyle Demon fire
// Glaregoyle Demon fire
S_DEMONFIRE,
// GFZ flowers
@ -2645,29 +2645,35 @@ typedef enum state
S_WALLVINE_LONG,
S_WALLVINE_SHORT,
// Trapgoyles
S_TRAPGOYLE,
S_TRAPGOYLE_CHECK,
S_TRAPGOYLE_FIRE1,
S_TRAPGOYLE_FIRE2,
S_TRAPGOYLE_FIRE3,
S_TRAPGOYLEUP,
S_TRAPGOYLEUP_CHECK,
S_TRAPGOYLEUP_FIRE1,
S_TRAPGOYLEUP_FIRE2,
S_TRAPGOYLEUP_FIRE3,
S_TRAPGOYLEDOWN,
S_TRAPGOYLEDOWN_CHECK,
S_TRAPGOYLEDOWN_FIRE1,
S_TRAPGOYLEDOWN_FIRE2,
S_TRAPGOYLEDOWN_FIRE3,
S_TRAPGOYLELONG,
S_TRAPGOYLELONG_CHECK,
S_TRAPGOYLELONG_FIRE1,
S_TRAPGOYLELONG_FIRE2,
S_TRAPGOYLELONG_FIRE3,
S_TRAPGOYLELONG_FIRE4,
S_TRAPGOYLELONG_FIRE5,
// Glaregoyles
S_GLAREGOYLE,
S_GLAREGOYLE_CHARGE,
S_GLAREGOYLE_BLINK,
S_GLAREGOYLE_HOLD,
S_GLAREGOYLE_FIRE,
S_GLAREGOYLE_LOOP,
S_GLAREGOYLE_COOLDOWN,
S_GLAREGOYLEUP,
S_GLAREGOYLEUP_CHARGE,
S_GLAREGOYLEUP_BLINK,
S_GLAREGOYLEUP_HOLD,
S_GLAREGOYLEUP_FIRE,
S_GLAREGOYLEUP_LOOP,
S_GLAREGOYLEUP_COOLDOWN,
S_GLAREGOYLEDOWN,
S_GLAREGOYLEDOWN_CHARGE,
S_GLAREGOYLEDOWN_BLINK,
S_GLAREGOYLEDOWN_HOLD,
S_GLAREGOYLEDOWN_FIRE,
S_GLAREGOYLEDOWN_LOOP,
S_GLAREGOYLEDOWN_COOLDOWN,
S_GLAREGOYLELONG,
S_GLAREGOYLELONG_CHARGE,
S_GLAREGOYLELONG_BLINK,
S_GLAREGOYLELONG_HOLD,
S_GLAREGOYLELONG_FIRE,
S_GLAREGOYLELONG_LOOP,
S_GLAREGOYLELONG_COOLDOWN,
// ATZ's Red Crystal/Target
S_TARGET_IDLE,
@ -2679,6 +2685,9 @@ typedef enum state
// ATZ's green flame
S_GREENFLAME,
// ATZ Blue Gargoyle
S_BLUEGARGOYLE,
// Stalagmites
S_STG0,
S_STG1,
@ -3869,8 +3878,8 @@ typedef enum state
S_BUMBLEBORE_STUCK2,
S_BUMBLEBORE_DIE,
S_BBUZZFLY1,
S_BBUZZFLY2,
S_BUGGLEIDLE,
S_BUGGLEFLY,
S_SMASHSPIKE_FLOAT,
S_SMASHSPIKE_EASE1,
@ -4288,7 +4297,7 @@ typedef enum mobj_type
MT_CANNONBALL, // Cannonball
MT_CANNONBALLDECOR, // Decorative/still cannonball
MT_ARROW, // Arrow
MT_DEMONFIRE, // Trapgoyle fire
MT_DEMONFIRE, // Glaregoyle fire
// Greenflower Scenery
MT_GFZFLOWER1,
@ -4451,12 +4460,13 @@ typedef enum mobj_type
// Egg Rock Scenery
// Azure Temple Scenery
MT_TRAPGOYLE,
MT_TRAPGOYLEUP,
MT_TRAPGOYLEDOWN,
MT_TRAPGOYLELONG,
MT_GLAREGOYLE,
MT_GLAREGOYLEUP,
MT_GLAREGOYLEDOWN,
MT_GLAREGOYLELONG,
MT_TARGET, // AKA Red Crystal
MT_GREENFLAME,
MT_BLUEGARGOYLE,
// Stalagmites
MT_STALAGMITE0,
@ -4731,7 +4741,7 @@ typedef enum mobj_type
MT_HIVEELEMENTAL,
MT_BUMBLEBORE,
MT_BUBBLEBUZZ,
MT_BUGGLE,
MT_SMASHINGSPIKEBALL,
MT_CACOLANTERN,

View File

@ -2617,7 +2617,7 @@ void P_KillMobj(mobj_t *target, mobj_t *inflictor, mobj_t *source, UINT8 damaget
target->fuse = target->info->damage;
break;
case MT_BUBBLEBUZZ:
case MT_BUGGLE:
if (inflictor && inflictor->player // did a player kill you? Spawn relative to the player so they're bound to get it
&& P_AproxDistance(inflictor->x - target->x, inflictor->y - target->y) <= inflictor->radius + target->radius + FixedMul(8*FRACUNIT, inflictor->scale) // close enough?
&& inflictor->z <= target->z + target->height + FixedMul(8*FRACUNIT, inflictor->scale)

View File

@ -8447,7 +8447,7 @@ void P_MobjThinker(mobj_t *mobj)
}
}
break;
case MT_BUBBLEBUZZ:
case MT_BUGGLE:
mobj->eflags |= MFE_UNDERWATER; //P_MobjCheckWater(mobj); // solely for MFE_UNDERWATER for A_FlickySpawn
{
if (mobj->tracer && mobj->tracer->player && mobj->tracer->health > 0
@ -8461,6 +8461,9 @@ void P_MobjThinker(mobj_t *mobj)
if (leveltime % mobj->info->painchance == 0)
S_StartSound(mobj, mobj->info->activesound);
if ((statenum_t)(mobj->state-states) != mobj->info->seestate)
P_SetMobjState(mobj, mobj->info->seestate);
}
else
{
@ -8469,6 +8472,8 @@ void P_MobjThinker(mobj_t *mobj)
mobj->momx >>= 1;
mobj->momy >>= 1;
mobj->momz >>= 1;
if ((statenum_t)(mobj->state-states) != mobj->info->spawnstate)
P_SetMobjState(mobj, mobj->info->spawnstate);
}
}
break;
@ -12517,10 +12522,10 @@ ML_EFFECT5 : Don't stop thinking when too far away
if (mthing->extrainfo)
mobj->extravalue1 = mthing->extrainfo;
break;
case MT_TRAPGOYLE:
case MT_TRAPGOYLEUP:
case MT_TRAPGOYLEDOWN:
case MT_TRAPGOYLELONG:
case MT_GLAREGOYLE:
case MT_GLAREGOYLEUP:
case MT_GLAREGOYLEDOWN:
case MT_GLAREGOYLELONG:
if (mthing->angle >= 360)
mobj->tics += 7*(mthing->angle / 360) + 1; // starting delay
break;