Transcendence Wiki

Documenting the Universe.

User Tools

Site Tools


modding:xml:damage_descriptor

A damage descriptor string is used to specify a type and amount of damage. It also includes modifiers for special damage (such as radioactive contamination). A damage string consists of a single damage specifier plus zero or more special damage modifiers. Each element is separated by semi-colons. Damage descriptor strings are generally used in weapon definitions. For example:

damage="blast:5d6; radiation1; momentum4; WMD4"

Damage Specifier

A damage specifier consists of a damage type followed by a colon and then a dice range. The damage type can be one of the following strings:

  • laser
  • kinetic
  • particle
  • blast
  • ion
  • thermo
  • positron
  • plasma
  • antimatter
  • nano
  • graviton
  • singularity
  • darkAcid
  • darkSteel
  • darkLightning
  • darkFire
  • generic

For example (surrounding quotes are omitted):

laser:1d4

The above specifies 1-4 points of laser damage.

Special Damage Modifiers

A special damage modifier consists of a string immediately followed by a number from 1 to 7. For example, the modifier “radiation1” specifies that the target will be hit with level 1 radiation.

The following special damage modifiers are defined:

armor:[1-25] This modifier adjusts the damage done to armor by a certain percentage depending on the difference between the modifier level and the armor level. For example, if “armor:10” damage hits a level 7 armor the difference is +3 levels. Conversely, if “armor:2” hits a level 5 armor, the difference is -3 levels. Consult the following table to determine the damage adjustment:

  • ⇐ -4 levels = 100% damage
  • -3 levels = 150% damage
  • -2 levels = 200% damage
  • -1 level = 250% damage
  • same level = 300% damage
  • +1 level = 350% damage
  • +2 levels = 400% damage
  • +3 levels = 450% damage
  • +4 levels = 500% damage
  • Damage = Damage * (4 + Modifier - Armor) / 2

blinding:[1-7] This modifier does not affect shields, but if it strikes a target's armor, it blinds its short-range scanner. The chance that the target will be blinded depends on the level of blinding specified in the modifier:

  • 1 = 4%
  • 2 = 16%
  • 3 = 36%
  • 4 = 64%
  • 5 = 100%
  • 6 = 144%
  • 7 = 196%
  • Chance (%) = 4 * Blinding² * BlindingDamageAdj / 100
  • Time (sec) = Damage / 2
  • Damage = 0

The value above is modified by the armor's blindingDamageAdj attribute (e.g., if blindingDamageAdj=“50” then the above values are multiplied by 50/100). Armor of level 6 and above is intrinsically immune to blinding damage (unless otherwise specified by a blindingDamageAdj attribute).

If a target is blinded, the blindness will last for a number of seconds (real time) equal to half the damage.

Any weapon with the blinding modifier is incapable of doing damage to the target armor regardless of its damage value.

The blinding damage modifier is generally associated with the ion damage type.

device:[1-7] If damage with this modifier strikes a target's armor, it has a chance of damaging a device on the target. The device is chosen randomly and it must be installed and damageable. The damage taken by the armor is also cut by half. To determine the chance of damage, use the table under blinding damage and adjust it by the deviceDamageAdj attribute on the armor. Armor of level 11 and above is intrinsically immune to device damage. Like blinding damage, this damage modifier is generally associated with the ion damage type.

  • Chance (%) = 4 * DeviceDamage² * DeviceDamageAdj / 100
  • Damage = Damage / 2

deviceDisrupt:[1-7] Device disrupt damage is similar to device damage above except the effect is not permanent and the damage dealt is not halved. The affected device is disrupted for a number of seconds equal to twice the damage. The device is chosen randomly and it must be installed and damageable. Additionally, if the device is disabled or damaged, then the attack will have no extra effect. If the device has been disrupted for more than 60 seconds, then it will be damaged the next time it is hit.

  • Chance (%) = 4 * DeviceDisrupt * DeviceDisrupt * DeviceDamageAdj / 100
  • Time (sec) = 2 * Damage

disintegration:[1-7] Disintegration is a fearsome effect that instantly destroys an unshielded target hit by it. Certain kinds of armor are immune to disintegration, but beyond that there is no chance of avoiding its effect. As of version 1.07 there are no levels in the effect–that is, “disintegration1” is the same as “disintegration7”. For future compatibility, always use “disintegration1”.

EMP:[1-7] The EMP damage modifier causes a target to lose control if it hits the target's armor. To determine the chance that a target will be affected, use the table under blinding damage and adjust it by the EMPDamageAdj attribute on the armor. Armor of level 9 and above is intrinsically immune to EMP damage, unless otherwise specified. The EMP effect lasts for a number of seconds equal to half the damage.

  • Chance (%) = 4 * EMP² * EMPDamageAdj / 100
  • Time (sec) = Damage / 2
  • Damage = 0

Like blinding damage, this modifier is incapable of doing damage to the target armor regardless of its damage value and is generally associated with the ion damage type.

fuel:[1-7]

mining:[1-7] This modifier is used for mining devices. The chance that useable ore will be produced is depends on the mining level of the modifier and on the mining difficulty of the target. The base probability is determined from the modifier:

  • 1 = 4%
  • 2 = 10%
  • 3 = 20%
  • 4 = 34%
  • 5 = 52%
  • 6 = 74%
  • 7 = 100%
  • Chance (%) = 2 * Mining² + 2

When an object is hit with this effect, the <OnMining> event will be fired.

momentum:[1-7] This modifier imparts momentum on to any object it hits. The momentum imparted is proportional to the square of the modifier level.

radiation:[1-7] When an unshielded target is hit with this effect, the target is contaminated by radiation. Armor of level 7 and above is intrinsically immune to radiation. Radiation level does not make a difference. For future compatibility, always use “radiation1” for this effect.

sensor

shatter:[1-7] This effect destroys an unshielded target massing less than a certain value. The mass value depends on the modifier level:

  • 1 = <50 tons
  • 2 = <250 tons
  • 3 = <1,250 tons
  • 4 = <6,250 tons
  • 5 = <31,250 tons
  • 6 = <156,250 tons
  • 7 = <781,250 tons

shield:[1-25] This modifier adjusts the damage done to shields by a certain percentage depending on the difference between the modifier level and the shield level. For example, if “shield:5” damage hits a level 3 shield the difference is +2 levels. Conversely, if “shield:3” hits a level 5 shield, the difference is -2 levels. Consult the following table to determine the damage adjustment:

  • ⇐ -4 levels = 100% damage
  • -3 levels = 150% damage
  • -2 levels = 200% damage
  • -1 level = 250% damage
  • same level = 300% damage
  • +1 level = 350% damage
  • +2 levels = 400% damage
  • +3 levels = 450% damage
  • +4 levels = 500% damage
  • Damage = Damage * (4 + Modifier - Shield) / 2

Note: In versions prior to 1.07 the calculation of extra damage was different. It used a formula of 1+1)2)3) This allows damage to skip the shields and damage the armor directly. The chance of shield penetration depends on the remaining hp of the shields, the level difference between the weapon and the shields, and an adjustment based on the level of shieldPenetrate.

  • 1 = 4%
  • 2 = 10%
  • 3 = 20%
  • 4 = 34%
  • 5 = 52%
  • 6 = 74%
  • 7 = 100%
  • Chance = 2 * shieldPenetrate2 + 2

WMD[1-7] Normally, weapons do not do very much damage to stations, because a weapon's area of effect is small compared to the size of a station. The WMD modifier specifies the percentage of the weapon's damage that will affect the station:

  • Default = 10%
  • 1 = 25%
  • 2 = 32%
  • 3 = 40%
  • 4 = 50%
  • 5 = 63%
  • 6 = 80%
  • 7 = 100%

wormhole

See Also

1)
n*n)/2) to compute the effective level of the damage modifier. In 1.07 and above the damage modifier corresponds directly to a shield level. Any extension marked as 1.1 or above will use the new method; older extensions will use the backward-compatible calculation. shieldPenetrate:[1-7]((https://github.com/kronosaur/Mammoth/blob/d698e4f2d812dcf91710615d9175285538f930c5/TSE/Damage.cpp#L98
modding/xml/damage_descriptor.txt · Last modified: 2018/07/18 06:42 by 0xabcdef