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.
Virtual function for radius damage filtering
Moderator: GZDoom Developers
- Arctangent
- Posts: 1235
- Joined: Thu Nov 06, 2014 1:53 pm
- Contact:
- 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
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.
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.