DAMAGE TYPES--Effects on Monsters, Terrain, and Items Version 0.1.1 Updated 2005-04-14 =============== Effects of Terrain on Damage to Monsters =============== The damage to monsters from wands, rods, and spells, as well as from other monsters' breath weapons, is afected by the terrain on which the target is standing. The adjustment will typically depend on the type of damage which is done, with only certain damage types being affected by certain terrain. Note that not all damage types are affected equally even by those terrain types which affect all damage; see the specific types of damage for more information. +-------------+------------+-------------------------------------+ | Terrain | Adjust | Dam Types | +-------------+------------+-------------------------------------+ | FEAT_RUBBLE | -1 / 4 (a) | All | | FEAT_WATER | -1 / 2 | GF_FIRE, GF_HELLFIRE, GF_PLASMA | | | +1 / 3 | GF_WATER, GF_STORM | | FEAT_LAVA | -1 / 3 | GF_COLD, GF_ICE, GF_WATER, GF_STORM | | | +1 / 5 | GF_FIRE, GF_HELLFIRE, GF_PLASMA | | FEAT_TREE | -1 / 4 (a) | All | +-------------+------------+-------------------------------------+ Notes (a) Monsters who can move have a 1/4 chance to avoid all damage, otherwise apply the listed adjustment. Legend Terrain -- The type of terrain on which the monster is standing. Adjust -- The adjustment applied to the damage done. Positive adjustments increase the damage, negative ones reduce it. Dam Types -- The types of damage which are affected. ======= Damage Types, Resistances, and Other Effects on Monsters ======= +------------------+------+--------------------------+-----+-----+------------+ | Damage type | Terr | Resist? | R # | R D | Other | +------------------+------+--------------------------+-----+-----+------------+ | GF_ROCK | Full | | | | (a) (b) | | GF_SHOT | Full | | | | (b) | | GF_ARROW | | | | | | | GF_MISSILE | | | | | | | GF_PMISSILE | | | | | | | GF_ACID | Full | IM_ACID | 62 | 1/9 | | | GF_ELEC | Full | IM_ELEC | 83 | 1/9 | (c) | | GF_FIRE | Full | IM_FIRE | 118 | 1/9 | | | GF_HELLFIRE | | | | | | | GF_COLD | Full | IM_COLD | 164 | 1/9 | | | GF_POIS | Half | IM_POIS | 237 | 1/9 | | | GF_ICE | Full | IM_COLD | 164 | 1/9 | (d) | | GF_PLASMA | Full | BRTH_PLAS, RES_PLAS | 6 | (e) | | | | | IM_FIRE and IM_ELEC | 46 | (f) | | | | | IM_FIRE xor IM_ELEC | 98 | (g) | | | GF_LITE_WEAK | Half | not HURT_LITE | 524 | 0 | (M) | | GF_LITE | Half | BRTH_LITE | 10 | (e) | (N) | | | | HURT_LITE | 77 | 3/2 | (N) | | GF_DARK | Half | BRTH_DARK | 13 | (e) | | | GF_MORGUL_DARK | | MORGUL_MAGIC | 15 | (g) | | | | | ORC | 20 | (g) | | | GF_CONFUSION | Half | BRTH_CONFU | 4 | (e) | (h) | | | | NO_CONF | 72 | (g) | | | GF_SOUND | Half | BRTH_SOUND | 5 | (e) | (i) | | GF_SHARD | Half | BRTH_SHARD | 6 | (e) | | | GF_INERTIA | Half | BRTH_INER | 3 | (e) | | | GF_GRAVITY | None | BRTH_GRAV | 3 | (e) | (j) | | GF_FORCE | Full | BRTH_FORCE | 4 | (e) | (k) (l) | | GF_WATER | Full | RES_WATER, (m) | 5 | 0 | | | GF_STORM | Full | RES_WATER, (m) | 5 | 0 |(n)(o)(p)(q)| | | | IM_ELEC | 83 | 1/2 | | | GF_NEXUS | None | RES_NEXU, BRTH_NEXUS, (r)| 7 | (e) | (s) | | GF_NETHER | Half | UNDEAD | 77 | 0 | | | | | RES_NETH or BRTH_NETHR | 8 | (e) | | | | | EVIL | 235 | 2/3 | | | GF_CHAOS | Half | BRTH_CHAOS | 12 | (e) | (k) (t) | | GF_DISENCHANT | None | RES_DISE, BRTH_DISE, (u) | 12 | (e) | | | GF_TIME | None | BRTH_TIME | 7 | (e) | | | GF_MANA | Full | | | | | | GF_HOLY_ORB | Half | EVIL | 315 | 3/2 | | | GF_METEOR | Full | | | | | | GF_SPIRIT | None | UNDEAD | 77 | 0 | | | GF_OLD_DRAIN | Half | UNDEAD, DEMON, (v) | 140 | 0 | | | GF_OLD_POLY | None | | | | (w) | | GF_OLD_CLONE | None | | | | (x) | | GF_OLD_HEAL | None | | | | (y) | | GF_OLD_SPEED | None | | | | (z) | | GF_OLD_SLOW | None | | | | (A) | | GF_OLD_SLEEP | None | | | | (B) | | GF_OLD_CONF | None | | | | (C) | | GF_HOLD | None | | | | (D) | | GF_HOLD_UNDEAD | None | | | | (E) | | GF_KILL_WALL | None | not HURT_ROCK | 585 | 0 | | | GF_AWAY_UNDEAD | None | | | | (F) | | GF_AWAY_EVIL | None | | | | (G) | | GF_AWAY_ALL | None | | | | (H) | | GF_TURN_UNDEAD | None | | | | (I) | | GF_TURN_EVIL | None | | | | (J) | | GF_TURN_ALL | None | | | | (K) | | GF_DISP_UNDEAD | None | not UNDEAD | 524 | 0 | | | GF_DISP_EVIL | None | not EVIL | 286 | 0 | | | GF_DISP_NOT_EVIL | None | EVIL | 315 | 0 | | | GF_DISP_DEMON | None | not DEMON | 576 | 0 | | | GF_DISP_DRAGON | None | not DRAGON | 544 | 0 | | | GF_DISP_ALL | None | | | | | | GF_DISP_SMALL_ALL| None | (L) | | | | +------------------+------+--------------------------+-----+-----+------------+ Notes (a) If at least 16 damage is done, there is a 1 / 2 chance that the monster will be stunned for dam / 8 turns (with a maximum of 32 turns if dam > 240). (b) The monster has an ac / 200 chance of not taking any damage. (c) If at least 11 damage is done, there is a 1 / 2 chance that the monster will be stunned for dam / 8 turns (with a maximum of 32 turns if dam > 240). (d) If the monster does not resist, it will be stunned for dam / 12 turns (with a maximum of 20 turns if dam > 240). (e) Equal chances for 3 / 14, 3 / 15, or 3 / 16 damage. (f) Equal chances for 3 / 11, 3 / 12, or 3 / 13 damage. (g) Equal chances for 3 / 5, 3 / 6, or 3 / 7 damage. (h) The monster will be confused for dam / 16 turns (with a maximum of 15 turns if dam > 240). (i) The monster will be stunned for dam / 8 turns (with a maximum of 30 turns if dam > 240). (j) The monster, if it does not breathe gravity, will be teleported randomly a distance of 10 squares. (k) The monster will be stunned for dam / 12 turns (with a maximum of 20 turns if dam > 240). (l) The monster, if it does not breathe force, will be thrust away from the direction of impact a distance of 3 + dam / 20 spaces. (m) If the monster's name begins with "Water", it will resist water. Note that this means that 'Waldern, King of Water' does _not_ resist water, surprisingly enough. (n) If the monster does not resist, there is a 1 / 6 chance that it will take an extra 1 / 2 damage (after terrain adjustments) This will also affect the amount of stunning and confusion that is done. (o) If at least 50 damage is done, there is a 1 / 2 chance that the monster will be stunned for dam / 12 turns (with a maxmimum of 20 turns if dam > 240). (p) If at least 20 damage is done, there is a 1 / 3 chance that the monster will be confused for a random number between 2 and dam / 10 + 1 turns. (q) The monster, if it does not breathe gravity and if either the source of the damage was the player or the monster has less maximum hit points than a random number between 0 and 3 * dam, will be teleported randomly a distance of 10 squares. (r) If the name of the monster begins with "Nexus", it resists nexus. (s) The monster, if it does not breathe nexus or have a name which starts with "Nexus", will be teleported randomly a distance of 2 + dam / 5 squares. (t) The monster will be polymorphed. (u) If the name of the monster begins with "Disen", it resists disenchantment. (v) If the monster is represented by an 'E', a 'g', or a 'v', it resists draining. (w) The monster resists if it is a unique or its level is greater than a random number between 11 and dam - 10. Otherwise, it will be polymorphed. No actual damage will be inflicted in any case. (x) The monster will be healed to its maximum and then if it is currently moving at less than +40 speed, will have its speed increased by 5. It will then be cloned. No actual damage will be inflicted. (y) The monster, instead of taking damage, will be healed an equivalent amount (but not over its maximum). (z) The monster, if it is currently moving at less than +40 speed, will have its speed increased by 10. No actual damage will be inflicted. (A) If the player is a mage or druid, there is a 1 / 3 chance that the spell will be supercharged, doing 1 / 2 more damage. If the spell does not do 1 / 2 more damage (no matter the class of the player), there is a 1 / 6 chance that the spell will do 1 / 3 more damage. If the player has chosen the 'Beguile' specialty, the spell will do 1 / 2 more damage (applied after any supercharging). Then if the monster's level plus 20 (if it is a unique) or level plus 2 (otherwise) is greater than a random number between 1 and the damage, it resists. If the monster does not resist, its current speed is greater than -50, and it is not currently moving at a speed at least 10 less than the base speed for its race, its speed is reduced by 10. No actual damage will be inflicted in any case. (B) If the player is a mage or druid, there is a 1 / 3 chance that the spell will be supercharged, doing 1 / 2 more damage. If the spell does not do 1 / 2 more damage (no matter the class of the player), there is a 1 / 6 chance that the spell will do 1 / 3 more damage. If the player has chosen the 'Beguile' specialty, the spell will do 1 / 2 more damage (applied after any supercharging). Then if the monster's level plus 20 (if it is a unique) or level plus 2 (otherwise) is greater than a random number between 1 and the damage, it resists. If the monster does not resist and it does not have the NO_SLEEP flag, it is given a sleep value of 350. No actual damage will be inflicted in any case. (C) If the player is a mage or druid, there is a 1 / 3 chance that the spell will be supercharged, doing 1 / 2 more damage. If the spell does not do 1 / 2 more damage (no matter the class of the player), there is a 1 / 6 chance that the spell will do 1 / 3 more damage. If the player has chosen the 'Beguile' specialty, the spell will do 1 / 2 more damage (applied after any supercharging). Then if the monster's level plus 20 (if it is a unique), level plus 15 (if it is undead and not a unique) or level plus 2 (otherwise) is greater than a random number between 1 and the damage, it resists. If the monster does not resist and does not have the NO_CONF flag, it will be confused for 3d(dam / 5) + 1 rounds. No actual damage will be inflicted in any case. (D) If a random number between 1 and 3 / 2 the monster's level is greater than twice the player's level or 1 / 4 of the time otherwise, the monster resists. Otherwise, the monster is put into stasis for 4 + d6 turns. No actual damage will be inflicted in any case. (E) If the monster is not undead, it is immune. Otherwise, if a random number between 1 and the monster's level is greater than twice the player's level or 1 / 5 of the time otherwise, the monster resists. Otherwise, the monster is put into stasis for 5 + d7 turns. (F) If the monster is not undead, it is immune. Otherwise, it will be teleported randomly dam squares. (G) If the monster is not evil, it is immune. Otherwise, it will be teleported randomly dam squares. (H) The monster will be teleported randomly dam squares. (I) If the monster is not undead, it is immune. Otherwise, if the player is a Necromancer, there is a 1 / 2 chance that the spell will be supercharged, doing 1 / 2 more damage. If the player is a Priest, there is a 1 / 4 chance that the spell will do 1 / 2 more damage. If the spell does not do 1 / 2 more damage (no matter the class of the player), there is 1 / 6 chance that it will do 1 / 3 more damage. If the player has chosen the 'Beguile' specialty, the spell will do 1 / 2 more damage (applied after any supercharging). Then if the monster's level plus 10 (if it is a unique) or level plus 2 (otherwise) is greater than a random number between 1 and the damage, it resists. If it does not resist and does not have the NO_FEAR flag, it is made afraid for 3d(dam / 2) + 1 rounds. No actual damage will be inflicted in any case. (J) If the monster is not evil, it is immune. Otherwise, if the player is a Priest, there is a 1 / 2 chance that the spell will be supercharged, doing 1 / 2 more damage. If the player is a Paladin or Necromancer, there is a 1 / 4 chance that the spell will do 1 / 3 more damage. If neither of the above extra damages occurs, there is 1 / 6 chance that it will do 1 / 3 more damage. If the player has chosen the 'Beguile' specialty, the spell will do 1 / 2 more damage (applied after any supercharging). Then if the monster's level plus 20 (if it is a unique), level plus 10 (if it is undead and not a unique) or level plus 2 (otherwise) is greater than a random number between 1 and the damage, it resists. If it does not resist and does not have the NO_FEAR flag, it is made afraid for 3d(dam / 2) + 1 rounds. No actual damage will be inflicted in any case. (K) If the player is a Priest, there is a 1 / 3 chance that the spell will be supercharged, doing 1 / 3 more damage. If this does not occur, there is 1 / 6 chance that it will do 1 / 3 more damage. If the player has chosen the 'Beguile' specialty, the spell will do 1 / 2 more damage (applied after any supercharging). Then if the monster's level plus 20 (if it is a unique or undead) or level plus 2 (otherwise) is greater than a random number between 1 and the damage, it resists. If it does not resist and does not have the NO_FEAR flag, it is made afraid for 4d(dam / 2) + 1 rounds. No actual damage will be inflicted in any case. (L) If the monster has as many hit points as the damage, it is immune. (M) If the monster is undead, evil, or hurt by light and the player has the holy light specialty, there is a 1 / 5 chance that an attempt will be made to frighten it. For this attempt, if a random number between 1 and 10 more than the player's level is at least two more than the monster's level (for non-uniques) or 20 more than the monster's level (for uniques), the monster will be frightened for 3d(level / 2) + 1 turns (even if it normally cannot be frightened). (N) If the monster is undead, evil, or hurt by light and the player has the holy light specialty, there is a 1 / 3 chance that an attempt will be made to frighten it. For this attempt, if a random number between 1 and 15 more than 3 / 2 the player's level is at least two more than the monster's level (for non-uniques) or 20 more than the monster's level (for uniques), the monster will be frightened for 3d(3 * level / 4) + 1 turns (even if it normally cannot be frightened). Final Notes: i) Uniques may only be killed by the player. If damage is inflicted by a monster that would normally kill one, it is instead reduced to 0 hit points. ii) For all polymorph effects noted above, all uniques are immune. For other monsters, if a random number between 1 and 90 is greater than its level, it will be polymorphed. iii) For all stunning effects noted above, all monsters which breathe either sound or force are immune. Otherwise, if the monster is not currently stunned, it will be stunned for the indicated amount of time (up to a maximum of 200 rounds). If it is currently stunned, it will instead be stunned for an additional 1 / 2 of the indicated amount of time, again up to a maximum of 200 rounds. iv) For all confusion effects noted above, all monsters which have the NO_CONF flag or breathe confusion or chaos are immune. Otherwise, if the monster is not currently confused, it will be confused for the indicated amount of time (up to a maximum of 200 rounds). If it is currently confused, it will instead be confused for an additional 1 / 2 of the indicated amount of time, again up to a maximum of 200 rounds. v) For all fear effects noted above, the monster will be made afraid for an (additional) number of rounds as indicated (up to a maximum of 200 rounds). Legend: Damage Type--the type of damage which is being inflicted upon the monster. Terr--How does terrain affect the damage. Full means the full terrain adjustment applies, Half means that only half of it applies, and None means that the terrain adjustment does not apply. Resist?--Which flags allow a monster to resist this type of damage. If multiple flags are listed, having any one of them causes the monster to resist (unless otherwise noted). If this is prefixed by 'not', any monsters not having this flag resist. Note that the RES_* flags, although they are checked for in the code, are not actually possessed by any monsters at this time. R #--The number of monsters which have this resistance. This is exclusive of monsters which have any greater amount of resistance to this attack type. R D--The proportion of damage done to monsters which resist. If this is 0, all such monsters are immune. Other--Any other effects this attack type will have on monsters. ================= Damage Types and Effects on Terrain ================= Note that these effects, because of the damage requirements, will generally only be generated by monsters, not by the player's attacks. GF_COLD and GF_ICE If the damage is greater than a random number between 301 and 1200 and the terrain is lava, it will be solidified. There is a 1 / 3 chance that it will be changed to floor; otherwise, it will be changed to rubble. GF_FIRE, GF_HELLFIRE, and GF_PLASMA If the damage is greater than a random number between 601 and 2400 and the terrain is either floor or rubble, it will be changed to lava. If the floor is water and the damage is greater than a random number between 201 and 800 + 3 * k, where k is the number of adjacent water squares (in any of the 8 possible directions), the terrain will be changed to floor. If the terrain is forest and the damage is greater than a random number between 101 and 500, the terrain will be changed to floor. GF_WATER and GF_STORM If the terrain is floor and the damage is greater than both 60 and 100 minus k * 20 plus a random number between 0 and 399 (where k is the number of adjacent water squares in any of the 8 possible directions), the terrain will be changed to water. Note that this means that any water attack doing at least 500 damage will always change all affected floor squares to water. ================= Damage Types and Effects on Objects ================= Note that this only applies to objects that are on the floor, not objects being worn or carried by the player or a monster. Acid-hating objects include all arrows, bolts, bows and crossbows, swords, hafted weapons, polearms, helms, crowns, shields, boots, gloves, cloaks, soft and hard armor, dragon scale mail, staffs, scrolls, skeletons, bottles, and junk, unless the object is otherwise immune. Notable things that cannot be affected by acid include shots, diggers, and all spellbooks. Electricity-hating objects include all rings, wands, and rods, unless the object is otherwise immune. Fire-hating objects include all lite sources, arrows, bows and crossbows, hafted weapons, polearms, boots, gloves, cloaks, soft armor, all spellbooks, chests, staffs, and scrolls, unless the object is otherwise immune. Notable things that cannot be affected by fire include swords and hard armor. Cold-hating objects include all potions, oil flasks, and bottles, unless the object is otherwise immune. For attack forms which can affect items on the floor (mainly balls, spheres, and arcs), for each object which can be affected by that attack type the damage done by the attack is checked against a random number between 1 and a threshold which depends on the attack type. If the damage is greater, the object is destroyed unless it possesses the appropriate IGNORE flag. For attack types which can affect more than one class of objects, if an object fits into more than one class the damage is checked against each appropriate theshold and if it is greater at least once, the object is destroyed. For attack types without a threshold, the object is always destroyed unless it possesses the appropriate ignore flag. For attack types without an ignore flag, the object is always destroyed if the damage exceeds the threshold. For attack types with neither a threshold nor an ignore flag, the object is always destroyed. In any case, however, artifacts are always immune. Attack types not listed below do not affect objects on the floor. +--------------+--------------------+-----------+-----------------+ | Attack Type | Affects | Threshold | IGNORE flag | +--------------+--------------------+-----------+-----------------+ | GF_ACID | Acid haters | 50 | TR3_IGNORE_ACID | | GF_ELEC | Electricity haters | 40 | TR3_IGNORE_ELEC | | GF_FIRE | Fire haters | 40 | TR3_IGNORE_FIRE | | GF_COLD | Cold haters | 40 | TR3_IGNORE_COLD | | GF_PLASMA | Fire haters | 40 | TR3_IGNORE_FIRE | | | Electricity haters | 40 | TR3_IGNORE_ELEC | | GF_METEOR | Fire haters | - | TR3_IGNORE_FIRE | | | Cold haters | - | TR3_IGNORE_COLD | | GF_ICE | Cold haters | 40 | - | | GF_SHARD | | | | | GF_FORCE | | | | | GF_SOUND | | | | | GF_MANA | All objects | - | - | | GF_HOLY_ORB | Cursed objects | - | - | | GF_KILL_TRAP | Traps on chests | - | - | +--------------+--------------------+-----------+-----------------+