mirror of
https://git.do.srb2.org/STJr/SRB2.git
synced 2025-03-12 22:02:12 +00:00
Merge branch 'atz-hazards' into 'master'
Azure Temple Zone hazards, round 2 See merge request STJr/SRB2Internal!437
This commit is contained in:
commit
d9558fb724
6 changed files with 176 additions and 115 deletions
|
@ -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";
|
||||
|
|
|
@ -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",
|
||||
|
|
108
src/info.c
108
src/info.c
|
@ -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
|
||||
|
|
74
src/info.h
74
src/info.h
|
@ -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,
|
||||
|
|
|
@ -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)
|
||||
|
|
15
src/p_mobj.c
15
src/p_mobj.c
|
@ -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;
|
||||
|
|
Loading…
Reference in a new issue