Virtual function for radius damage filtering

Remember, just because you request it, that doesn't mean you'll get it.

Moderator: GZDoom Developers

User avatar
Arctangent
Posts: 1235
Joined: Thu Nov 06, 2014 1:53 pm
Contact:

Virtual function for radius damage filtering

Post by Arctangent »

As-is, there's not any real good way for several monsters to share an explosive attack they're collectively immune to while remaining different species ( and thus, not immune to other explosive attacks from each other ). This also goes for just plain creating monsters that are completely immune to the effects of one type of explosive while remaining completely vulnerable to others. Being able to tell radius damage whether or not to ignore certain actors through a virtual function would be handy for these sorts of situations, especially considering A_Explode isn't the simplest function to duplicate.

Damage types and the current damage-related virtual functions don't currently accomplish this adequately, as P_RadiusAttack doesn't check the damage dealt to determine how much thrust is put on those caught in the blast radius, not to mention that dealing 0 damage is still dealing damage and thus can affect SHOOTABLE or VULNERABLE actors.
User avatar
Major Cooke
Posts: 8175
Joined: Sun Jan 28, 2007 3:55 pm
Preferred Pronouns: He/Him
Location: QZDoom Maintenance Team

Re: Virtual function for radius damage filtering

Post by Major Cooke »

I made GetRadiusDamage to help mitigate this issue, actually, so now I have my own custom A_Explode functions.

It's not a perfect solution, but you can definitely use a blockthingsiterator to help ease up on the searching at least. You'll still have to set up a few things manually but that at least gets the correct damage values based on distance.

Note that it only calculates raw damage, it does not factor in anything - only distance.
Post Reply

Return to “Feature Suggestions [GZDoom]”