printz Posted December 29, 2011 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. 0 Share this post Link to post
Quasar Posted December 29, 2011 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. 0 Share this post Link to post
Gez Posted December 29, 2011 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); 0 Share this post Link to post
Quasar Posted December 29, 2011 Not a bad idea, although EE does not currently have a "DONTHARMCLASS" flag. 0 Share this post Link to post
printz Posted December 29, 2011 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? 0 Share this post Link to post