Evasion

From CrawlWiki
Revision as of 19:00, 12 September 2025 by Hordes (talk | contribs) (Modifiers)
Jump to: navigation, search
Version 0.33: This article is up to date for the latest stable release of Dungeon Crawl Stone Soup.

This page is about the character trait. For the brand, see the article Evasion (brand)

Evasion (often abbreviated to EV) is a number that measures the ability of a character or of a monster to avoid melee, ranged, and magical beam attacks. When an attack is resolved, a target's current EV is rolled and compared to the attack's to-hit roll, factoring in any relevant situational modifiers. Only if the to-hit roll matches or beats the EV roll does the attack succeed.

Player EV

The calculation to determine a character's total EV is complex and factors in many different skills and attributes.

Base EV

The player's base EV is calculated as follows:

 10 + size_factor

"Size factor" is determined by the size of your species, which is 0 at medium size + 2 per smaller size category.[1]

Size Species Size factor
Little Spriggan, Felid +4
Small Kobold +2
Medium All other species 0
Large
Large (normal torso)
Troll, Oni
Armataur, Naga
-2

Some transformations override the racial size factor:

Size Form Size factor
Tiny Bat Form, Wisp Form, Fungus Form +6
Small Pig Form +2
Large Serpent Form -2
Giant Dragon Form -4

Disabled

If you are paralysed, petrified, or in tree form, your EV is reduced to:

 2 + size_factor/2 (min. 1 EV)

No other factors apply, unless your regular EV would be lower than this amount (where the lower number is used).

Dodging

The Dodging skill provides a bonus to your EV as follows:

dodge_bonus = (8 + Dodging × Dex × 0.8) / (20 - size)
armor_penalty = unadjusted_armor_encumberance - 3
if armor_penalty < 0:
    modifier = 1
if armor_penalty > 0:
    if armor_penalty >= Str:
        modifier = Str / (armor_penalty * 2)
    if armor_penalty < Str:
        modifier = 1 - armor_penalty / (Str * 2)
final_dodge_bonus = dodge_bonus * modifier

Armour and shield EV penalties

After adding base EV and Dodging's bonus together, the direct EV penalties from armour and shields are then subtracted. Each armour type listed below has an "encumbrance rating", which is converted to an EV penalty (where each type has a different formula).

  • Barding: -2 EV
  • Body armour: -1/225 * encumbrance^2 * (90 - 2 × armour_skill) / (str + 3)
  • Shield: -2/5 * encumbrance^2 / (str + 5) * ((27 - shield_skill) / 27)

Modifiers

Various effects can modify EV. These are added directly to your EV total after the above calculations, and are calculated in the following order:

"Permanent" sources:

  • Rings of evasion provide their exact bonus or penalty (usually +5) to your EV.
  • Some unrands provide a bonus or penalty to your EV.
  • Repulsion Field and Gelatinous Body grant bonuses based on their level.
  • Ru worshippers who sacrifice health to reduce EV are penalized by -5 per sacrifice.
  • At level 7, Tengu get a +4 bonus to EV.

Multipliers:[2]

Status effects:

Final situational modifiers

Against melee attacks:

  • If you cannot see your attacker (i.e. they are invisible and you cannot see invisible), you suffer a -10 EV penalty against that attacker.
  • If you are going down stairs while being attacked, you suffer a -5 EV penalty.

Monster EV

A monster's base EV is a fixed number dependent on monster type. This base can be modified by armour, jewellery, and various status effects.

To-hit versus EV

If an attack's to-hit number is 1500 (the magic number AUTOMATIC_HIT) or greater (e.g. Magic Dart), it automatically hits.

Otherwise, the following procedure is used.

  • 2.5% of the time, the attack misses regardless of the attack's to-hit or the defender's EV.
  • 2.5% of the time, the attack hits regardless of the attack's to-hit or the defender's EV.
  • A uniformly distributed random number between zero and the to-hit number (inclusive) is generated.
  • Two uniformly distributed random numbers between zero and ((2 * (target EV)) - 1) inclusive are averaged together.
  • If the to-hit roll is greater than or equal to the EV roll, the attack hits. Otherwise, it misses.

History

  • Prior to 0.32, multipliers to player EV were applied after temporary modifiers. In addition, effects like paralysis and clumsy could raise EV if the "disabled" EV was higher than current EV.
  • Prior to 0.27, a stepdown was applied for EV values >30; adj_EV = 10 + 20 * log(1 + (EV-10)/20log2). Dexterity also had a stepdown when calculating the dodging bonus.
  • Prior to 0.25, a potion of agility was an easy way to increase EV.
  • Prior to 0.19, certain ranged weapons could be branded with Evasion, granting a +5 EV bonus.
  • Prior to 0.17, the evasion bonus for flying Tengu and swimming Merfolk was capped at +9 EV.

References

  1. player.cc:1999 (0.31.0)
    Sizes are listed in ascending order of size in size-type.h:4 (0.31.0)
  2. player.cc:1924 (0.33.0)