Difference between revisions of "Shields"

From CrawlWiki
Jump to: navigation, search
m (Spell Penalty: clarify)
m (Attack Penalty)
 
(56 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{version028}}
+
{{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 24: Line 24:
 
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.  
 
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==
+
===EV Penalty===
Your shield EV penalty is <code>2/5 * encumbrance^2 / (20 - 3 * size_factor) * (27 - shield_skill) / 27</code><ref>{{source ref|0.28.0|player.cc|5587}}</ref>. Larger species can wield shields more comfortably, smaller species have more difficulty with 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>
  
The EV penalty a direct penalty to your evasion, and is used to calculate the other penalties.
+
[[File:Shield encumbrance ev.png|500px|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 40: Line 42:
 
|}
 
|}
  
{| class="prettytable" cellpadding="10" border="9"
+
The EV penalty is subtracted directly from your evasion. Your unrounded EV penalty is also used to calculate the other penalties.
|- 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)|| [[Palentonga]], [[Naga]]|| -2
 
|-
 
|Large || [[Ogre]], [[Troll]] || -2
 
|}
 
  
 
===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.28.0|player-act.cc|296}}</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 = ev_penalty - ( (shields_skill) / (Size factor + 5) ) </code>.
+
<code>spell failure = 19 * ev_penalty </code>
  
This is then modified by various functions described more in the [[spell success]] page.
+
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.
  
 
==[[Ego]]s==
 
==[[Ego]]s==
[[Buckler]]s, [[kite shield]]s, and [[tower shield]]s can spawn with the following egos<ref>{{source ref|0.28.0|makeitem.cc|768}}</ref>:
+
[[Buckler]]s, [[kite shield]]s, and [[tower shield]]s can spawn with the following egos<ref>{{source ref|0.29.1|makeitem.cc|741}}</ref>:
 
*~3%, [[Resistance_(ego)|resistance]]
 
*~3%, [[Resistance_(ego)|resistance]]
 
*10%, [[fire resistance]]
 
*10%, [[fire resistance]]
Line 82: 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, are under the effect of a magical shield ([[amulet of reflection]], [[Qazlal]]'s Storm Shield, or [[the Shining One]]'s Divine Shield), or have the [[Good_mutations#Large_Bone_Plates|Large Bone Plates]] mutation. 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 [[Bows]] or [[Slings]]
+
*[[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:
 
SH = Block × (1 + Shield skill/40)
 
+ Enchantment bonus + Stat bonus
 
+ min(0.38×Shield skill, .57 + 0.19×Shield skill)
 
 
 
and then on top of this:
 
+ Divine shield bonus
 
+ 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), modified by a size factor:
 
  
 +
===Max Blocks===
 +
Each type of shield (or lack thereof) can only block a certain number of attacks per player turn:
 
{| class="prettytable" cellpadding="10" border="9"
 
{| class="prettytable" cellpadding="10" border="9"
 
|- align="center"
 
|- align="center"
! Size !! Races !! Buckler !! Kite Shield !! Tower shield
+
! Shield type !! Max Blocks
|-
 
|Little || [[Spriggan]] || +2 || - || -
 
|-
 
|Small || [[Kobold]] || +1 || +0.5 || -
 
 
|-
 
|-
|Normal || most races || 0 || 0 || 0
+
|None || 1
 
|-
 
|-
|Normal<br>(strong arms)|| [[Formicid]] || 0 || 0 || 0
+
|Buckler || 2
 
|-
 
|-
|Large<br>(normal torso)|| [[Palentonga]], [[Naga]] || 0 || 0 || 0
+
|Kite shield || 3
 
|-
 
|-
|Large
+
|Tower shield || 4
|| [[Ogre]], [[Troll]] || - || -0.5 || 0
 
 
|}
 
|}
  
*'''Stat bonus''' is <code>DEX * 38 * (base_shield + 13) / 5200</code><ref>{{source ref|0.28.0|player.cc|2147}}</ref>,
+
===SH calculation===
*The Shining One's '''Divine shield bonus''' is based on Invocations skill.
+
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>
*'''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.
+
*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>
  
The attacker's pierce value is equal to:
+
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.
  
1d(15 + to hit/2 + 5×past_blocks^2) - 1 (melee attacks)
+
If you are [[paralysed]], [[petrified]], or if [[dexterity]] is 0, then SH is set to 0 regardless of any other factors.
  
1d(1.3×to hit    + 5×past_blocks^2) - 1 (ranged attacks) 
+
===Chance to block===
 +
The game compares the attacker's "pierce value" to the defender's "block value".
  
"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.
+
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>
  
The defender's blocking value is equal to:
+
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>
2d(2×SH)/6 - 1.3 (Divided by 3 against melee attacks from invisible opponents)
+
* '''All attacks:''' <code>2d(4×SH)/6 - 1</code>
 +
* Divide 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.
+
If the blocking value is greater or equal than the attacker's pierce value, the attack is blocked.
  
 
==History==
 
==History==
*In [[0.28]], [[orb]]s, magical nonshields in the offhand slot, were introduced.
+
*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.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.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.27]], the shield penalty was increased.
+
*In [[0.28]], magical [[orb]]s were added as a new category of off-hand equipment.
 +
*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.  
 +
*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.

Latest revision as of 23:46, 4 February 2024

Version 0.31: This article is up to date for the latest stable release of Dungeon Crawl Stone Soup.

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 scalesGold dragon scales

Miscellaneous HatHelmetCloakScarfGlovesBootsBarding
Shields BucklerKite shieldTower shieldOrb