Difference between revisions of "Shields"

From CrawlWiki
Jump to: navigation, search
m (Attack Penalty: put "what it affects" first)
m (Attack Penalty)
(4 intermediate revisions by the same user 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 49: Line 49:
 
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.
 
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, and not [[decaAut]]/[[turn]]s. E.g., having 1 EV penalty slows you down by 1 aut = 0.1 turn.
+
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===
Line 87: Line 87:
 
*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. Your ability to block missiles doesn't benefit from [[repulsion]] or [[EV]].
+
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:
 +
{| class="prettytable" cellpadding="10" border="9"
 +
|- align="center"
 +
! Shield type !! Max Blocks
 +
|-
 +
|None || 1
 +
|-
 +
|Buckler || 2
 +
|-
 +
|Kite shield || 3
 +
|-
 +
|Tower shield || 4
 +
|}
  
 
===SH calculation===
 
===SH calculation===
If you are wielding a physical shield, its SH is determined as follows:<ref>{{source ref|0.30.0|player.cc|2160}}<br>These values are divided by 200 by later functions.</ref>
+
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>
  
 
*Your '''Base SH''' is determined by type of shield. 3 for [[buckler]]s, 8 for [[kite shield]]s, 13 for [[tower shield]]s.
 
*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 '''[[Shields (skill)|Skill Bonus]]''' of <code>(base_SH/40 + 0.19) * skill</code>.
**Add another 0.57 if skill ≥ 3, else add <code>0.19 * skill</code>.
 
 
*Add '''[[Dexterity|Stat Bonus]]''' of <code>DEX * 38 * (base_SH + 13) / 5200</code>.
 
*Add '''[[Dexterity|Stat Bonus]]''' of <code>DEX * 38 * (base_SH + 13) / 5200</code>.
 
*Add '''[[Enchant]]ment''' value. +1 enchantment = +1 SH.
 
*Add '''[[Enchant]]ment''' value. +1 enchantment = +1 SH.
*Add 0.25 SH.<ref>{{source ref|0.30.0|player.cc|2213}}<br>Divided by 2 by a later function.</ref>
+
*Add 0.82 SH.<ref>{{source ref|0.31-b1|player.cc|2254}}<br>Divided by 2 by a later function.</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.
 
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.
Line 107: Line 123:
  
 
The attacker's pierce value is dependent on their [[to-hit]] (accuracy) and the type of attack:
 
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 + 5×past_blocks^2)</code>
+
* '''Melee attack:''' <code>1d(15 + to_hit/2)</code>
* '''Ranged attack:'''  <code>1d(1.3×to hit + 5×past_blocks^2)</code>
+
* '''Ranged attack:'''  <code>1d(1.3×to hit)</code>
  
 
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>
 
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>
Line 117: Line 133:
  
 
==History==
 
==History==
*In [[0.31]], shields will only be able to block a certain number of attacks per turn, rather than reducing calculated SH per attack. Tower shields will get 4 blocks/turn, kite shields 3, bucklers 2, and shieldless 1 (if any SH is gained.)
+
*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.
 
*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 [[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.
Line 133: Line 149:
 
[[Category:Items]]
 
[[Category:Items]]
 
[[Category:Shields]]
 
[[Category:Shields]]
[[Category:Crystal Ball Articles]]
 

Revision as of 23:46, 4 February 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