Changes

From DoomWiki.org

Blast damage

3,470 bytes added, 08:39, 6 June 2019
m
Extra effects in other games: update Sigil link
[[Image:Radius attack.png|thumb|right|'''Explosion blast damage.''' Here, B and C take the same damage because they are at the same x distance, and the x distance is larger than y for both. Both take 128-80=48 units damage. A and D take no damage since the line of sight is obstructed. (In this illustration, one pixel corresponds to one map unit.)]]In addition to inflicting damage from the direct hit, '''blast Blast damage''' (sometimes called attacks, also referred to as '''splash damage'') attacks ', inflict radius damage in the area surrounding their point of explosion (for , in addition to any damage inflicted by the direct hit from the source [[arch-vileactor]] attacks, 70 units; for . The original [[barrelDoom engine]]s uses the same code for all blasts, and [[player]] even the same sound effect. In that game, the blast radius is either 70 or [[cyberdemon]] [[rocket]]s, 128 units), and all objects within that radius are examined. Because For each object that can be damaged, the distance to the center of the explosion is calculated as the greater of the x-distance and the y-distance of thisthe centers, less the character using radius of the blast attack will also be damaged object. The line-of-sight is checked, and if the view of the object from the explosion occurs nearbyis obstructed, no damage is inflicted. Otherwise, damage (in [[hit point]]s) is equal to blast radius minus the distance. Other games based on the engine introduce more variability and additional mechanics to explosions.
An Unless specially coded as being immune to blast damage (see below), an enemy that is hit will receive full blast damage (unless it is immune; see below), because it is at a depending on its distance from the epicenter of zero from the blastexplosion on the X-Y plane. Counting both Since the center of the hit and thing doing damage is usually separated from the blasttarget by a small amount of distance, a successful [[rocket launcher]] attack averages about this is generally somewhat less than the same damage as full potential amount. There is no attenuation of the [[super shotgun]] at close range (about three times effect along the regular [[shotgun]])Z axis, but is equally effective at long rangehowever.
==Properties of radius attacks in Doom==Counting both the hit and the blast, a successful [[Cyberdemonrocket launcher]]s and attack averages about the same damage as the [[spiderdemonsuper shotgun]]s are immune to all blast damage at close range (which does not include about three times the tracer damage from regular [[BFG 9000|BFGshotgun]] blasts). Therefore, a greater number of rockets but is required to kill these [[boss]]es than might be expectedequally effective at long range.
The For [[Doom enginearch-vile]] uses attacks, the same code radius is 70 units; for [[barrel]]s and [[player]] or [[cyberdemon]] [[rocket]]s, it is 128 units. [[Cyberdemon]]s and [[spiderdemon]]s are immune to all blast damage (which does not include the tracer damage from [[BFG 9000|BFG]] blasts). Therefore, a greater number of rockets is required to kill these [[boss]]es than might be expected, and even they cannot be damaged at all by barrels. They receive only the same sound direct damage from arch-vile attacks. The arch-vile itself is ''not'' immune to blast radius damage, and may take splash-back from its own attacks if it is too close when the detonation of its flame cloud is initiated. It is possible for arch-viles to eventually kill themselves when engaging a target with sufficient health due to this effect. The Note that this does not cause arch-viles to [[monster infighting|infight]] with themselves, or with other arch-viles, due to the fact that arch-viles are specially excluded from being the target of monster infighting. ==Extra effects in other games== Blast radii induce certain other effects in other games based on the Doom engine. In [[Heretic]] and [[Hexen]], blast radius attacks will trigger [[terrain]] hit effects if they occur at a distance from the floor that is either 70 equal to or 128 unitsless than the explosion's radius. In [[Strife]], blast radius attacks fire four invisible non-damaging tracers in the cardinal directions. These tracers enable nearby blasts to break glass screens and all objects within windows. Most code that creates blast radius are examinedattacks in Strife will additionally make a call to the function <tt>P_NoiseAlert</tt> to awaken monsters and set off the alarm, though this is done separately outside the actual blast damage code itself. For each object  Extensions were also made in Hexen that can allow explosions to be damagedclipped to a certain z height around the projectile, have differing damage and radius measurements, the distance and to optionally not inflict damage to the center of actor which originated the explosion (such as is calculated used for [[Baratus]]'s [[Hammer of Retribution]]). In Heretic, all monsters flagged as being [[boss]]es are immune to splash damage attacks in the greater same manner as Doom's boss creatures. This includes the [[maulotaur]] and both forms of [[D'Sparil]], but does not include [[iron lich]]es. In Strife, only the x-distance [[inquisitor]] is specifically immune to blast damage, though the [[Spectre (Strife)|spectres]] and the y-distance of [[Entity]] are also immune to most blasts due to the centers, less fact that they are only allowed to take damage from the radius [[The Sigil of the objectOne God|Sigil]].  ==Non-reentrancy== The line-blast radius code, like virtually all ofthe clipping engine code in Doom, is [[Wikipedia:Reentrancy (computing)|non-sight is checkedreentrant]], meaning that it can cause recursive calls into the clipping engine and into its own code, but will not properly tolerate such calls and if will therefore malfunction. It is possible for the view ordering of the object from [[blockmap]] list used to damage objects in explosions to be changed during the explosion is obstructedcalculation simply through the calls it makes to the function <tt>P_DamageMobj</tt>, which can change the position of monsters, no and thereby inflict damage is inflictedto some monsters more than once. OtherwiseIf multiple explosions cause each other directly within the same gametic, the recursive explosions will interfere with previous explosions' damage (in [[hit point]]s) is equal to blast radius minus the distance, location, and blockmap iteration properties.
==See also==
* [[BFG9000]]
* [[Cyberdemon]]
* [[Fléchette]]
* [[Phoenix Rod]]
* [[Rocket launcher]]
* [[Timebomb of the Ancients]]
{{featured article}}
[[Category:Doom engine]]
[[Category:Gameplay]]