v50 Steam/Premium information for editors
  • v50 information can now be added to pages in the main namespace. v0.47 information can still be found in the DF2014 namespace. See here for more details on the new versioning policy.
  • Use this page to report any issues related to the migration.
This notice may be cached—the current version can be found here.

Editing Material science

Jump to navigation Jump to search

Warning: You are not logged in.
Your IP address will be recorded in this page's edit history.

If you are creating a redirect to the current version's page, do not use any namespace. For example: use #REDIRECT [[Cat]], not #REDIRECT [[Main:Cat]] or #REDIRECT [[cv:Cat]]. See DF:Versions for more information.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.

Latest revision Your text
Line 1: Line 1:
{{migrated article}}
+
{{Migrated_article}}
{{Quality|Unrated}}
+
{{Quality|Exceptional|23:57, 9 October 2013 (UTC)}}
 
{{av}}   
 
{{av}}   
 
{{Material properties}}
 
{{Material properties}}
  
[[Material|Materials]] have a number of properties representing real-world variables that describe how they respond to inputs.  In particular, the game has a number of variables that describe what happens to a material when it's put under stress.
+
[[Material|Materials]] have a number of properties representing real world variables that describe how they respond to inputs.  In particular, the game now has a number of variables that describe what happens to a material when it's put under stress.
  
 
==What is stress?==
 
==What is stress?==
Line 11: Line 11:
 
In the material raws, whenever you see 'yield', 'fracture', or '[[Strain at yield|strain at yield]]', that property is a stress-related quality.
 
In the material raws, whenever you see 'yield', 'fracture', or '[[Strain at yield|strain at yield]]', that property is a stress-related quality.
  
==When does ''Dwarf Fortress'' make stress calculations?==
+
==When does Dwarf Fortress make stress calculations?==
 
At present, DF seems to only apply forces during combat, and thus only stresses objects (generally armor and various body layers) at that time.
 
At present, DF seems to only apply forces during combat, and thus only stresses objects (generally armor and various body layers) at that time.
  
Line 22: Line 22:
  
 
===Mechanical Performance Properties===
 
===Mechanical Performance Properties===
Yield: This is almost certainly 'Yield Strength', which is the amount of stress needed to cause a material to go from elastic deformation (whereby halting stressing causes it to return to its original shape) to plastic deformation (whereby halting stressing causes it to keep its shape).  Since most objects only elastically deform over small distances of deformation, high Yield values generally means it takes a lot of force to noticeably 'stretch' them (but see strain at yield).
+
Yield: This is almost certainly 'Yield Strength', which is the amount of stress needed to cause a material to go from elastic deformation to plastic deformation(That is, if you cease stressing the object, does it revert to its original shape or not).  Since most objects only elastically deform over small distances of deformation, high Yield values generally means it takes a lot of force to noticeably 'stretch' them (but see strain at yield).
  
 
Fracture: The fracture point is the amount of stress or force necessarily to cause the material to fail, or in other words, to break.
 
Fracture: The fracture point is the amount of stress or force necessarily to cause the material to fail, or in other words, to break.
  
Strain at yield (sometimes incorrectly referred to as 'elasticity'): This variable tells you how much deformation occurs to the material while it is deforming elastically.  That is, as long as the force is less than the yield strength, stress * strain at yield = deformation distance.  The smaller the strain at yield, the less deformation occurs under stress. Strain is measured as parts-per-100000, meaning that 100000 strain is 100% deformation.
+
Strain at yield (sometimes incorrectly referred to as 'elasticity'): This variable tells you how much deformation occurs to the material while it is deforming elastically.  That is, as long as the force is less than the yield strength, stress * strain at yield = deformation distance.  The smaller the strain at yield, the less deformation occurs under stress.
  
Note: Strain at yield is the inverse of the relevant elastic modulus, thus a highly elastic material has low elastic modulus, and engages in less elastic collisions.
+
Note: Strain at yield is the inverse of the Elastic Modulus.  Thus a highly elastic material has low elastic modulus, and engages in less elastic collisions.
  
 
===Modes of Applying Force===
 
===Modes of Applying Force===
Line 44: Line 44:
  
 
==Effects on Combat==
 
==Effects on Combat==
The ''Dwarf Fortress'' combat system does not use all material properties at present (0.40.05). Weapon and armor damage/wear/decay is implemented.  
+
The Dwarf Fortress combat system does not use all material properties at present (0.34.11). Weapon and armor damage/wear/decay is not tracked.  
  
The formulae below have been reverse-engineered [http://www.bay12forums.com/smf/index.php?topic=131995.0] [http://www.bay12forums.com/smf/index.php?topic=142372.0] and experimentally proven [http://www.bay12forums.com/smf/index.php?topic=116151.0] [http://www.bay12forums.com/smf/index.php?topic=141364] by several independent researchers. Below are the simplified results; for more details see links above.
+
The mechanics governing how material properties impact the protection armor provides against projectiles have been [http://www.bay12forums.com/smf/index.php?topic=116151.0 studied reasonably carefully], and are described below. Armor protection from melee weapons has not been studied in detail, although it likely shares many similarities with ranged weapons. '''''Note: all of the below is based on recent (0.34.11) experiments, and is no longer correct due to changes made in 40.05. Testing is [http://www.bay12forums.com/smf/index.php?topic=141364 ongoing] to find the appropriate values for 40.05.'''''
  
===Attack Types===
+
===Projectile Properties===
Both creatures and items can have [ATTACK] tokens. A creature can execute any of its natural attacks plus any attacks of the items it holds.
+
The main factor determining if a projectile penetrates armor is its momentum.  Material properties of the bolt/arrow (except for IMPACT_YIELD, which will be described below), as well as bolt quality and marksdwarf/archer skills do not appear to matter (the skill of the marksdwarf determines if the bolt misses, hits, is dodged, or is blocked with a shield).  Dwarven weapons launch projectiles with roughly constant momentum.  However rounding of projectile masses can result in some very strange behavior. The complete calculation used to determine projectile momentum is as follows:
The attacks marked with [EDGE] flag deliver ''edged'' damage which is governed by [SHEAR_*] tokens; they can be further differentiated by attack contact area: generally concentrated strikes (area of 50 or less) are considered ''stabbing'' while wider areas correspond to ''slashing'' attacks. This distinction shall be emphasized later.
+
*Find the mass of your projectile.  Mass=SOLID_DENSITY*SIZE/1,000,000.
 +
*Floor that number to an integer.
 +
*Divide the SHOOT_FORCE of the weapon by the integer, and round the result to the nearest integer.
 +
*Cap the results by the SHOOT_MAXVEL for the weapon.
 +
*Multiply the velocity by the ''unrounded'' mass of the projectile to get the momentum.
 +
For DF34.11 values, iron, bronze, copper, silver, and steel bolts/arrows all have mass between 1 and 2, which will be floored to 1, meaning that they will have velocity equal to SHOOT_FORCE (so long as it is less than or equal to SHOOT_MAXVEL).  Wood, adamantine, and bone bolts/arrows, as well as all blowdarts, have mass less than 1, and will have velocity which is always equal to SHOOT_MAXVEL and does not depend on SHOOT_FORCE.
  
Every other attack is considered ''blunt''. [IMPACT_*] tokens affect blunt combat. Most specialised blunt weapons have small contact area; edged weapons generally also have blunt attacks with larger area values; items or creatures without defined attacks get default blunt attack with area = (size)^(2/3).
+
===Interactions Between Projectiles and Armor===
Under certain circumstances edged attack can be converted to blunt, but not contrariwise.
+
[[File:projectile.png|200px|thumb|right|A simplified flowchart showing how material properties are used as a projectile contacts armor.]]
 +
When a projectile strikes armor, there are several possible outcomes:
 +
*Conversion of edged damage to blunt damage (chain mail does this).
 +
*The projectile absorbs the force of the collision, and is deflected.
 +
*The armor absorbs all or part of the force of the blow.
 +
*The armor is fractured and does nothing to stop the projectile.
 +
For armor to be at all effective at stopping projectiles, the armor material must have SHEAR_YIELD and/or SHEAR_FRACTURE greater than or equal to the projectile material.  Otherwise, the projectile just cuts through the armor like it isn’t there. Additionally, the IMPACT_FRACTURE of the armor must be large relative to the projectile momentum, or the armor fractures and the projectile passes through without slowing down significantly (this happens for metal bolts against any plate armor in 0.34.11).  
  
Wrestling moves are special: '''breaking bones''' uses [BENDING_*] values, '''pinching''' utilizes [COMPRESSIVE_*] properties, and '''biting''' can deal [TENSILE] or [TORSION] damage depending on whether the attack is edged. Those attacks generally ignore armor.
+
====Conversion of Edged Damage to Blunt Damage====
 +
If the momentum of the projectile is not too high, then chain armor can convert the edged damage normally caused by projectiles to blunt damage, resulting in chips, fractures, jams and bruises, but no tears or cuts.  Plate armor does not appear to provide this type of protection under any conditions tested so far. It is not yet known how the momentum needed for edged damage to penetrate chain armor is calculated, but for the cases examined the momentum needed is many times larger than those observed for in-game projectiles.
  
===Contact Area===
+
====The Projectile Absorbs the Force of the Collision====
Attack contact area is the minimum of weapon contact area and armor/layer contact area.
+
If the projectile does not cut right through the armor (armor material must have SHEAR_YIELD and/or SHEAR_FRACTURE greater than or equal to the projectile material), then it must push in a chunk of the armor.  If the armor is not strong enough to resist being pushed in (armor resisting the blow is covered in the next section), then the force to push in the armor is proportional to the mass of the chunk of armor. If the projectile material is not strong enough to exert this force, then it is deformed and deflects.  The following algorithm determines if this type of deflection occurs:
Body parts have areas dependent on their size, as with non-weapon items; part size is <u>creature size</u> '''times''' <u>relative size of the part in proportion to whole body</u>.
+
*Calculate the volume of armor moved by the projectile.  Multiply armor LAYER_SIZE by projectile CONTACT_AREA, and then round down to the nearest 100.  If the result is less than 100, then instead round up to 100.
{| class="wikitable"
+
*Mass=armor SOLID_DENSITY times the volume from the last step
|-
+
*If the IMPACT_YIELD of the projectile is less than mass*(800/157)/PROJECTILE_SIZE, then the projectile deforms and is reported as “deflected”.  
! Body part
+
In-game, this type of deflection is observed for wood bolts impacting metal armor, and explains why adamantine is observed to be the worst armor for deflecting wood bolts, as it has the lowest density. As explained below, adamantine can barely stop wood bolts using the "Armor Absorbs the Force of the Collision" mechanism, and wood bolts would easily fracture copper or steel armor were it not for the higher densities of those metals causing the projectile to absorb the force of the collision instead.
! Relative size (human)
 
! [[Kobold]]
 
! [[Elf]]/[[Goblin]] <!-- NOT dwarf, dwarves have proportionally bigger upper bodies -->
 
! [[Human]]
 
! [[Troll]]
 
|-
 
|| Total || 100% || 20000 || 60000 || 70000 || 250000
 
|-
 
|| Upper body || 18% || 3599 || 10818 || 12621 || 43133
 
|-
 
|| Lower body || 18% || 3599 || 10818 || 12621 || 43133
 
|-
 
|| Neck || 1.8% || 359 || 1081 || 1262 || 4313
 
|-
 
|| Head || 5.4% || 1079 || 3245 || 3786 || 12939
 
|-
 
|| Upper arm || 3.6% || 719 || 2163 || 2524 || 8626
 
|-
 
|| Lower arm || 3.6% || 719 || 2163 || 2524 || 8626
 
|-
 
|| Hand || 1.4% || 287 || 865 || 1009 || 3450
 
|-
 
|| Upper leg || 9.0% || 1799 || 5409 || 6310 || 21566
 
|-
 
|| Lower leg || 7.2% || 1439 || 4327 || 5048 || 17253
 
|-
 
|| Foot || 2.2% || 431 || 1298 || 1514 || 5175
 
|}
 
  
Armor size is calculated as <u>underlying body part size</u> '''times''' <u>coverage/100%</u> '''times''' <u>size/100</u> '''times''' <u>1+(UPSTEP+UBSTEP+LBSTEP)/4</u>; MAX count as 3 in the last sum.
+
====The Armor Absorbs the Force of the Collision====
{| class="wikitable"
 
|-
 
! Item
 
! Size multiplier
 
! Body part
 
! [[Dwarf]]
 
! [[Human]]
 
! Extra body parts covered (humanoid)
 
! Notes
 
|-
 
|| Cap || 0.05 || Head || 162 || 189 || none || Cloth
 
|-
 
|| Mask || 0.1 || Head || 324 || 378 || none || Cloth
 
|-
 
|| Helm || 0.3 || Head || 973 || 1135 || none ||
 
|-
 
|| Leather armor || 0.3 || Upper body || 3245 || 3786 || Lower body, neck, upper arms, upper legs || leather
 
|-
 
|| Mail shirt || 0.225 || Upper body || 2434 || 2839 || Lower body, neck, upper arms, upper legs || Chain
 
|-
 
|| Breastplate || 0.2 || Upper body || 2163 || 2524 || Lower body ||
 
|-
 
|| Gauntlets || 0.25 || Hands || 216 || 252 || Lower arms, fingers ||
 
|-
 
|| Leggings || 0.2625 || Lower body || 2839 || 3313 || Upper legs, lower legs, toes || Chain
 
|-
 
|| Greaves || 0.2625 || Lower body || 2839 || 3313 || Upper legs, lower legs, toes ||
 
|-
 
|| Low boots || 0.25 || Feet || 324 || 378 || Toes ||
 
|-
 
|| High boots || 0.3125 || Feet || 405 || 473 || Lower legs, toes ||
 
|}
 
  
===Attack Momentum===
+
This form of deflection depends only on the momentum, but not the material, of the projectileThe armor will provide 50% protection from projectiles if
DF uses momentum-based combat physics, so the momentum plays a central role in calculations.
+
momentum = (IF-IY/2)*round100(C*S)/(2400000-AU*10000-Q*30000)
Since momentum = velocity * mass, and lighter items can be swung faster, attack momentum is largely independent from weapon weight. The simplified formula is as follows:
 
 
 
M = Str * Vel / ( 10<sup>6</sup>/Size + 10*F/W ),
 
 
 
or
 
 
 
M = Size * Str * Vel / (10 * (( 10<sup>5</sup> + i_Size)/W )),
 
 
 
or
 
 
 
M = Size * Str * Vel / (10<sup>6</sup> * (1 + i_Size/(w_density*w_size) )
 
 
 
where:
 
* '''M''' is the momentum.
 
* '''Str''' is the creature's strength (e.g. 1250 for the average dwarf)
 
* '''Vel''' is the weapon's velocity modifier if present (e.g. 1.25x, 2x)
 
* '''Size''' is the average creature size (e.g. 60000 for dwarves)
 
* '''i_Size''' is the specific creature's size
 
* '''F''' is "fatness modifier" (also includes muscle) = i_Size/Size; dwarf with size of 66150 will have F=66150/60000=1.1025
 
* '''W''' is weapon mass in kilograms (Γ)
 
* '''w_density''' is the weapon's material's density
 
* '''w_size''' is the weapon's size.
 
 
 
Or, to sum up:
 
 
 
A stronger, smaller creature from a larger species wielding a more massive weapon hits with more momentum.
 
A stronger, smaller creature from a larger species wielding a larger, denser weapon hits with more momentum.   
 
 
 
For dwarves, the formula becomes
 
 
 
M = 6*10<sup>4</sup> * Str * Vel / (10 * ( 10<sup>5</sup> + i_Size/W )) = 6*10<sup>4</sup> * Str * Vel / ( 10<sup>5</sup> + i_Size/W )
 
 
 
or
 
 
 
M = 0.06 * Str * Vel / (1 + i_Size/(w_density*w_size) )
 
 
 
There are 28 possible sizes for your dwarves from 33750 to 93750; strength can vary from 0 to 5000 with an average of 1250; velocity can vary from 1 (pommel strikes) to 5 (whip lashes); weapon size can vary from 100 (whips) to 1300 (great axes, which are unwieldable by dwarves; the largest wieldable weapon is size 800, in the form of battle axes and maces).
 
 
 
{| class="wikitable" border="border"
 
|+ Momenta for dwarves of strength 1250 hacking (velocity 1.25) with battle axes (size 800), rounded to 3 decimal places
 
! Dwarf Size
 
! Adamantine
 
! Divine metal
 
! Steel
 
! Iron
 
! Bismuth bronze
 
! Bronze
 
! Copper
 
! Silver
 
|-
 
| 33750 || 77.4194 || 89.9550 || 93.2489 || 93.2489 || 93.2730 || 93.2730 || 93.3092 || 93.3745
 
|-
 
| 42750 || 73.9827 || 88.9944 || 93.1161 || 93.1161 || 93.1467 || 93.1467 || 93.1923 || 93.2748
 
|-
 
| 44100 || 73.4934 || 88.8520 || 93.0963 || 93.0963 || 93.1277 || 93.1277 || 93.1748 || 93.2599
 
|-
 
| 45000 || 73.1707 || 88.7574 || 93.0830 || 93.0830 || 93.1151 || 93.1151 || 93.1632 || 93.2500
 
|-
 
| 45900 || 72.8509 || 88.6630 || 93.0698 || 93.0698 || 93.1025 || 93.1025 || 93.1515 || 93.2400
 
|-
 
| 47250 || 72.3764 || 88.5217 || 93.0499 || 93.0499 || 93.0836 || 93.0836 || 93.1340 || 93.2251
 
|-
 
| 54150 || 70.0444 || 87.8066 || 92.9485 || 92.9485 || 92.9871 || 92.9871 || 93.0447 || 93.1489
 
|-
 
| 55860 || 69.4895 || 87.6312 || 92.9235 || 92.9235 || 92.9632 || 92.9632 || 93.0226 || 93.1301
 
|-
 
| 56250 || 69.3642 || 87.5912 || 92.9177 || 92.9177 || 92.9577 || 92.9577 || 93.0176 || 93.1258
 
|-
 
| 57000 || 69.1244 || 87.5146 || 92.9067 || 92.9067 || 92.9473 || 92.9473 || 93.0079 || 93.1175
 
|-
 
| 57624 || 68.9262 || 87.4509 || 92.8976 || 92.8976 || 92.9386 || 92.9386 || 92.9999 || 93.1107
 
|-
 
| 58140 || 68.7632 || 87.3983 || 92.8900 || 92.8900 || 92.9314 || 92.9314 || 92.9932 || 93.1050
 
|-
 
| 58800 || 68.5558 || 87.3312 || 92.8804 || 92.8804 || 92.9221 || 92.9221 || 92.9847 || 93.0977
 
|-
 
| 59850 || 68.2283 || 87.2245 || 92.8650 || 92.8650 || 92.9075 || 92.9075 || 92.9711 || 93.0861
 
|-
 
| 59976 || 68.1893 || 87.2117 || 92.8631 || 92.8631 || 92.9057 || 92.9057 || 92.9695 || 93.0847
 
|-
 
| 60000 || 68.1818 || 87.2093 || 92.8628 || 92.8628 || 92.9054 || 92.9054 || 92.9692 || 93.0845
 
|-
 
| 61200 || 67.8119 || 87.0878 || 92.8452 || 92.8452 || 92.8887 || 92.8887 || 92.9537 || 93.0713
 
|-
 
| 61740 || 67.6468 || 87.0332 || 92.8373 || 92.8373 || 92.8811 || 92.8811 || 92.9467 || 93.0653
 
|-
 
| 62424 || 67.4388 || 86.9642 || 92.8273 || 92.8273 || 92.8716 || 92.8716 || 92.9379 || 93.0578
 
|-
 
| 63000 || 67.2646 || 86.9061 || 92.8189 || 92.8189 || 92.8636 || 92.8636 || 92.9305 || 93.0514
 
|-
 
| 64260 || 66.8866 || 86.7794 || 92.8004 || 92.8004 || 92.8460 || 92.8460 || 92.9142 || 93.0376
 
|-
 
| 66150 || 66.3277 || 86.5901 || 92.7728 || 92.7728 || 92.8197 || 92.8197 || 92.8899 || 93.0168
 
|-
 
| 71250 || 64.8649 || 86.0832 || 92.6983 || 92.6983 || 92.7487 || 92.7487 || 92.8242 || 92.9607
 
|-
 
| 73500 || 64.2398 || 85.8615 || 92.6655 || 92.6655 || 92.7175 || 92.7175 || 92.7953 || 92.9360
 
|-
 
| 75000 || 63.8298 || 85.7143 || 92.6436 || 92.6436 || 92.6966 || 92.6966 || 92.7760 || 92.9196
 
|-
 
| 76500 || 63.4249 || 85.5676 || 92.6217 || 92.6217 || 92.6758 || 92.6758 || 92.7567 || 92.9031
 
|-
 
| 78750 || 62.8272 || 85.3485 || 92.5890 || 92.5890 || 92.6446 || 92.6446 || 92.7278 || 92.8784
 
|-
 
| 93750 || 59.1133 || 83.9161 || 92.3711 || 92.3711 || 92.4370 || 92.4370 || 92.5357 || 92.7143
 
|}
 
 
 
There is also a hard velocity limit (10000) that might skew these calculations, but it's actually impossible to reach in unmodded game. (Well, okay, if you're a zombie adventurer with maxed out strength you ''might'' reach the limit using an adamantine whip -- but [[stupid dwarf trick|why]]?)
 
 
 
====Situational Modifiers====
 
Momentum can be further increased with weapon skill, status effects, attack modifiers etc.
 
For example:
 
* Skill adds gradual multiplier, up to 2x at Grand Master.
 
* Quick attacks halve momentum, wild and heavy attacks add 50%.
 
* Attacking a prone opponent doubles momentum value.
 
 
 
====Ranged Attacks====
 
Attacks from missile launchers are entirely dependent on the launcher's [SHOOT_FORCE] and [SHOOT_MAXVEL] tags:
 
{| border="1" style="border-collapse: collapse;"
 
|-
 
!
 
! SHOOT_FORCE
 
! SHOOT_MAXVEL
 
! Maximum Velocity
 
! Magic Density / Constant Momentum
 
|-
 
| Bows and Crossbows || 1000 || 200 || 20 || 1666 / 50
 
|-
 
| Blowguns || 100 || 1000 || 100 || 250 / 5
 
|}
 
 
 
Specifically, as long as projectile is heavy enough, it is fired with a momentum of SHOOT_FORCE/20; if this would make its speed exceed SHOOT_MAXVEL/10, it is capped at this value instead. (As usual, momentum = velocity times weight.)  This gives the launcher a magic density above which momentum becomes a constant and velocity decays, shown in the table; below this density, velocity is constant (SHOOT_MAXVEL/10), and momentum decays.
 
 
 
Vanilla [[bolt]]s and [[arrow]]s end up with a momentum of 50 (velocity nearly 20, at density 1667), as long as their density exceeds 1666. [[Divine metal|Divine]] ammo (1.5kg) has momentum 30 (velocity 20), [[bone]] and most [[wood]] (0.75kg) get 15 (velocity 20), and [[adamantine]] bolts (0.3kg) have only 6 (velocity 20). Wooden [[dart]]s (0.1kg) usually have 5 (velocity 50).
 
 
 
====Weapon Traps====
 
Traps always have a fixed attack velocity of 200, no matter the weapon weight; the momentum thus is 200 times weight. This includes shot ammunition.
 
 
 
===Attack Momentum Costs===
 
The attack generally needs some momentum threshold to break through each armor/tissue layer.
 
If the attack is '''edged''', it also can cut through it instead. For latter it has to have momentum no less than:
 
 
 
M >= (rSY + (A+1)*rSF) * (10 + 2*Qa) / (S * Qw),
 
  
 
where:
 
where:
* '''rSY''' is the ratio of layer's to weapon's SHEAR_YIELD
+
*IF is IMPACT_FRACTURE,
* '''rSF''' is ditto with SHEAR_FRACTURE
+
*IY is the IMPACT_YIELD of the armor material,
* '''A''' is attack contact area
+
*C is the CONTACT_AREA of the projectile (although it is the smaller of the projectile's contact area and the body part struck's contact area),
* '''S''' is weapon material [[edge|sharpness]] multiplier (1x for most metals, 1.2x for [[divine metal]], 1.5x for [[glass]], 2x for [[obsidian]], 10x for [[adamantine]] and 0.1x for all other materials)
+
*S=LAYER_SIZE of the armor item(s) covering the body part struck,
* '''Qw''' is [[quality]] sharpness multiplier (1x for normal quality, 1.4x for fine, 2x for masterwork (or artifact) etc.)
+
*AU is the target's armor user skill (0=none, 16=legendary), and
* '''Qa''' is armor [[quality]] multiplier (same but x3 for artifacts)
+
*Q is the armor quality (0=none, 5=masterwork).
 
+
*The function round100(x) is equal to 100 if x is less than 100, and 100*floor(x/100) otherwise (rounded down to the nearest 100).
Should it exceed this value, attack momentum is decreased by some 5% and the layer is considered punctured/severed. Calculations then repeat for the underlying layer. Otherwise damage is converted to blunt ''just for this layer'' and proceeds as following.
 
 
 
'''Blunt attacks''' can be entirely deflected by armor if weapon's IMPACT_YIELD is especially low relative to armor's density:
 
 
 
2 * Sw * IYw < A * Da,
 
 
 
where '''Da''' is armor material's density (in g/cm<sup>3</sup>), '''A''' is attack contact area, '''Sw''' is weapon size and '''IYw''' is its impact yield in MPa (i.e. raw value divided by 10<sup>6</sup>).
 
 
 
Otherwise, attack must have minimum momentum of:
 
 
 
M >= (2*IF - IY) * (2 + 0.4*Qa) * A,
 
 
 
where '''IF''' and '''IY''' are layer's impact fracture and impact yield in MPa, '''Qa''' is armor quality multiplier and '''A''' is contact area as above.
 
Again, on success layer is considered thrashed, momentum is reduced by about 5% and next layer is tested.
 
 
 
If both edged and blunt momenta thresholds haven't been met, attack is ''permanently'' converted to blunt and its momentum may be greatly reduced.
 
Specifically, it is multiplied by SHEAR_STRAIN_AT_YIELD/50000 for ''edged'' attacks or IMPACT_STRAIN_AT_YIELD/50000 otherwise. I.e., most metals reduce blocked attacks by 98%-99%, but see below.  Note that elastic armor, such as a mail shirt, has both strain at yield values raised to 50000, so it multiplies by 1 at this step (i.e. does nothing to the momentum, but does still convert it to blunt) regardless of material.
 
 
 
===Elastic Material Modifiers===
 
Clothing with [STRUCTURAL_ELASTICITY_*] tokens has its stress properties modified.
 
 
 
Items with [STRUCTURAL_ELASTICITY_CHAIN_ALL] or metallic items with [STRUCTURAL_ELASTICITY_CHAIN_METAL] have their [*_STRAIN_AT_YIELD] increased to 50000, which means that blocked attack will not be dampened; it still may be converted to ''blunt'', however. Metal leggings and chainmail shirts have this property in vanilla.
 
 
 
Items made of cloth with [STRUCTURAL_ELASTICITY_WOVEN_THREAD] additionally have their SHEAR values reduced to negligible 20-30 kPa.  ([[Adamantine]] fabric seems to be an exception, however: unlike in v0.34, it's observed to be at least as protective as chain.)  Caps and all clothing have this tag in vanilla.
 
 
 
===Penetration Depth===
 
Penetration depth affect how deep stabs go. Unlike contact area, penetration depth is the maximum shear distance the weapon can go before an edged force stops and converts into a blunt force. If the penetration depth is greater than the size of the struck body part, the body part may be sliced off entirely. This means that weapons like morningstars mainly deal surface damage but can still damage arteries, nerves, tendons, toes, and the like.{{verify}}
 
 
 
===Pulping===
 
Pulping appears to work by evaluating the layers in a body part. If each layer meets any one of the following criteria then the body part is pulped:
 
* 100% bruised/burned/frostbite/melt/necrosis/blister/boil/freeze/condense (i.e. 10000+ in layer_effect_fraction)
 
* 250% dented (i.e. 25000+ in layer_dent_fraction)
 
* 100% cut (i.e. 10000+ in layer_cut_fraction) (cut in this case is synonymous with fracture)
 
 
 
Spines, skulls, and perhaps other body parts have the [PREVENTS_PARENT_COLLAPSE] token which prevents the parent body part (such as the head, upper body, or lower body) from being pulped until the sub-part is broken. It appears that only external body parts can be pulped, not internal organs. You will find that boneless body parts that don't contain a spine/skull part will pulp VERY easily (i.e. eyes/ears).
 
 
 
There does not appear to be any distinctions between the combat text descriptions of the pulping, beyond the messages being appropriate to the weapon used (edged, blunt, or creature body part).
 
 
 
==Material and item properties==
 
As can be seen from above, importance of different material/item properties greatly varies in different scenarios. Below are some guidelines to estimating weapon/armor merit.
 
* When dealing with dwarf-sized targets, layer '''contact areas''' usually lay in 200~10000 range. The majority of vanilla weapons, however, has contact areas either below or above that ([[dagger]] is the lone exception); it therefore can be said, as a rule of thumb, that weapons with area of five or six digits assume their target's contact area, whereas the others use their own.
 
* Weapon '''weight''' matters very little past a certain threshold: for example, a platinum [[war hammer]] in dwarven hands only gets about 12% more momentum over a steel one, despite being thrice as heavy. (An adamantine hammer, however, only has 1/7th as much.) Thus, since all common weapon metals have about the same density, it can be safely ignored.
 
** The only exception are ''weapon traps'', which are much more effective with heavy weapons loaded.
 
* '''Shear yield''' doesn't actually matter. Even with [[dagger]]/[[bolt]]'s contact area of 5 it contributes only ~15% to piercing cost, and since it equals about half of shear fracture for most metals, it can be approximated as such without much error.
 
* Blunt weapons only use '''impact yield''' value. '''Impact fracture''' ''protects'' from blunt attacks instead. Curiously, layer impact yield actually decreases blunt fracturing cost, so ''lower yield is better'' for armor.
 
** Most dedicated blunt weapons cannot be deflected by anything but slade, so their impact yield can in fact be ignored.
 
* Chain mail cannot block attacks via momentum cost thresholds; it still can blunt slashing attacks and then deflect them. Thus, the best defence can be reached by wearing ''dense'' (like [[copper]]) mail shirt under a ''rigid'' (like [[candy]]) one.
 
* '''Strain at yield''' values are used in comparison to 50000. Since all metals have much less strain values than this, they all can be considered to have ''zero'' elasticity.
 
* Armor quality doesn't matter much:  masterwork armor provides only about 15% more protection than low-quality one.
 
* Blunt weapon quality appears to not affect damage at all.
 
 
 
With that in mind, here are some numbers for vanilla weapon/armor materials:{{Verify|I could not reproduce the right-hand side of this table}}
 
  
{| class="sortable wikitable"
+
It unclear if or how the thicknesses of multiple armor layers covering one body part stack. This formula is approximate, and the exact values of the coefficients in the denominator may not be accurate. The amount of protection provided drops sigmoidally from 100% to zero over a fairly narrow range. Furthermore, negative status of the target creature (fallen over, unconscious, etc.) are known to significantly reduce armor protection provided. These numbers will roughly predict the results for an ideal, uninjured dwarf, and worse protection should be expected in other cases. The exact manner in which status affects impact armor protection has not yet been explored.
|-
 
! Material
 
!Density
 
! Impact Yield
 
! 2*(Impact Fracture) - Impact Yield
 
! Shear Fracture
 
! class="unsortable" | Elasticity
 
! Sharpness
 
! class="unsortable" |
 
! Bolt
 
! adj.
 
! Sword
 
! adj.
 
! Mace
 
! min M
 
|-
 
|| Adamantine || 0.20 || 5.00 || 5.00 || 5.00 || 0 || 10 |||| 6 || 300 || 9 || 450 || 31 || 200
 
|-
 
|| Bone/shell || 0.50 || 0.20 || 0.20 || 0.13 || <1% || 0.1 |||| 15 || 0.20 || 19 || 0.25 || 60 || 8
 
|-
 
|| Bronze || 8.25 || 0.60 || 1.08 || 0.24 || <=1% || 1 |||| 49 || 12 || 75 || 18 || 138 || 43
 
|-
 
|| Copper || 8.93 || 0.25 || 1.30 || 0.22 || <1% || 1 |||| 49 || 11 || 77 || 17 || 138 || 52
 
|-
 
|| Divine metal || 1.00 || 1.00 || 3.00 || 2.00 || 0 || 1.2 |||| 30 || 72 || 31 || 74 || 86 || 120
 
|-
 
|| Glass || 2.6 || 1.00 || 1.00 || 0.04 || 4%/<1% || 1.5 |||| -- || -- || 53 || 3.2 || 116 || 40
 
|-
 
|| Iron || 7.85 || 0.54 || 1.62 || 0.31 || <1% || 1 |||| 49 || 15 || 75 || 23 || 137 || 65
 
|-
 
|| Leather || 0.50 || 0.01 || 0.01 || 0.03 || 100% || -- |||| -- || -- || -- || -- || -- || 0.4
 
|-
 
|| Obsidian || 2.67 || 1.00 || 1.00 || 0.04 || 4%/<1% || 2 |||| -- || -- || 54 || 4.3 || 117 || 40
 
|-
 
|| Platinum || 21.4 || 0.35 || 1.05 || 0.20 || <1% || 1 |||| -- || -- || 86 || 17 || 145 || 42
 
|-
 
|| Silver || 10.49 || 0.35 || 0.84 || 0.17 || <1% || 1 |||| 49 || 8.3 || 79 || 13 || 140 || 34
 
|-
 
|| Slade || 200 || 4.00 || 6.00 || 5.00 || <1% || 0.1 |||| -- || -- || 93 || 46 || 149 || 240
 
|-
 
|| Steel || 7.85 || 1.51 || 3.54 || 0.72 || 2%/<1% || 1 |||| 49 || 35 || 75 || 54 || 137 || 142
 
|-
 
|| Wood || 0.50 || 0.01 || 0.01 || 0.04 || 2% || 0.1 |||| 15 || 0.06 || 19 || 0.076 || 60 || 0.4
 
|}
 
Clarifications:
 
  
On the left side of the table there are some raw values. Density and impact yield are important for a blunt weapon; 4th column is adjusted impact fracture that appears in the formula for blunt defense. Shear fracture is important for edged attacks and defense. Elasticity is in %s of 100000; as you can see, it is universally low.
+
The manner in which armor offers protection is different depending on whether the bolt momentum is greater than 50000/IMPACT_STRAIN_AT_YIELD. If momentum is less than this threshold, then armor can completely deflect projectiles, while if it is larger, armor can significantly slow projectiles so that they cause only bruises (not tears, chips, fractures, or jams).  
  
On the right side there are some typical weapon momenta. From left to right: bolt momentum; ditto multiplied by SF and sharpness (signifies piercing ability); short sword momentum in dwarven hands; ditto multiplied by sharpness and SF; dwarf swinging a mace; and minimum momentum '''some''' mace needs to break through armor of '''this''' material.
+
This type of collision is only observed in-game for bolts with densities less than about 750 (most wood, adamantine) deflecting off adamantine armor.  In all other cases the bolt momentum is far to high to be stopped by any armor using this mechanism.
  
 
{{Category|Materials|*}}
 
{{Category|Materials|*}}

Please note that all contributions to Dwarf Fortress Wiki are considered to be released under the GFDL & MIT (see Dwarf Fortress Wiki:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!

To protect the wiki against automated edit spam, we kindly ask you to solve the following CAPTCHA:

Cancel Editing help (opens in new window)

This page is a member of 2 hidden categories: