Sign in to follow this  
Followers 0

BOUNCES objects don't hurt bosses in Eternity

Just so anyone interested may know, in MBF the thing types flagged as BOUNCES would breach through the bosses' defenses when exploding. That was implemented because it was customary to replace the Doom rockets with bouncing grenades whose only damage was the explosion, no contact damage there. There had to be a way to kill bosses with that weapon, and BOUNCES worked around that by making them breach the BOSS defense.

But Eternity removed this breach. I'm not even sure if it was ever mentioned. Anyone who wants to preserve the effect should make an EDF with a thingdelta with addflags FORCERADIUSDMG, otherwise they'll have the object unintendedly ineffectual against bosses.

Share this post


Link to post

Yeah I may second-think the change... The problem is, with the way Killough coded it, it's highly specific and difficult to control externally - it messes with any other features, like FORCERADIUSDMG and NORADIUSDMG, that we want to add.

Share this post


Link to post

Here's how I addressed it in ZDoom, with my reasoning:

	// MBF also considers that bouncers that explode are grenades, and MBF grenades
	// are supposed to hurt everything, except cyberdemons if they're fired by cybies.
	// Let's translate that in a more generic way as grenades which hurt everything
	// except the class of their shooter. Yes, it does diverge a bit from MBF, as for
	// example a dehacked arachnotron that shoots grenade would kill itself quickly
	// in MBF and will not here. But class-specific checks are cumbersome and limiting.
	info->flags4 |= (MF4_FORCERADIUSDMG | MF4_DONTHARMCLASS);

Share this post


Link to post

Not a bad idea, although EE does not currently have a "DONTHARMCLASS" flag.

Share this post


Link to post
Gez said:

Here's how I addressed it in ZDoom, with my reasoning:

	// MBF also considers that bouncers that explode are grenades, and MBF grenades
	// are supposed to hurt everything, except cyberdemons if they're fired by cybies.
	// Let's translate that in a more generic way as grenades which hurt everything
	// except the class of their shooter. Yes, it does diverge a bit from MBF, as for
	// example a dehacked arachnotron that shoots grenade would kill itself quickly
	// in MBF and will not here. But class-specific checks are cumbersome and limiting.
	info->flags4 |= (MF4_FORCERADIUSDMG | MF4_DONTHARMCLASS);

How about this way: The Cyberdemons would get a new flag, such as MFx_CYBERDEMON, which would make them the sole creatures immune to their own species' grenades, and if the author wanted another such creature, they'd give it the CYBERDEMON flag as well. That would replace the class-specific with a flag-specific check. Same like how KILLABLE got created to remove the Lost Soul specific check when their COUNTKILL bit got removed by Id.

Wouldn't Gez's implementation make the marine immune to their own grenades, or is the player a special case and not a species like the monsters?

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
Sign in to follow this  
Followers 0