Serathis:
It was already a significant concession to the "Z word" that they're undead at all in HD.
I've tended to leave it unsaid that the soul sphere and blue potions are iconic of baptismal waters.
As for the cyberdemon, I was getting a bit worried since it was very easy to dodge their shots from the other end of the range... but then I wasn't trying to return fire! I may lower their aggressiveness somewhat, just to keep them in character. (limited rocket ammo; alternate fireball drains shields)
SD12: oops, forgot about those questions!
HD's wound system is built into the heartbeat function called by the ticker. Every so many beats, if a random number exceeds an amount derived from the wound amount and blood pressure, some damage is dealt to the player to represent the bleeding.
Your blood pressure goes up with pain and exertion and slowly goes down after a while. It slows down bleeding so ideally you should be able to finish a fight without exsanguinating in the middle of it.
To implement this without redefining an actor and overriding Tick(), you could use an inventory that is given in a painstate (or by the attack puff), and set the numbers on the inventory actor and track things with DoEffect() instead.
Bleeding on monsters right now is really just a bit of damage every see state cycle in which the monster's health is below a certain threshold. For players, it depends on the type of damage you take, as can be seen in the DamageMobj() override - SmallsArms1 through 3 deal the most, bleeding does none, unspecified stuff has a tiny random chance of dealing a tiny bit.
Re: DoomEdNums, like I said I do intend on doing proper versions of that sometime. I don't use GZDB and have no idea how they even handle randomspawners if at all.
The smooth chase is 3 basic steps:
1. Call A_Chase and save the new position
2. Revert to the original position and average out the old and new angles
3. Use the difference between the new and old positions to derive a velocity to add to the current velocity
Everything else is just dealing with edge cases, special situations (e.g., extra speed if fleeing) and bugs.