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 124
{ {
title = "AquaBuzz"; title = "Buggle";
sprite = "BBUZA1"; sprite = "BBUZA1";
width = 20; width = 20;
height = 24; height = 24;
@ -5673,8 +5673,8 @@ thingtypes
{ {
arrow = 1; arrow = 1;
blocking = 2; blocking = 2;
title = "Trapgoyle"; title = "Glaregoyle";
sprite = "GARGA1"; sprite = "BGARA1";
width = 16; width = 16;
height = 40; height = 40;
flags4text = "[4] Slides when pushed"; flags4text = "[4] Slides when pushed";
@ -5684,8 +5684,8 @@ thingtypes
{ {
arrow = 1; arrow = 1;
blocking = 2; blocking = 2;
title = "Trapgoyle (Up)"; title = "Glaregoyle (Up)";
sprite = "GARGA1"; sprite = "BGARA1";
width = 16; width = 16;
height = 40; height = 40;
flags4text = "[4] Slides when pushed"; flags4text = "[4] Slides when pushed";
@ -5695,8 +5695,8 @@ thingtypes
{ {
arrow = 1; arrow = 1;
blocking = 2; blocking = 2;
title = "Trapgoyle (Down)"; title = "Glaregoyle (Down)";
sprite = "GARGA1"; sprite = "BGARA1";
width = 16; width = 16;
height = 40; height = 40;
flags4text = "[4] Slides when pushed"; flags4text = "[4] Slides when pushed";
@ -5706,8 +5706,8 @@ thingtypes
{ {
arrow = 1; arrow = 1;
blocking = 2; blocking = 2;
title = "Trapgoyle (Long)"; title = "Glaregoyle (Long)";
sprite = "GARGA1"; sprite = "BGARA1";
width = 16; width = 16;
height = 40; height = 40;
flags4text = "[4] Slides when pushed"; 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_ARROW",
"S_ARROWBONK", "S_ARROWBONK",
// Trapgoyle Demon fire // Glaregoyle Demon fire
"S_DEMONFIRE", "S_DEMONFIRE",
// GFZ flowers // GFZ flowers
@ -6086,29 +6086,35 @@ static const char *const STATE_LIST[] = { // array length left dynamic for sanit
"S_WALLVINE_LONG", "S_WALLVINE_LONG",
"S_WALLVINE_SHORT", "S_WALLVINE_SHORT",
// Trapgoyles // Glaregoyles
"S_TRAPGOYLE", "S_GLAREGOYLE",
"S_TRAPGOYLE_CHECK", "S_GLAREGOYLE_CHARGE",
"S_TRAPGOYLE_FIRE1", "S_GLAREGOYLE_BLINK",
"S_TRAPGOYLE_FIRE2", "S_GLAREGOYLE_HOLD",
"S_TRAPGOYLE_FIRE3", "S_GLAREGOYLE_FIRE",
"S_TRAPGOYLEUP", "S_GLAREGOYLE_LOOP",
"S_TRAPGOYLEUP_CHECK", "S_GLAREGOYLE_COOLDOWN",
"S_TRAPGOYLEUP_FIRE1", "S_GLAREGOYLEUP",
"S_TRAPGOYLEUP_FIRE2", "S_GLAREGOYLEUP_CHARGE",
"S_TRAPGOYLEUP_FIRE3", "S_GLAREGOYLEUP_BLINK",
"S_TRAPGOYLEDOWN", "S_GLAREGOYLEUP_HOLD",
"S_TRAPGOYLEDOWN_CHECK", "S_GLAREGOYLEUP_FIRE",
"S_TRAPGOYLEDOWN_FIRE1", "S_GLAREGOYLEUP_LOOP",
"S_TRAPGOYLEDOWN_FIRE2", "S_GLAREGOYLEUP_COOLDOWN",
"S_TRAPGOYLEDOWN_FIRE3", "S_GLAREGOYLEDOWN",
"S_TRAPGOYLELONG", "S_GLAREGOYLEDOWN_CHARGE",
"S_TRAPGOYLELONG_CHECK", "S_GLAREGOYLEDOWN_BLINK",
"S_TRAPGOYLELONG_FIRE1", "S_GLAREGOYLEDOWN_HOLD",
"S_TRAPGOYLELONG_FIRE2", "S_GLAREGOYLEDOWN_FIRE",
"S_TRAPGOYLELONG_FIRE3", "S_GLAREGOYLEDOWN_LOOP",
"S_TRAPGOYLELONG_FIRE4", "S_GLAREGOYLEDOWN_COOLDOWN",
"S_TRAPGOYLELONG_FIRE5", "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 // ATZ's Red Crystal/Target
"S_TARGET_IDLE", "S_TARGET_IDLE",
@ -6120,6 +6126,9 @@ static const char *const STATE_LIST[] = { // array length left dynamic for sanit
// ATZ's green flame // ATZ's green flame
"S_GREENFLAME", "S_GREENFLAME",
// ATZ Blue Gargoyle
"S_BLUEGARGOYLE",
// Stalagmites // Stalagmites
"S_STG0", "S_STG0",
"S_STG1", "S_STG1",
@ -7309,8 +7318,8 @@ static const char *const STATE_LIST[] = { // array length left dynamic for sanit
"S_BUMBLEBORE_STUCK2", "S_BUMBLEBORE_STUCK2",
"S_BUMBLEBORE_DIE", "S_BUMBLEBORE_DIE",
"S_BBUZZFLY1", "S_BUGGLEIDLE",
"S_BBUZZFLY2", "S_BUGGLEFLY",
"S_SMASHSPIKE_FLOAT", "S_SMASHSPIKE_FLOAT",
"S_SMASHSPIKE_EASE1", "S_SMASHSPIKE_EASE1",
@ -7706,7 +7715,7 @@ static const char *const MOBJTYPE_LIST[] = { // array length left dynamic for s
"MT_CANNONBALL", // Cannonball "MT_CANNONBALL", // Cannonball
"MT_CANNONBALLDECOR", // Decorative/still cannonball "MT_CANNONBALLDECOR", // Decorative/still cannonball
"MT_ARROW", // Arrow "MT_ARROW", // Arrow
"MT_DEMONFIRE", // Trapgoyle fire "MT_DEMONFIRE", // Glaregoyle fire
// Greenflower Scenery // Greenflower Scenery
"MT_GFZFLOWER1", "MT_GFZFLOWER1",
@ -7869,12 +7878,13 @@ static const char *const MOBJTYPE_LIST[] = { // array length left dynamic for s
// Egg Rock Scenery // Egg Rock Scenery
// Azure Temple Scenery // Azure Temple Scenery
"MT_TRAPGOYLE", "MT_GLAREGOYLE",
"MT_TRAPGOYLEUP", "MT_GLAREGOYLEUP",
"MT_TRAPGOYLEDOWN", "MT_GLAREGOYLEDOWN",
"MT_TRAPGOYLELONG", "MT_GLAREGOYLELONG",
"MT_TARGET", "MT_TARGET",
"MT_GREENFLAME", "MT_GREENFLAME",
"MT_BLUEGARGOYLE",
// Stalagmites // Stalagmites
"MT_STALAGMITE0", "MT_STALAGMITE0",
@ -8149,7 +8159,7 @@ static const char *const MOBJTYPE_LIST[] = { // array length left dynamic for s
"MT_HIVEELEMENTAL", "MT_HIVEELEMENTAL",
"MT_BUMBLEBORE", "MT_BUMBLEBORE",
"MT_BUBBLEBUZZ", "MT_BUGGLE",
"MT_SMASHINGSPIKEBALL", "MT_SMASHINGSPIKEBALL",
"MT_CACOLANTERN", "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, 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 {SPR_WVIN, 1|FF_PAPERSPRITE, -1, {NULL}, 0, 0, S_NULL}, // S_WALLVINE_SHORT
// Trapgoyles // Glaregoyles
{SPR_BGAR, 0, 67, {NULL}, 0, 0, S_TRAPGOYLE_CHECK}, // S_TRAPGOYLE {SPR_BGAR, 0, 22, {NULL}, 0, 0, S_GLAREGOYLE_CHARGE}, // S_GLAREGOYLE
{SPR_BGAR, 0, 3, {NULL}, 0, 0, S_TRAPGOYLE_FIRE1}, // S_TRAPGOYLE_CHECK {SPR_BGAR, 2, 6, {NULL}, 0, 0, S_GLAREGOYLE_BLINK}, // S_GLAREGOYLE_CHARGE
{SPR_BGAR, 0, 1, {A_TrapShot}, (16<<16)+MT_DEMONFIRE, (30<<16), S_TRAPGOYLE_FIRE2}, // S_TRAPGOYLE_FIRE1 {SPR_BGAR, FF_ANIMATE|1, 18, {NULL}, 1, 3, S_GLAREGOYLE_HOLD}, // S_GLAREGOYLE_BLINK
{SPR_BGAR, 0, 1, {A_TrapShot}, (16<<16)+MT_DEMONFIRE, (30<<16), S_TRAPGOYLE_FIRE3}, // S_TRAPGOYLE_FIRE2 {SPR_BGAR, 1, 9, {NULL}, 0, 0, S_GLAREGOYLE_FIRE}, // S_GLAREGOYLE_HOLD
{SPR_BGAR, 0, 1, {A_TrapShot}, (16<<16)+MT_DEMONFIRE, (30<<16), S_TRAPGOYLE}, // S_TRAPGOYLE_FIRE3 {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, 22, {NULL}, 0, 0, S_GLAREGOYLEUP_CHARGE}, // S_GLAREGOYLEUP
{SPR_BGAR, 0, 3, {NULL}, 0, 0, S_TRAPGOYLEUP_FIRE1}, // S_TRAPGOYLEUP_CHECK {SPR_BGAR, 2, 6, {NULL}, 0, 0, S_GLAREGOYLEUP_BLINK}, // S_GLAREGOYLEUP_CHARGE
{SPR_BGAR, 0, 1, {A_TrapShot}, (16<<16)+MT_DEMONFIRE, (30<<16)+45, S_TRAPGOYLEUP_FIRE2}, // S_TRAPGOYLEUP_FIRE1 {SPR_BGAR, FF_ANIMATE|1, 18, {NULL}, 1, 3, S_GLAREGOYLEUP_HOLD}, // S_GLAREGOYLEUP_BLINK
{SPR_BGAR, 0, 1, {A_TrapShot}, (16<<16)+MT_DEMONFIRE, (30<<16)+45, S_TRAPGOYLEUP_FIRE3}, // S_TRAPGOYLEUP_FIRE2 {SPR_BGAR, 1, 9, {NULL}, 0, 0, S_GLAREGOYLEUP_FIRE}, // S_GLAREGOYLEUP_HOLD
{SPR_BGAR, 0, 1, {A_TrapShot}, (16<<16)+MT_DEMONFIRE, (30<<16)+45, S_TRAPGOYLEUP}, // S_TRAPGOYLEUP_FIRE3 {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, 22, {NULL}, 0, 0, S_GLAREGOYLEDOWN_CHARGE}, // S_GLAREGOYLEDOWN
{SPR_BGAR, 0, 3, {NULL}, 0, 0, S_TRAPGOYLEDOWN_FIRE1}, // S_TRAPGOYLEDOWN_CHECK {SPR_BGAR, 2, 6, {NULL}, 0, 0, S_GLAREGOYLEDOWN_BLINK}, // S_GLAREGOYLEDOWN_CHARGE
{SPR_BGAR, 0, 1, {A_TrapShot}, (16<<16)+MT_DEMONFIRE, (30<<16)+315, S_TRAPGOYLEDOWN_FIRE2}, // S_TRAPGOYLEDOWN_FIRE1 {SPR_BGAR, FF_ANIMATE|1, 18, {NULL}, 1, 3, S_GLAREGOYLEDOWN_HOLD}, // S_GLAREGOYLEDOWN_BLINK
{SPR_BGAR, 0, 1, {A_TrapShot}, (16<<16)+MT_DEMONFIRE, (30<<16)+315, S_TRAPGOYLEDOWN_FIRE3}, // S_TRAPGOYLEDOWN_FIRE2 {SPR_BGAR, 1, 9, {NULL}, 0, 0, S_GLAREGOYLEDOWN_FIRE}, // S_GLAREGOYLEDOWN_HOLD
{SPR_BGAR, 0, 1, {A_TrapShot}, (16<<16)+MT_DEMONFIRE, (30<<16)+315, S_TRAPGOYLEDOWN}, // S_TRAPGOYLEDOWN_FIRE3 {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, 90, {NULL}, 0, 0, S_GLAREGOYLELONG_CHARGE}, // S_GLAREGOYLELONG
{SPR_BGAR, 0, 3, {NULL}, 0, 0, S_TRAPGOYLELONG_FIRE1}, // S_TRAPGOYLELONG_CHECK {SPR_BGAR, 2, 6, {NULL}, 0, 0, S_GLAREGOYLELONG_BLINK}, // S_GLAREGOYLELONG_CHARGE
{SPR_BGAR, 0, 1, {A_TrapShot}, (16<<16)+MT_DEMONFIRE, (30<<16), S_TRAPGOYLELONG_FIRE2}, // S_TRAPGOYLELONG_FIRE1 {SPR_BGAR, FF_ANIMATE|1, 18, {NULL}, 1, 3, S_GLAREGOYLELONG_HOLD}, // S_GLAREGOYLELONG_BLINK
{SPR_BGAR, 0, 1, {A_TrapShot}, (16<<16)+MT_DEMONFIRE, (30<<16), S_TRAPGOYLELONG_FIRE3}, // S_TRAPGOYLELONG_FIRE2 {SPR_BGAR, 1, 9, {NULL}, 0, 0, S_GLAREGOYLELONG_FIRE}, // S_GLAREGOYLELONG_HOLD
{SPR_BGAR, 0, 1, {A_TrapShot}, (16<<16)+MT_DEMONFIRE, (30<<16), S_TRAPGOYLELONG_FIRE4}, // S_TRAPGOYLELONG_FIRE3 {SPR_BGAR, 1, 1, {A_TrapShot}, (16<<16)+MT_DEMONFIRE, (30<<16), S_GLAREGOYLELONG_LOOP}, // S_GLAREGOYLELONG_FIRE
{SPR_BGAR, 0, 1, {A_TrapShot}, (16<<16)+MT_DEMONFIRE, (30<<16), S_TRAPGOYLELONG_FIRE5}, // S_TRAPGOYLELONG_FIRE4 {SPR_BGAR, 1, 0, {A_Repeat}, 5, S_GLAREGOYLELONG_FIRE, S_GLAREGOYLELONG_COOLDOWN}, // S_GLAREGOYLELONG_LOOP
{SPR_BGAR, 0, 1, {A_TrapShot}, (16<<16)+MT_DEMONFIRE, (30<<16), S_TRAPGOYLELONG}, // S_TRAPGOYLELONG_FIRE5 {SPR_BGAR, FF_ANIMATE|1, 15, {NULL}, 1, 9, S_GLAREGOYLELONG}, // S_GLAREGOYLELONG_COOLDOWN
// Target/Red Crystal // Target/Red Crystal
{SPR_RCRY, 0, -1, {NULL}, 0, 0, S_TARGET_IDLE}, // S_TARGET_IDLE {SPR_RCRY, 0, -1, {NULL}, 0, 0, S_TARGET_IDLE}, // S_TARGET_IDLE
@ -2561,6 +2567,9 @@ state_t states[NUMSTATES] =
// Green flame // Green flame
{SPR_CFLM, FF_FULLBRIGHT|FF_ANIMATE|FF_RANDOMANIM, -1, {NULL}, 7, 3, S_GREENFLAME}, // S_GREENFLAME {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 // Stalagmites
{SPR_STLG, 0, -1, {NULL}, 0, 0, S_NULL}, // S_STG0 {SPR_STLG, 0, -1, {NULL}, 0, 0, S_NULL}, // S_STG0
{SPR_STLG, 1, -1, {NULL}, 0, 0, S_NULL}, // S_STG1 {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, 120, {NULL}, 0, 0, S_BUMBLEBORE_DIE}, // S_BUMBLEBORE_STUCK2
{SPR_BUMB, 5, 0, {A_CryingToMomma}, 0, 0, S_XPLD1}, // S_BUMBLEBORE_DIE {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, 0, -1, {NULL}, 0, 0, S_NULL}, // S_BUGGLEIDLE
{SPR_BBUZ, 1, 2, {NULL}, 0, 0, S_BBUZZFLY1}, // S_BBUZZFLY2 {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, 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 {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 S_NULL // raisestate
}, },
{ // MT_TRAPGOYLE { // MT_GLAREGOYLE
1500, // doomednum 1500, // doomednum
S_TRAPGOYLE, // spawnstate S_GLAREGOYLE, // spawnstate
1000, // spawnhealth 1000, // spawnhealth
S_NULL, // seestate S_NULL, // seestate
sfx_None, // seesound sfx_None, // seesound
@ -13553,9 +13562,9 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
S_NULL // raisestate S_NULL // raisestate
}, },
{ // MT_TRAPGOYLEUP { // MT_GLAREGOYLEUP
1501, // doomednum 1501, // doomednum
S_TRAPGOYLEUP, // spawnstate S_GLAREGOYLEUP, // spawnstate
1000, // spawnhealth 1000, // spawnhealth
S_NULL, // seestate S_NULL, // seestate
sfx_None, // seesound sfx_None, // seesound
@ -13580,9 +13589,9 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
S_NULL // raisestate S_NULL // raisestate
}, },
{ // MT_TRAPGOYLEDOWN { // MT_GLAREGOYLEDOWN
1502, // doomednum 1502, // doomednum
S_TRAPGOYLEDOWN,// spawnstate S_GLAREGOYLEDOWN,// spawnstate
1000, // spawnhealth 1000, // spawnhealth
S_NULL, // seestate S_NULL, // seestate
sfx_None, // seesound sfx_None, // seesound
@ -13607,9 +13616,9 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
S_NULL // raisestate S_NULL // raisestate
}, },
{ // MT_TRAPGOYLELONG { // MT_GLAREGOYLELONG
1503, // doomednum 1503, // doomednum
S_TRAPGOYLELONG,// spawnstate S_GLAREGOYLELONG,// spawnstate
1000, // spawnhealth 1000, // spawnhealth
S_NULL, // seestate S_NULL, // seestate
sfx_None, // seesound sfx_None, // seesound
@ -13688,6 +13697,33 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
S_NULL // raisestate 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 { // MT_STALAGMITE0
1900, // doomednum 1900, // doomednum
S_STG0, // spawnstate S_STG0, // spawnstate
@ -20073,11 +20109,11 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
S_NULL // raisestate S_NULL // raisestate
}, },
{ // MT_BUBBLEBUZZ { // MT_BUGGLE
124, // doomednum 124, // doomednum
S_BBUZZFLY1, // spawnstate S_BUGGLEIDLE, // spawnstate
1, // spawnhealth 1, // spawnhealth
S_BBUZZFLY1, // seestate S_BUGGLEFLY, // seestate
sfx_None, // seesound sfx_None, // seesound
2, // reactiontime 2, // reactiontime
sfx_None, // attacksound sfx_None, // attacksound

View File

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

View File

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