Difference between revisions of "Shields"

From CrawlWiki
Jump to: navigation, search
m (fix str factor)
m (EV Penalty: Changed the size of the ev_penalty image to update the formula properly.)
 
(43 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{version030}}
+
{{version031}}
 
''For the skill, see [[Shields (skill)]]. For the item formerly known as just a shield, see [[kite shield]].''
 
''For the skill, see [[Shields (skill)]]. For the item formerly known as just a shield, see [[kite shield]].''
 
{{flavour|“Let who will boast their courage in the field,<br>
 
{{flavour|“Let who will boast their courage in the field,<br>
Line 25: Line 25:
  
 
===EV Penalty===
 
===EV Penalty===
Your shield EV penalty is <code>2/5 * encumbrance^2 / (5 + strength) * (27 - shield_skill) / 27</code><ref>{{source ref|0.30.0|player.cc|5738}}</ref>. Stronger characters are less encumbered by shields, and anyone can eliminate shield penalty by maxing out the Shields skill.
+
Your shield EV penalty is equal to:<ref>{{source ref|0.30.0|player.cc|5739}}</ref>
 +
 
 +
[[File:Shield encumbrance ev.png|642px|alt=<code>2/5 * encumbrance^2 / (5 + str) * (27 - shield_skill) / 27</code>]]
 +
 
 +
[[Strength|Stronger]] characters are less encumbered by shields, and anyone can eliminate shield penalty by maxing out the Shields skill.
  
 
{| class="prettytable" cellpadding="10" border="9"
 
{| class="prettytable" cellpadding="10" border="9"
Line 38: Line 42:
 
|}
 
|}
  
The EV penalty is subtracted directly from your evasion, and is used to calculate the other penalties.
+
The EV penalty is subtracted directly from your evasion. Your unrounded EV penalty is also used to calculate the other penalties.
  
 
===Attack Penalty===
 
===Attack Penalty===
The shield penalty, in EV, is added to your attack delay, in single [[aut]]s. This applies to weapons, missiles, and unarmed attacks. For non-integer aut penalties, the game will have a weighted roll (rounding up or down) so that the average penalty is the expected delay.<ref>{{source ref|0.29.1|player-act.cc|306}}</ref>
+
This penalty applies to melee attacks (including unarmed attacks), ranged weapons, and throwing weapons.
 +
 
 +
The shield penalty, in units of EV, is converted into attack delay, in units of [[aut]]. When you attack with a shield, it'll take from <code>EV_penalty</code> to <code>EV_penalty + 0.05</code> aut longer.<ref>{{source ref|0.30.0|player-act.cc|348}}<br>Note that the function random_var is rolling a number from (20 * EV_penalty) to (20 * EV_penalty + 1), which is then divided by 20, and rounded in a weighed fashion. (See {{source ref|0.30.1|random-var.cc|11}})</ref> If the penalty is not an integer, it is rounded in a weighted manner.
 +
 
 +
Note that it is in units of aut, not [[decaAut]] or "[[turn]]s". For reference, having 1 EV penalty slows you down by 1 aut = 0.1 turn.
  
 
===Spell Penalty===
 
===Spell Penalty===
The spellcasting penalty is significantly more complicated. Shields add to the raw spell failure rate, in % failure:
+
The spellcasting penalty is significantly more complicated. Shields add to "SpellFailure", not to be confused with your actual % chance of failure:
  
<code>spell failure = 19 * [ev_penalty - ( (shields_skill) / (Size factor + 5) )] </code>
+
<code>spell failure = 19 * ev_penalty </code>
  
Size factor is determined by species:
+
For reference, 12 SpellFailure = 1 level in every spell school (excluding [[Spellcasting]]). 15 SpellFailure = 1 level in every school, including [[Spellcasting]].
{| class="prettytable" cellpadding="10" border="9"
 
|- align="center"
 
! Size !! Races !! Size factor
 
|-
 
|Little || [[Spriggan]] || +4
 
|-
 
|Small || [[Kobold]] || +2
 
|-
 
|Normal || most species || 0
 
|-
 
|Normal<br>(strong arms)||[[Formicid]] || -2
 
|-
 
|Large<br>(normal torso)|| [[Armataur]], [[Naga]]|| -2
 
|-
 
|Large || [[Ogre]], [[Troll]] || -2
 
|}
 
  
This is then modified by various functions described in the [[spell success]] page.
+
This number is then modified by various functions described in the [[spell success]] page.
  
 
==[[Ego]]s==
 
==[[Ego]]s==
Line 83: Line 75:
  
 
==Blocking==
 
==Blocking==
===Effect===
+
As long as your [[SH]] is above 0, you can block melee and ranged "projectile" attacks.
It's possible to block a melee attack or a ranged projectile attack if you wear a shield of some kind, or otherwise have SH. Your ability to block missiles doesn't benefit from [[Repel Missiles|missile-repelling]] effects like a [[scarf]] of repulsion, and you cannot benefit from any form of shield while you are [[confusion|confused]], [[held]], [[paralyzed]], or [[petrified]].
 
  
All melee attacks can be blocked (except for successful [[stab]]s), but many ranged attacks are unblockable:
+
All melee attacks can be blocked (except for successful [[stab]]s), but many types of ranged attacks are unblockable:
 
*[[Penetration|Penetrating]] attacks: [[Javelin]]s, [[Bolt spell]]s, [[Starburst]]...
 
*[[Penetration|Penetrating]] attacks: [[Javelin]]s, [[Bolt spell]]s, [[Starburst]]...
*Explosions: [[Fireball]], [[Lee's Rapid Deconstruction]], [[Damnation]]...
+
*Almost everything with perfect [[accuracy]]: [[Magic Dart]], [[Smiting]], [[Chain Lightning]], Explosions ([[Fireball]], [[Damnation]]), [[Shatter]]...  
*Electrical discharges: [[Static Discharge]], [[Chain Lightning]]
+
:[[Orb of Destruction]] is the only spell that ignores EV, but can be blocked.
 
*Enchantments: [[Agony]], [[Pain]], [[Confuse]], everything that checks [[willpower]]
 
*Enchantments: [[Agony]], [[Pain]], [[Confuse]], everything that checks [[willpower]]
*Beams with perfect accuracy: [[Magic Dart]], [[Freeze]], [[Smite]]...
 
*Other ranged attacks that are not beams: [[Shatter]], [[Polar Vortex]], [[Ozocubu's Refrigeration]]
 
  
 
Some examples of ranged attacks that can be blocked:
 
Some examples of ranged attacks that can be blocked:
*Ranged weapons like [[shortbow]]s and [[sling]]s
+
*[[Ranged Weapons]], like [[shortbow]]s and [[sling]]s
*Spells that fire single-target projectiles like [[Iron Shot]], [[Poison Arrow]], [[Orb of Destruction]], [[Sandblast]]
+
*Spells that fire single-target projectiles, like [[Iron Shot]], [[Poison Arrow]], [[Orb of Destruction]], [[Sandblast]]
  
If the attacker's pierce value is less than the defender's blocking value (see below for details), the attack does no damage. Shield blocking is done before rolling your [[evasion]] or your [[AC]], but if you have already blocked some attacks in that turn, your blocking ability will be decreased greatly.
+
If the attacker's pierce value is less than the defender's blocking value (see below for details), the attack does no damage. However, there is a hard limit on the amount of attacks you can block per player turn. Shield blocking is done before rolling your [[evasion]] or your [[AC]]. Blocking doesn't benefit from [[repulsion]] or [[EV]].
  
===Calculation===
+
Your ability to block missiles doesn't benefit from [[repulsion]] or [[EV]].
The defender's blocking value depends on the nature of the shield:
 
  
Physical shields:
+
===Max Blocks===
SH = Block × (1 + Shield skill/40)
+
Each type of shield (or lack thereof) can only block a certain number of attacks per player turn:
+ Enchantment bonus + Stat bonus
+
{| class="prettytable" cellpadding="10" border="9"
+ min(0.38×Shield skill, .57 + 0.19×Shield skill)
+
|- align="center"
 +
! Shield type !! Max Blocks
 +
|-
 +
|None || 1
 +
|-
 +
|Buckler || 2
 +
|-
 +
|Kite shield || 3
 +
|-
 +
|Tower shield || 4
 +
|}
  
and then on top of this:
+
===SH calculation===
+ Divine shield bonus
+
If you are wielding a physical shield, its SH is determined as follows:<ref>{{source ref|0.31-b1|player.cc|2200}}<br>These values are divided by 200 by later functions.</ref>
+ Qazlal shield bonus
 
+ Mutation bonus
 
+ Amulet of reflection bonus
 
+ Any SH bonus from artifacts
 
  
For a physical shield (Buckler, Kite Shield, and Tower Shield), '''Block''' is the shield's blocking value, equal to the base shield bonus (3 for Buckler, 8 for Kite Shield, 13 for Tower Shield).
+
*Your '''Base SH''' is determined by type of shield. 3 for [[buckler]]s, 8 for [[kite shield]]s, 13 for [[tower shield]]s.
 +
*Add '''[[Shields (skill)|Skill Bonus]]''' of <code>(base_SH/40 + 0.19) * skill</code>.
 +
*Add '''[[Dexterity|Stat Bonus]]''' of <code>DEX * 38 * (base_SH + 13) / 5200</code>.
 +
*Add '''[[Enchant]]ment''' value. +1 enchantment = +1 SH.
 +
*Add 0.82 SH.<ref>{{source ref|0.31-b1|player.cc|2254}}<br>Divided by 2 by a later function.</ref>
  
*'''Stat bonus''' is <code>DEX * 38 * (base_shield + 13) / 5200</code><ref>{{source ref|0.29.1|player.cc|2149}}</ref>,
+
All other sources of SH ([[Qazlal]] shield, [[amulet of reflection]]...) are flat bonuses, and are added on top of the physical shield bonus. The final value is rounded to the nearest integer and displayed as the player's SH value.
*The Shining One's '''Divine shield bonus''' is based on Invocations skill.
 
*'''Mutation bonus''' is +4/6/8 SH depending on your level of the [[Good_mutations#Large_Bone_Plates|Large Bones Plates]] mutation.
 
  
The resulting value is rounded to the nearest integer and displayed as the player's SH value.
+
If you are [[paralysed]], [[petrified]], or if [[dexterity]] is 0, then SH is set to 0 regardless of any other factors.
  
The attacker's pierce value is equal to:
+
===Chance to block===
 +
The game compares the attacker's "pierce value" to the defender's "block value".
  
1d(15 + to hit/2 + 5×past_blocks^2) - 1 (melee attacks)
+
The attacker's pierce value is dependent on their [[to-hit]] (accuracy) and the type of attack:
 +
* '''Melee attack:''' <code>1d(15 + to_hit/2)</code>
 +
* '''Ranged attack:'''  <code>1d(1.3×to hit)</code>
  
1d(1.3×to hit    + 5×past_blocks^2) - 1 (ranged attacks
+
The defender's blocking value is equal to:<ref>{{source ref|0.30.1|player.cc|5656}}<br>Note that "player_shield_class" is half of your displayed SH.</ref>
 +
* '''All attacks:''' <code>2d(4×SH)/6 - 1</code>
 +
* Divide by 3 against melee attacks from [[invisible]] opponents.
  
"To hit" is the monster's [[To hit]] value (based primarily on the monster's [[HD]], type, and weapon accuracy) and "past_blocks" is the number of attacks already successfully blocked in the current turn.
+
If the blocking value is greater or equal than the attacker's pierce value, the attack is blocked.
 
 
The defender's blocking value is equal to:
 
2d(2×SH)/6 - 1.3 (Divided by 3 against melee attacks from invisible opponents)
 
 
 
If this value is greater or equal than the attacker's pierce value, the attack is blocked.
 
  
 
==History==
 
==History==
*Prior to [[0.30]], species [[size]] impacted shield encumbrance and SH score. Larger species would be encumbered less by shields, but receive slightly less SH from larger shields. Smaller species were the opposite.
+
*Prior to [[0.31]], shields did not have a hard limit on the number of attacks you could block. However, for each attack you blocked, future blocks attempts were less likely (attackers' pierce value was <code>1d(15 + to_hit/2 +5 × past_blocks^2)</code> for melee, similar for ranged). Also, instead of gaining 0.82 SH by default, the first three levels gave an extra +0.19 SH/level, and you only got 0.25 SH by default.
 
+
*Prior to [[0.30]], species [[size]] impacted shield encumbrance and SH score. Larger species were less encumbered by shields, but received slightly less SH from kite shields. Smaller species were the opposite, more SH from bucklers/kite shields, but more encumbered by them. Strength had no effect on shield penalties.
Species encumbrance was reduced by <code>1 / (20 - 3 * size_factor)</code>, instead of <code>1/(5 + strength)</code>, for the following size factors:
 
{| class="prettytable" cellpadding="10" border="9"
 
|- align="center"
 
! Size !! Races !! Size factor
 
|-
 
|Little || [[Spriggan]] || +4
 
|-
 
|Small || [[Kobold]] || +2
 
|-
 
|Normal || most species || 0
 
|-
 
|Normal<br>(strong arms)||[[Formicid]] || -2
 
|-
 
|Large<br>(normal torso)|| [[Armataur]], [[Naga]]|| -2
 
|-
 
|Large || [[Ogre]], [[Troll]] || -2
 
|}
 
 
 
Species SH offset (pre-0.30):
 
{| class="prettytable" cellpadding="10" border="9"
 
|- align="center"
 
! Size !! Races !! Buckler !! Kite Shield !! Tower shield
 
|-
 
|Little || [[Spriggan]] || +2 || - || -
 
|-
 
|Small || [[Kobold]] || +1 || +0.5 || -
 
|-
 
|Normal || most races || 0 || 0 || 0
 
|-
 
|Normal<br>(strong arms)|| [[Formicid]] || 0 || 0 || 0
 
|-
 
|Large<br>(normal torso)|| [[Palentonga]], [[Naga]] || 0 || 0 || 0
 
|-
 
|Large
 
|| [[Ogre]], [[Troll]] || - || -0.5 || 0
 
|}
 
 
 
 
*In [[0.28]], magical [[orb]]s were added as a new category of off-hand equipment.
 
*In [[0.28]], magical [[orb]]s were added as a new category of off-hand equipment.
*Prior to [[0.28]], the two larger shields used [[Strength]] (along with [[Dexterity]]) to determine bonus SH. Shields had a [[to-hit]] penalty. The penalty formula changed; before, certain skill thresholds (4 skill for buckler, 15 for kite shield, 25 for tower shield) negated it.  
+
*Prior to [[0.28]], shields had a different EV penalty formula, <code>EV_penalty - skill / (5 + [[Evasion#Base EV|size_factor]])</code> (buckler = 0.8 EV, kite shield = 3, tower shield = 5). Using shields at 0 skill was more encumbering, but certain skill thresholds (regular [[size]] species: 4 skill for buckler, 15 for kite shield, 25 for tower shield) negated penalties entirely. They also had a [[to-hit]] penalty. In addition, the two larger shields used [[strength]] (along with [[dexterity]]) to determine bonus SH.  
*In [[0.27]], the shield penalty was increased.
+
*Prior to [[0.27]], shields had a smaller and randomized penalty to [[attack delay]] (previously: <code>smaller of {1d(20 * EV)/20, 1d(20 * EV)/20}</code> rounded down).
 
*Prior to [[0.25]], [[kite shield]]s were known as just "shields" and [[tower shield]]s were called "large shields".
 
*Prior to [[0.25]], [[kite shield]]s were known as just "shields" and [[tower shield]]s were called "large shields".
 
*Prior to [[0.17]], [[unarmed]] attacks had a speed penalty when attacking with a shield equipped.
 
*Prior to [[0.17]], [[unarmed]] attacks had a speed penalty when attacking with a shield equipped.
 
*Prior to [[0.16]], the amount of skill required to negate penalties for wearing a shield was more complex.
 
*Prior to [[0.16]], the amount of skill required to negate penalties for wearing a shield was more complex.
 
 
 
  
 
==References==
 
==References==

Latest revision as of 03:28, 23 November 2024

Version 0.31: This article may not be up to date for the latest stable release of Crawl.

For the skill, see Shields (skill). For the item formerly known as just a shield, see kite shield.

“Let who will boast their courage in the field,

I find but little safety from my shield.
Nature's, not honour's, law we must obey:
This made me cast my useless shield away,
And by a prudent flight and cunning save
A life, which valour could not, from the grave.
A better buckler I can soon regain;
But who can get another life again?”
-Archilochos. 7th cent. B.C. trans. William H. Goodwin, 1878.

Shields are a kind of armour worn on one hand, preventing the use of two-handed weapons; they make use of the Shields skill. Unlike other armour, shields increase a character's SH defense, giving you a chance at blocking physical (and some magical) attacks entirely. There are three types of shield, from smallest to largest:

Orbs also occupy your off-hand slot, but provide no shielding, instead granting assorted magical effects from their special egos.

Some magical effects can also increase your SH score.

Shield Penalties

Wearing a shield imposes penalties to attack speed, EV, and spellcasting. While the penalty for wearing a buckler is almost negligible, a tower shield can seriously slow your attacks and make spellcasting unreliable.

EV Penalty

Your shield EV penalty is equal to:[1]

2/5 * encumbrance^2 / (5 + str) * (27 - shield_skill) / 27

Stronger characters are less encumbered by shields, and anyone can eliminate shield penalty by maxing out the Shields skill.

Shield type Encumbrance
Buckler 5
Kite shield 10
Tower shield 15

The EV penalty is subtracted directly from your evasion. Your unrounded EV penalty is also used to calculate the other penalties.

Attack Penalty

This penalty applies to melee attacks (including unarmed attacks), ranged weapons, and throwing weapons.

The shield penalty, in units of EV, is converted into attack delay, in units of aut. When you attack with a shield, it'll take from EV_penalty to EV_penalty + 0.05 aut longer.[2] If the penalty is not an integer, it is rounded in a weighted manner.

Note that it is in units of aut, not decaAut or "turns". For reference, having 1 EV penalty slows you down by 1 aut = 0.1 turn.

Spell Penalty

The spellcasting penalty is significantly more complicated. Shields add to "SpellFailure", not to be confused with your actual % chance of failure:

spell failure = 19 * ev_penalty

For reference, 12 SpellFailure = 1 level in every spell school (excluding Spellcasting). 15 SpellFailure = 1 level in every school, including Spellcasting.

This number is then modified by various functions described in the spell success page.

Egos

Bucklers, kite shields, and tower shields can spawn with the following egos[3]:

Shields of cold and fire resistance can also occasionally be found in ice caves and volcanoes, respectively.

Every orb has its own ego; see the orb page for more details.

Blocking

As long as your SH is above 0, you can block melee and ranged "projectile" attacks.

All melee attacks can be blocked (except for successful stabs), but many types of ranged attacks are unblockable:

Orb of Destruction is the only spell that ignores EV, but can be blocked.

Some examples of ranged attacks that can be blocked:

If the attacker's pierce value is less than the defender's blocking value (see below for details), the attack does no damage. However, there is a hard limit on the amount of attacks you can block per player turn. Shield blocking is done before rolling your evasion or your AC. Blocking doesn't benefit from repulsion or EV.

Your ability to block missiles doesn't benefit from repulsion or EV.

Max Blocks

Each type of shield (or lack thereof) can only block a certain number of attacks per player turn:

Shield type Max Blocks
None 1
Buckler 2
Kite shield 3
Tower shield 4

SH calculation

If you are wielding a physical shield, its SH is determined as follows:[4]

All other sources of SH (Qazlal shield, amulet of reflection...) are flat bonuses, and are added on top of the physical shield bonus. The final value is rounded to the nearest integer and displayed as the player's SH value.

If you are paralysed, petrified, or if dexterity is 0, then SH is set to 0 regardless of any other factors.

Chance to block

The game compares the attacker's "pierce value" to the defender's "block value".

The attacker's pierce value is dependent on their to-hit (accuracy) and the type of attack:

  • Melee attack: 1d(15 + to_hit/2)
  • Ranged attack: 1d(1.3×to hit)

The defender's blocking value is equal to:[6]

  • All attacks: 2d(4×SH)/6 - 1
  • Divide by 3 against melee attacks from invisible opponents.

If the blocking value is greater or equal than the attacker's pierce value, the attack is blocked.

History

  • Prior to 0.31, shields did not have a hard limit on the number of attacks you could block. However, for each attack you blocked, future blocks attempts were less likely (attackers' pierce value was 1d(15 + to_hit/2 +5 × past_blocks^2) for melee, similar for ranged). Also, instead of gaining 0.82 SH by default, the first three levels gave an extra +0.19 SH/level, and you only got 0.25 SH by default.
  • Prior to 0.30, species size impacted shield encumbrance and SH score. Larger species were less encumbered by shields, but received slightly less SH from kite shields. Smaller species were the opposite, more SH from bucklers/kite shields, but more encumbered by them. Strength had no effect on shield penalties.
  • In 0.28, magical orbs were added as a new category of off-hand equipment.
  • Prior to 0.28, shields had a different EV penalty formula, EV_penalty - skill / (5 + size_factor) (buckler = 0.8 EV, kite shield = 3, tower shield = 5). Using shields at 0 skill was more encumbering, but certain skill thresholds (regular size species: 4 skill for buckler, 15 for kite shield, 25 for tower shield) negated penalties entirely. They also had a to-hit penalty. In addition, the two larger shields used strength (along with dexterity) to determine bonus SH.
  • Prior to 0.27, shields had a smaller and randomized penalty to attack delay (previously: smaller of {1d(20 * EV)/20, 1d(20 * EV)/20} rounded down).
  • Prior to 0.25, kite shields were known as just "shields" and tower shields were called "large shields".
  • Prior to 0.17, unarmed attacks had a speed penalty when attacking with a shield equipped.
  • Prior to 0.16, the amount of skill required to negate penalties for wearing a shield was more complex.

References

  1. player.cc:5739 (0.30.0)
  2. player-act.cc:348 (0.30.0)
    Note that the function random_var is rolling a number from (20 * EV_penalty) to (20 * EV_penalty + 1), which is then divided by 20, and rounded in a weighed fashion. (See random-var.cc:11 (0.30.1))
  3. makeitem.cc:741 (0.29.1)
  4. player.cc:2200 (0.31-b1)
    These values are divided by 200 by later functions.
  5. player.cc:2254 (0.31-b1)
    Divided by 2 by a later function.
  6. player.cc:5656 (0.30.1)
    Note that "player_shield_class" is half of your displayed SH.
Armour
Body Armour Leather armourRing mailScale mailChain mailPlate armourCrystal plate armour

RobeAnimal skinTroll leather armourSteam dragon scalesAcid dragon scales
Swamp dragon scalesQuicksilver dragon scalesFire dragon scalesIce dragon scales
Pearl dragon scalesShadow dragon scalesStorm dragon scalesGolden dragon scales

Miscellaneous HatHelmetCloakScarfGlovesBootsBarding
Shields BucklerKite shieldTower shieldOrb