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

More Heretic Questions

Recommended Posts

The knowledge of Heretic's inner workings isn't nearly as widespread as the knowledge of Doom's, and there are oodles of things I'm curious about. I guess I should learn to read source code, but until then:

1. How does the damage for the powered-up firemace work? I'm guessing that it's specifically coded to gib small monsters, because it seems to be much weaker against bosses. Is it?

2. Are Maulotaurs and D'sparil vulnerable to splash damage?

3. Is there any special trick to terminating iron lich tornadoes, or is their lifespan just random?

Share this post


Link to post
Creaphis said:

1. How does the damage for the powered-up firemace work? I'm guessing that it's specifically coded to gib small monsters, because it seems to be much weaker against bosses. Is it?

Firemace is explained here: http://zdoom.org/wiki/Classes:MaceFX4
It's an 18 damage projectile, which is actually 18 to 8*18, or 18 to 144. Slightly weaker than a rocket or phoenix ball without the explosion (they are 20, meaning 20 to 160, and their explosion is 128).

Creaphis said:

2. Are Maulotaurs and D'sparil vulnerable to splash damage?

http://zdoom.org/wiki/Classes:Minotaur
http://zdoom.org/wiki/Classes:Sorcerer1
http://zdoom.org/wiki/Classes:Sorcerer2

They all have +NORADIUSDMG, so no. And in case you are wondering, yes, Liches are vulnerable: http://zdoom.org/wiki/Classes:Ironlich

Creaphis said:

3. Is there any special trick to terminating iron lich tornadoes, or is their lifespan just random?

http://zdoom.org/wiki/Classes:Whirlwind Maybe they terminate when they hit a wall like revenant rockets? :| Not sure. It could be timed, since it has the +EXPLOCOUNT flag, which says "MF3_EXPLOCOUNT = 0x00000800, // Don't explode until special2 counts to special1" if you search it in DOOM Wiki.


P.S. Kind of sad that ZDoom wiki has a lot more info about DOOM and Heretic than the DOOM wiki

Share this post


Link to post

The MaceFX4 info omits one crucial fact. The projectile is 100% deadly to non-bosses. It contains some special coding in the engine.

About the whirlwind, the coding is a bit weird and very hard to explain. I'm sorry I can't.

Share this post


Link to post
Graf Zahl said:

The MaceFX4 info omits one crucial fact. The projectile is 100% deadly to non-bosses. It contains some special coding in the engine.


Well it mentions that up in the text at the top of the article.

I actually don't know DECORATE either, but that page also seems to say that a powered-up mace sphere, against bosses, does... 18 damage? That's really all it does?

Graf Zahl said:

About the whirlwind, the coding is a bit weird and very hard to explain. I'm sorry I can't.


Fair enough. All I really wanted to know is whether there's a special way that I, the player, could actively destroy them. I'm sick of waiting for them to dissipate, though I suppose that if I now finally found out that there's an easy way to get rid of them I would kick myself.

Share this post


Link to post
Creaphis said:

I actually don't know DECORATE either, but that page also seems to say that a powered-up mace sphere, against bosses, does... 18 damage? That's really all it does?


No, projectiles do from 1 to 8 times their listed amount in DECORATE. So it would actually do 18 to 144.

Share this post


Link to post
Creaphis said:

Fair enough. All I really wanted to know is whether there's a special way that I, the player, could actively destroy them. I'm sick of waiting for them to dissipate, though I suppose that if I now finally found out that there's an easy way to get rid of them I would kick myself.

Quasar mentioned this in IRC once a long time ago. I hate those damn things too, and for the Heretic maps I'm making for Eternity, I'm going to code a special tornado-less Iron Lich into a custom EDF to use for 98% of the liches so that the maps are playable.

Anyway, IIRC the problem is that their countdown timer is only active while they're moving. So if they get stuck against a wall and aren't going anywhere, then they'll last indefinitely. That's why they always seem to expire only after you've run through them after waiting half a lifespan. No, it wouldn't have made a difference if you'd just waited a few more seconds, so save the facepalming.

Share this post


Link to post
Lüt said:

So if they get stuck against a wall and aren't going anywhere, then they'll last indefinitely. That's why they always seem to expire only after you've run through them after waiting half a lifespan. No, it wouldn't have made a difference if you'd just waited a few more seconds, so save the facepalming.


I don't think this is right either. I just tested, by getting tornadoes stuck in place, and by standing still so that they wouldn't change their attempted direction of motion. The tornadoes still all disappeared, but some take longer than others to do so.

Yeah, their attacks could be remixed, definitely. They're just slow lumps and no real threat (which goes for many Heretic monsters).

Share this post


Link to post
Creaphis said:

I don't think this is right either. I just tested, by getting tornadoes stuck in place, and by standing still so that they wouldn't change their attempted direction of motion. The tornadoes still all disappeared, but some take longer than others to do so.

Are you sure they aren't inching along ever so slightly? Sometimes they do move at like 1 pixel per minute. Unnoticable to the player, but still counts as movement to the engine. The best testing method would be to get it caught trying to pass through a 90º corner at a 45º angle, not against a flat wall on which it can slide.

Share this post


Link to post

Whirlwinds start with 1000 health and disappear when they have 0 left.

A whirlwind loses 1-8 health per collision with any thing or wall. It can collide with something every 3 tic's or 11.6 times a second.

This means assuming my math is correct, that a whirwind can last anything from approx 10.5 to 86 seconds if it collides with something every 3 tic's after it is spawned.

Least I think its how it works.

Share this post


Link to post

Maybe the original and DECORATE implementations of the whirlwind are functionally similar, but different under the hood. Vermil's theory sounds compelling but there's nothing in the DECORATE definition about hit points (nor does it have +NORADIUSDMG which I presume would be necessary to prevent you from killing the whirlwind with your pheonix rod).

Or instead of idle speculation I'll just trust Graf that it's complicated and not worth explaining.

Share this post


Link to post

Heh, well at the least, I can say that I've "killed" quite a few lingerers by running past them into an open space and letting them expire as they try to catch up with me. That's as scientific as my methods get :P

Share this post


Link to post
Creaphis said:

(nor does it have +NORADIUSDMG which I presume would be necessary to prevent you from killing the whirlwind with your pheonix rod).



It doesn't need to. Only things with the SHOOTABLE flag can be hurt. Concerning the lifespan of the whirlwind, that cannot be derived from the DECORATE definition. The function A_LichAttack (A_HeadAttack in the original code) initializes some variables that are manipulated in the thinker function.

The actual lifespan calculation is done in A_WhirlwindSeek with some special handling at the start of P_ExplodeMissile. And this is the tricky part: P_ExplodeMissile can only be called if the tornado collides with something, either a wall or an object so unless it freely moves this check only comes into play in certain situations.
A_WhirlwindSeek contains a different counter, too, that kills the tornado after 20 seconds no matter what. So saying that it can live infinitely is apparently wrong. 20 seconds looks to be the maximum but due to the other checks it can expire earlier. Of course 20 seconds can seem like an eternity in a fast paced game... ;)

Share this post


Link to post
Creaphis said:

Maybe the original and DECORATE implementations of the whirlwind are functionally similar, but different under the hood. Vermil's theory sounds compelling but there's nothing in the DECORATE definition about hit points (nor does it have +NORADIUSDMG which I presume would be necessary to prevent you from killing the whirlwind with your pheonix rod).

Or instead of idle speculation I'll just trust Graf that it's complicated and not worth explaining.


I was reading from the original Heretic source.

The reason the Decorate def doesn't show what I was talking about is because it is tied into the src code for the hardcoded "A_WhirlwindSeek" action.

The Whirlwind doesn't need a no radius damage flag because it isn't shootable in the first place.

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
×