Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
drygnfyre

Pain Elemental fireballs

Recommended Posts

In an early Doom 2 beta, the pain elementals were capable of attacking the player with fireballs, just like the cacodemons. Is there any way for modern WADs to bring back this behavior, and if so, do any notable WADs make use of this?

Share this post


Link to post

A good idea might be to do a JumpIfCloser distance check to see if they should fire a fireball if close range or spit out a Lost Soul if medium to long range. This would also stop the Pain Elemental from becoming helpless at very close range.

Share this post


Link to post
13 minutes ago, drygnfyre said:

In an early Doom 2 beta, the pain elementals were capable of attacking the player with fireballs, just like the cacodemons. Is there any way for modern WADs to bring back this behavior, and if so, do any notable WADs make use of this?

Huh, I might have to implement this sometime.  Could be fun.  Do you recall what kind of fireball it was?  Or was it simply the Caco's fireball?

Share this post


Link to post
3 minutes ago, silentzorah said:

Huh, I might have to implement this sometime.  Could be fun.  Do you recall what kind of fireball it was?  Or was it simply the Caco's fireball?

Quote

Early screenshots of the game show the pain elemental firing the same fireball as the cacodemon, although the lost soul is still visible inside of it. If Doom II is loaded into the Doom 1.4 beta executable, pain elementals use the exact same attack sequence as cacodemons, including the ability to bite at melee range.

Pain_elemental_cacodemon_ball.png

Share this post


Link to post

The change would be so simple that it could be done even in vanilla compatible DEHACKED, by replacing "PainAttack" with "HeadAttack" on the Pain Elemental's attack state.

Share this post


Link to post

Well, since it's fun to speculate...

 

Presumably reusing HeadAttack was only ever a placeholder, since, as mentioned above, the emerging lost soul is drawn in the frames of the attack. On the other [unlikely] hand, maybe the PE was originally intended as a straightforward counterpart of the cacodemon with slightly different stats? Perhaps offering a variation with higher HP in the same way the HK offers a baron variation with lower? (In reality the PE has the same stats as the caco, but I can dream.)

Share this post


Link to post

I still think it should have a biting attack to prevent players from cheesing the fight. Would be more interesting.

Share this post


Link to post
16 hours ago, Sky said:

I still think it should have a biting attack to prevent players from cheesing the fight. Would be more interesting.

I like this idea, or the one about having the pain elemental spit a fireball if it's within close range (otherwise it spits out a lost soul when farther away).

Share this post


Link to post

Biting attack would be cheese-able too, as there would be a range in which the PE's target would be too far to bite, but too close to successfully spawn a Lost Soul between the PE and the target. I'd rather make the Lost Soul that gets spawned, and immediately dies when the space in front of the PE is blocked by the player's or some monster's body, hurt the respective player and/or monster in the process - I mean, this dying Lost Soul's mere touch would be the thing that causes damage, not another attack.

Share this post


Link to post
9 hours ago, scifista42 said:

Biting attack would be cheese-able too, as there would be a range in which the PE's target would be too far to bite, but too close to successfully spawn a Lost Soul between the PE and the target.

Is this inherently true, or could you just change the range of the attacks? I guess the minimum range for the Lost Soul attack would be slightly greater than the Lost Soul's diameter, but that diameter is pretty small.

Share this post


Link to post

I think it's more than likely that the programming for firing lost souls as an attack was still in development, so to create this monster they simply duplicated the cacodemon with a new thing ID and started plopping them around the maps. Its even possible that the pain elemental didn't even work as intended until late into Doom 2's development, considering how haphazardly they are used in the game, and in some of the maps they don't even fucking work. MAP09: The Pit for example.

Share this post


Link to post

The PEs not working on some maps is one of the most annoying things about what is otherwise my favorite iwad. Also if the PE bit at close range (the range for melee attacks is hardcoded) the fight would most certainly be more threatening, the effect would be identical to standing in a Caco's face which is of course very deadly. It's extremely rare for a monster to enter it's melee state in a position where it can't hit you.

Share this post


Link to post
On 4/25/2017 at 4:41 AM, Sky said:

I still think it should have a biting attack to prevent players from cheesing the fight. Would be more interesting.

For my next map I've actually given pain elementals a biting attack, as well as made them cause explosive damage when they die, right before they spawn the lost souls.

 

The code:

actor PElExplodeDamage
{
  Radius 4
  Height 2
  Speed 0
  Projectile
  States
  {
  Spawn:
    TNT1 A 1
    TNT1 A 1 A_Explode (50, 96)
    stop
  }
}
actor PainElementalNEIS2 :  PainElemental Replaces PainElemental
{
  States
  {
  Melee:
    PAIN D 5 A_FaceTarget
    PAIN E 5 A_FaceTarget
    PAIN F 5 A_FaceTarget
    PAIN F 0 A_CustomMeleeAttack(random(1, 10) * 6)
    Goto See
    
    Death:
    PAIN H 8 Bright
    PAIN I 8 Bright A_Scream
    PAIN J 8 Bright
    PAIN K 8 Bright A_SpawnItem ("PElExplodeDamage", 0, 40)
    PAIN L 8 Bright A_PainDie
    PAIN M 8 Bright
    Stop
  }
}

 

Edited by NaturalTvventy

Share this post


Link to post
On 26. dubna 2017 at 6:33 PM, Not Jabba said:

Is this inherently true, or could you just change the range of the attacks? I guess the minimum range for the Lost Soul attack would be slightly greater than the Lost Soul's diameter, but that diameter is pretty small.

It's not inherently true, but a truly safe melee range would have to be a lot greater than you assume, to the point that I'd consider it unnaturally big. Firstly, melee range is measured from the monster's center to the target's center. Secondly, PE spawns its Lost Soul in a fixed distance in front of itself (again measured from its center), and here is the formula for the distance:

prestep =
	4*FRACUNIT
	+ 3*(actor->info->radius + mobjinfo[MT_SKULL].radius)/2;

PE's radius is 31 map units, Lost Soul's radius is 16 map units, so the distance is 4+3*(31+16)/2 = 74.5 map units. A safe melee range would have to be this number + the Lost Soul's radius at angle 45° (which is 22,65) + the target's radius at angle 45° (which is unpredictable, as the target can be anything, but if it's the player, it'd be also 22.65), so in case of the player being the target, the (almost) safe range would have to be 119,8 map units. For comparison, the default melee range is 60, and once again note that this is the distance from the monster's center to the target's center, not from the edge of their hitbox. Also, the abovementioned (almost) safe range would still fail if the Lost Soul couldn't make a step in any direction from the place where it was spawned, in which case it'd die just as if it was physically blocked. That's why I'd prefer the dying Lost Soul to be damaging itself, rather than changing the PE's attack depending on distance from its target.

 

Edited by scifista42

Share this post


Link to post
On 4/27/2017 at 7:41 PM, 40oz said:

I think it's more than likely that the programming for firing lost souls as an attack was still in development, so to create this monster they simply duplicated the cacodemon with a new thing ID and started plopping them around the maps. Its even possible that the pain elemental didn't even work as intended until late into Doom 2's development, considering how haphazardly they are used in the game, and in some of the maps they don't even fucking work. MAP09: The Pit for example.

The reason for them not firing in the pit is because if you go a certain route and avoid the room with the stairs and the shit ton of lost souls or the courtyard area with the secret full of lost souls due to hardware limitations of the time and no to completely overwhelm the player there is a 21 lost soul per map limit therefore pain elementals cant spawn lost souls  unless the number is less that 20.

Share this post


Link to post
On 4/28/2017 at 5:22 AM, scifista42 said:

...That's why I'd prefer the dying Lost Soul to be damaging itself, rather than changing the PE's attack depending on distance from its target.

You read my mind. Also, if the lost souls must be limited to 21, I would have gone with

max_lost_souls = 21 + lost_souls_at_map_start

The code changes for Doom2 caused a lot of problems:

PEs: Lost souls are no longer counted as monsters

PEs: Lost souls flying outside the map

Revenants: Messing up demos

Archvile: Making 0-height ghosts

Mancubus: Missiles flying through walls

Doom 2 missiles: Activating linedefs

 

I'm sure I missed some. They blazed through the new code, at id's normal "write it once and let it roll" speed.

Share this post


Link to post
4 hours ago, kb1 said:

The code changes for Doom2 caused a lot of problems:

Mancubus: Missiles flying through walls

 

Technically, 1) Baron projectiles did this in Doom 1 already, Mancubus ones are just more likely to do it because they're even faster, and 2) it's not a result of any code change, but of the high speed + low radius stats of the projectile type.

Share this post


Link to post
14 hours ago, scifista42 said:

 

Technically, 1) Baron projectiles did this in Doom 1 already, Mancubus ones are just more likely to do it because they're even faster, and 2) it's not a result of any code change, but of the high speed + low radius stats of the projectile type.

1. Didn't know that.

2. It's the *lack* of code changes on the Mancubus. At one time, all of these effects were known, and care was taken to prevent issues. But, by the time it came to write Doom 2, I think they just slapped the new monsters in, and, instead of going back a doing thorough checks against the rest of the game, they just did some testing, and released it, totally forgetting out previous issues and quick fixes. And, I don't really blame them all that much: We're still finding bugs decades later, after all. I'm just making observations, and, as usual, trying to gain better understandings of how id operated, and what it was like to work on this iconic game. Everything I study screams "code marathon" and "bust it out as quick as possible" mentality.

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×