Rate of fire (ROF), or rate of attack, is a property of weapons in Deus Ex that pertains to how rapidly the weapon fires or attacks over successive rounds or strikes. This page describes the game mechanics of this property.
Overview[]
The inventory interface displays a ROF value for non-melee weapons. This value, which is sometimes called the "nominal ROF," is computed as the reciprocal of the ShotTime attribute defined for the weapon, truncated to one decimal places. In general, ShotTime defines a delay in between successive shots or attacks, although whether it actually governs depends on other factors.
However, the nominal ROF displayed in-game is not necessarily the weapon's true rate of fire. The weapon's true rate of fire, also referred to as "actual ROF" in articles on this wiki, depends on not only the ShotTime attribute, but also the attributes of the weapon's attack animation, as well as whether the weapon is "automatic" or non-automatic.
Calculating the actual rate of fire[]
The actual ROF, in rounds per second (or attacks per second), is computed as follows:[1]
- Non-automatic weapons: Actual ROF = 1 / Max(ShotTime, FramesAnim / RateAnim + 0.1)
- Automatic weapons: Actual ROF = 1 / Min(ShotTime, FramesAnim / RateAnim)
Where:
- Automatic weapons consists of the pepper gun, assault rifle, assault shotgun, and flamethrower, while all other weapons listed below are non-automatic. A weapon is considered to be "automatic" or "non-automatic" based on the internal property "bAutomatic."
- ShotTime is an internal attribute of weapons that defines a delay period in number of seconds. The ShotTime attribute of each weapon is listed in the table below.
- FramesAnim is the value of "NUMFRAMES" defined for the weapon's attack animation as specified in the DeusExItems.u package. The attack animation is Shoot for ranged weapons and Attack, Attack2, and Attack3 for melee weapons.
- RateAnim is the value of "RATE" defined for the weapon's attack animation. The factor "FramesAnim / RateAnim" has units of seconds and is listed under the "Fr.Rate" column in the table below.
- The "0.1" factor is a "tween-time" duration that is specified in the game files.[2] For non-automatic weapons, this factor lengthens the overall animation by 0.1 seconds; the overall animation length with the 0.1 sec factor included is listed under the "overall" column in the table below.
- The "Max" and "Min" functions respectively indicate taking the larger or smaller of the two values. The output of this computation is shown in the "actual delay" column in the table below.
"Hand-to-hand" weapons[]
Weapons that have the "hand-to-hand" attribute (which include all lethal low-tech skill weapons plus the baton) have three possible attack animations (Attack, Attack2, and Attack3), one of which is selected depending on a random roll at probabilities of 33%, 33%, and 34%, respectively.[3] For some weapons, the three attack animations may have different respective number of frames and/or animation rates (resulting in different attack rates depending on which specific animation is selected).
Weapons that have animations of different attributes are given three separate entries in the table below, and their "actual ROF" is computed based on the individual actual delays weighted by the above probability factors.[4]
Actual rates of fire[]
Weapon | ShotTime | Nominal ROF |
Attack Animation | Actual Delay |
Actual ROF | |||
---|---|---|---|---|---|---|---|---|
Frames | Rate | Fr./Rate | Overall | |||||
Low-Tech Skill Weapons (Lethal) | ||||||||
Combat Knife | 0.5 | — | 8 | 22 | 0.364 | 0.464 | 0.5 | 1.825 (avg) |
12 | 22 | 0.545 | 0.645 | 0.645 | ||||
8 | 20 | 0.4 | 0.5 | 0.5 | ||||
Crowbar | 0.5 | — | 12 | 28 | 0.545 | 0.645 | 0.645 | 1.809 (avg) |
12 | 28 | 0.545 | 0.645 | 0.645 | ||||
14 | 28 | 0.5 | 0.6 | 0.6 | ||||
Sword | 0.5 | — | 12 | 16 | 0.75 | 0.85 | 0.85 | 1.176 |
Dragon's Tooth Sword | 0.5 | — | 15 | 28 | 0.536 | 0.636 | 0.636 | 1.573 |
Throwing Knives | 0.2 | — | 7 | 22 | 0.318 | 0.418 | 0.418 | 2.391 |
Low-Tech Skill Weapons (Non-Lethal) | ||||||||
Baton | 0.5 | — | 12 | 17 | 0.706 | 0.806 | 0.806 | 1.359 (avg) |
12 | 17 | 0.706 | 0.806 | 0.806 | ||||
12 | 30 | 0.4 | 0.5 | 0.5 | ||||
Pepper GunA | 0.075 | 13.3 ✓ | 8 | 19 | 0.421 | — | 0.075 | 13.333 |
Riot Prod | 1.0 | 1.0 ✓ | 6 | 30 | 0.2 | 0.3 | 1.0 | 1.000 |
Pistol Skill Weapons | ||||||||
Pistol | 0.6 | 1.6 ✓ | 8 | 36 | 0.222 | 0.322 | 0.6 | 1.667 |
Stealth Pistol | 0.15 | 6.6 | 5 | 17 | 0.294 | 0.394 | 0.394 | 2.537 |
Mini-Crossbow | 0.8 (1.0) | 1.2 | 16 | 16 | 1.0 | 1.1 | 1.1 | 0.909 |
Rifle Skill Weapons | ||||||||
Assault Rifle (7.62mm)A | 0.1 | 1.0 ✓ | 8 | 18 | 0.444 | — | 0.1 | 10.000 |
Assault Rifle (20mm HE) | 0.1 (1.0) | — | N/A* | N/A* | N/A* | N/A* | 1.0 | 1.000 |
Sniper Rifle | 1.5 | 0.6 ✓ | 6 | 15 | 0.4 | 0.5 | 1.5 | 0.666 |
Assault ShotgunA | 0.7 | 1.4 | 4 | 10 | 0.4 | — | 0.4 | 2.500 |
Sawed-off Shotgun | 0.3 | 3.3 | 15 | 11 | 1.364 | 1.464 | 1.464 | 0.683 |
Heavy Skill Weapons | ||||||||
GEP Gun | 2.0 (1.0) | 0.5 | 5 | 14 | 0.371 | 0.471 | 1.0 | N/A** |
FlamethrowerA | 0.1 | 10.0 ✓ | 8 | 12 | 0.666 | — | 0.1 | 10.000 |
Plasma Rifle | 0.5 | 2.0 | 8 | 13 | 0.615 | 0.715 | 0.715 | 1.600 |
Legend[]
- A superscript "A" indicates that the weapon is automatic.
- An additional entry of "(1.0)" in the ShotTime column indicates that the weapon's default ShotTime is overridden with a value of "1.0" when loaded with a selectable projectile ammo.[5] In practice, this only affects the assault rifle when it is loaded with 20mm HE ammo. In the case of the Assault Rifle, the automatic property is disabled when it is loaded with the HE ammo.
- A dash (–) in the "nominal ROF" column indicates that no ROF is displayed in the in-game inventory interface.
- A checkmark (✓) indicates that the nominal ROF matches the actual ROF, notwithstanding decimal precision. This occurs when the actual ROF is governed by the ShotTime attribute and not by the animation attributes.
- *The firing of 20mm HE rounds does not use any animation.
- **The GEP Gun has a magazine size of 1 and must reload after each shot. Therefore, a rate of fire is not directly applicable to this weapon.
Notes[]
- Internally, the game script provides for the feature that the Combat Strength augmentation decreases the ShotTime of hand-to-hand weapons.[6] In practice, this benefit only affects the first attack animation of the Combat Knife. For every other attack animation, this benefit has no actual effect because their attack rates are limited by the animation time rather than by ShotTime.
- For the combat knife's first attack animation, tech 1 or higher Combat Strength reduces the actual delay to 0.464, increasing the overall average ROF to 1.865, which is an increase of about 2%.
See also[]
References[]
- ↑ In general, see simulated function PlaySelectiveFiring() and state NormalFire for the DeusExWeapon class.
- ↑ See simulated function PlaySelectiveFiring() for DeusExWeapon, which specifies "PlayAnim(anim,,0.1);" for non-automatic weapons.
- ↑ See simulated function PlaySelectiveFiring() for DeusExWeapon.
- ↑ For example, for the combat knife, the actual delay is calculated as: 1/((0.5)*.33+(12/22+.1)*.33+(8/20+.1)*.34) = 1.825, where the 0.5 part of the first term is the actual delay based on ShotTime.
- ↑ DeusExWeapon.LoadAmmo.
- ↑ See GetShotTime() for state NormalFire in DeusExWeapon, which specifies "ShotTime * mult" where the multiplier (mult) is 1 divided by the level values of AugCombat.
|