Missile weapon combat

From Caves of Qud Wiki
Revision as of 00:15, 30 September 2021 by Egocarib (talk | contribs) (Researched and substantially updated.)
Jump to navigation Jump to search

Missile Weapon Accuracy

Missile weapons calculate accuracy in a different way that melee combat. Because of the distance, there are multiple factors that play into how accurate a shot will be.

Angular Variance

Angular variance is the total number of degrees (°) that a projectile deviates from its intended trajectory. An angular variance of 0° represents a perfectly accurate shot that travels directly to the intended target, regardless of distance. The further a projectile travels, the more that its angular variance will affect the path and reduce the chance of hitting the target.

There is an element of randomness and several calculations at play which ultimately determine the angular variance of an individual missile weapon projectile. The simplified formula for angular variance is:[1]

AngularVariance = WeaponVariance ± AimVariance

The ± symbol indicates that AimVariance is randomly either added or subtracted from WeaponVariance.[2]

Weapon Variance

Example range of weapon variance (blast cannon)
Accuracy Numeric Value
Very High 0
High 1 to 4
Medium 5 to 9
Low 10 to 24
Very Low ≥25

In the equation above, WeaponVariance is the weapon variance roll, which depends on the weapon's intrinsic accuracy and is re-randomized for every projectile. In game, a missile weapon's accuracy is noted in its description as Very High, High, Medium, Low, or Very Low. For easier calculation, this wiki also includes the numeric accuracy value associated with each missile weapon in the infobox on that weapon's wiki page. Lower values are more accurate, with 0 representing a perfectly accurate weapon (for example, the electrobow).

Each time a projectile is fired, the weapon variance is randomly chosen from -WeaponAccuracy to +WeaponAccuracy. For example, the blast cannon, which has an accuracy of 25, will always contribute a random number from -25° and +25° to each of its projectiles, representing a total angular variance range of 50°.[3]

The only thing that can modify weapon variance are relic and extradimensional enhancements which reduce a weapon's base accuracy by 5-105-10 (Avg: 7.5). Weapon variance is not influenced by any other factors. It cannot be reduced by agility, skills, or tinkered weapon mods. For example, the blast cannon will always have, at minimum, a -25° to +25° spread, unless it is a relic or extradimensional blast cannon that had its base accuracy reduced.

Aim Variance

Each projectile fired is additionally affected by the wielder's aim variance. AimVariance begins with a standard 2d202-40 (Avg: 21) dice roll shared by all missile weapons. The value can then be modified by attributes, skills, weapon mods, and other factors, and it can sometimes be reduced to 0.

Bow and rifle shots using Sure Fire or Beacon Fire always have an aim variance of 0.

Otherwise, the general formula for aim variance is as follows.[3]

Abs(2d20-21) - AgilityMod - SkillMods - ItemMods - CyberneticMods

  1. Roll 2d202-40 (Avg: 21) and subtract 21 from the result.
  2. Take the absolute value of that result.
  3. Subtract the wielder's Agility modifier.
  4. Subtract all relevant skill modifiers for Steady Hands (-2), Steady Hand (-2), or Draw a Bead (-1).
  5. Subtract all relevant item mod bonuses. This includes scoped (-4) as well as potential hidden bonuses to aim variance from relic/extradimensional enhancements.
  6. Subtract 3 for each installed stabilizer arm locks implant

Aim variance cannot be negative - if the result from following these steps is negative, aim variance is set to 0.

Sprinting and Wildfire

In the case of a shot gone wild (which occurs 50% of the time when there are two or more enemies immediately adjacent to the shooter), or if the player is sprinting while firing a missile weapon, an additional random angle of up to 23° in either direction (-23° to +23°) is randomly added to the calculated angular variance of the projectile. This can stack if the shooter is sprinting while they fire a wild shot.[3]

The firing-while-sprinting penalty is negated in either of the following scenarios:[3]

Fixed Spread Projectiles

After calculating the angular variance of a projectile, the game also adds any additional fixed spread projectiles. These include:

  • A heavy weapon Sweep, which will fire 5 projectiles in place of the usual single projectile, with fixed offsets from the calculated angular variance (-45°, -22°, 0°, 22°, and 45°)[4]
  • A weapon with the beamsplitter mod, which will fire 3 projectiles with fixed offsets from the calculated angular variance (-9°, 0°, and 9°)[3][5]

Projectile Hit and Damage

This article may need cleanup to meet quality standards.
Please help improve this page by editing it.

Reason: "This section could use review and improvement."

This article may need cleanup to meet quality standards.
Please help improve this page by editing it.

Reason: "This section could use review and improvement."

When the projectile actually hits the target, regular damage calculations occur. However, there is a -5 DV penalty. If the target has Swift Reflexes, the penalty will not be inflicted. If the creature is immobile, the DV is set to a flat -100.

Considerations

  • Because the scoped mod affects only aim variance (not weapon variance), it has limited usefulness to characters who already have very high Agility and supporting skills/cybernetics. If aim variance has already been reduced to 0 by other factors, the scoped mod will have no functional effect.

References

This information is reliable as of patch 2.0.201.114.
  1. XRL.World.Parts.MissileWeapon, method CalculateBulletTrajectory
  2. XRL.World.Parts.MissileWeapon, method FireEvent – Technically, the AimVariance is subtracted 66% of the time - whenever the 2d20 dice roll is less than 25 - and added the remaining 34% of the time. Functionally, this means that projectiles are slightly more likely to have bad misses in one direction than the other.
  3. 3.0 3.1 3.2 3.3 3.4 XRL.World.Parts.MissileWeapon, method FireEvent
  4. XRL.World.Parts.Combat, method FireEvent, in the CommandFireMissileWeapon case
  5. XRL.World.Parts.ModBeamsplitter