Damage

From HIVE
Revision as of 06:33, 23 November 2010 by Payne (talk | contribs) (StarCraft 2 -> StarCraft II + Internal Link)
Jump to navigation Jump to search

The Damage Effect (CEffectDamage) is the primary effect type used to apply damage to a target unit or units. As such, it is one of the most commonly-used effects in almost any map featuring combat, and even in maps that don't.

Using the Damage Effect

The most basic function of the Damage Effect is, unsurprisingly, to deal damage. Common uses for it include:

  • Dealing damage to a target.
  • Dealing area of effect damage around a target.
  • Instantly killing targets and hallucinations.

Because damage is such an integral feature of StarCraft II, the mechanics that govern how damage is dealt and handled are necessarily complex. In the most basic scenario, when a source applies a damage effect on a target, the target's life or shields is immediately reduced by an amount equal to the amount specified by the damage effect used. If the target's life drops below 0 as a result of the damage, it will die and the source will receive credit for the kill.

Damage Modifiers

In practice, many more factors come into play between the application of the damage effect and the reduction of the target's life or shields. The most important of these factors are those that act to modify the amount of damage dealt. These factors can be separated into two general categories: those that are directly controlled by the damage effect itself (internal modifiers) and those controlled by external objects (external modifiers).

  • Internal Modifiers
    • Target Attribute Bonuses
    • Shield Bonuses
    • Target Vital Bonuses
  • External Modifiers
    • Target Armor*
    • Behavior Damage Bonuses
    • Behavior Damage Responses
    • Global Minimum Damage Cap


*Damage Effects can determine how much of their damage is reduced per point of armor, so this modifier is partly internal as well.

Target Attribute Bonuses

Each Damage Effect may specify its own modifiers to apply to the amount of damage dealt based on the target's attribute flags. The damage effect may specify a flat adjustment and/or a multiplier for each attribute. These modifiers can be either positive (increase the amount of damage dealt) or negative (decrease the amount of damage dealt). If the target has its attribute flag enabled for a certain attribute, then the appropriate attribute modifier will be applied. If multiple attribute modifiers apply to a single target (for example when a damage effect that does +5 vs. Mechanical and -10 vs. Massive is applied on a target that has both the Mechanical and Massive flags enabled), the damage effect resolves the situation according to what is specified in its Total field.

Shield Bonuses

Shield bonus modifiers work much like attribute modifiers. The principal difference is that shield modifiers are applied when damage is dealt to shields rather than to life. Like attribute modifiers, there is both a flat modifier and a multiplier that may be adjusted independently.

Target Vital Bonuses

Target Vital Bonuses are bonuses to damage dependent on the target's vitals: life, shields, and energy. Two sets of vital bonuses are specified by Damage Effects. One set calculates bonuses based on the target's current vitals while the second set calculates bonuses based on the target's maximum vitals. For both sets, the bonus value that is specified in the Damage Effect for a certain vital will be multiplied by the target's appropriate (current or maximum) vital and the result will be added to the damage amount dealt. An example of an ability that uses target vital bonuses is the High Templar's Feedback ability, which deals damage based on the target's current energy.

Target Armor

A target's armor can reduce the amount of damage that is dealt to it by an amount proportional to the number of points of armor. The exact amount reduced per point of armor depends on the Armor Reduction field of the Damage Effect that is dealing the damage. In general, armor is one of the last modifiers to be applied to damage.

Behavior Damage Bonuses

A Damage Effect may have its damage modified by behaviors on its source unit. For more information on how these modifications work, visit the behaviors page.

Behavior Damage Responses

A Damage Effect may have its damage modified by damage responses specified by behaviors on either the source or the target unit. For more information on how damage responses work, visit the behaviors page.

Global Minimum Damage Cap

There exists a cap on the minimum amount of damage that must be dealt when a damage effect is applied. If, after all damage modifiers have been considered, the amount of damage dealt is reduced below this minimum value, the damage amount will automatically be increased to match the minimum value. The default minimum value is 0.5. This value can be changed in the Gameplay Data tab in the Data Editor.

Damage Types

There are four main damage types supported by the Data Editor:

  • Melee
  • Ranged
  • Spell
  • Splash

Each Damage Effect must specify exactly one type as the type of damage that it deals. These damage types have no effect on the damage dealt by a Damage Effect by themselves but will affect how other objects respond to the damage. For example, behaviors are capable of applying separate damage modifiers for each damage type. Only Damage Effects that deal the appropriate type of damage will be affected by those modifiers. The type of damage dealt by a Damage Effect is only dependent on the type it specifies and not on the ultimate source of the damage. For example, a melee weapon can deal ranged-type damage, a single-target ability can deal splash-type damage, etc.

Instant-Kill Effects

Damage Effects can be used to instantly kill targets, regardless of what damage modifiers would normally apply to the damage. To do this, the Kill flag must be enabled in the Damage Effect's Flags field. One example of a use for this would be to kill units with timed lives when their timers expire (e.g. Broodlings, Auto-Turrets).

A similar effect may be achieved only for targets that are Hallucinations by enabling the Kill Hallucination flag. If this flag is enabled (but not the Kill flag) the Damage Effect will instantly kill Hallucinations but not normal units.

Fields

The Damage effect contains many extra data fields that control how the damage is dealt and what effects it has on both the target and the source. The most important ones are listed below with descriptions of their purposes. The list is ordered by tab and in alphabetical order within each tab.

Combat Tab

Field

Amount

The amount of damage dealt per application of the effect.

Armor Reduction

The amount of damage reduced per point of armor (life armor if the damage is directed at the target's life and shield armor if the damage is directed at the target's shields) possessed by the target. Note that this field is specific to the damage effect for which it was set. For example, a damage effect with a base damage amount of 10 and an armor reduction of 2 will deal 8 damage to a target with 1 armor and 6 damage to a target with 2 armor, assuming nothing else affects the damage amount. The damage reduction from armor is calculated after any attribute or shield bonuses.

Attribute Bonus (Array)

The flat bonus applied to the amount of damage dealt based on the target's attribute flags. These bonuses are simply added to the damage amount when applicable; they do not scale with the amount of damage being dealt. For information on how multiple bonuses are applied when the target meets the conditions for more than one bonus, see the description on the Total field in the Effect tab. Damage modification from attribute bonuses are applied before armor reduction is considered.

Attribute Factor (Array)

The bonus factor applied to the amount of damage dealt based on the target's attribute flags. These bonuses are normalized such that a reported factor of 0 corresponds to an actual factor of 1. So for example, a bonus of 0.25 would increase damage by 25% (or equivalently, multiply the damage by 1.25), and a bonus of -25% would decrease damage by 25% (or equivalently, multiply the damage by 0.75). For information on how multiple bonuses are applied when the target meets the conditions for more than one bonus, see the description on the Total field in the Effect tab. Damage modification from attribute bonuses are applied before armor reduction is considered.

Shield Bonus

The flat bonus applied to the amount of damage dealt when the damage is directed at shields rather than life. These bonuses are simply added to the damage amount when applicable; they do not scale with the amount of damage being dealt. For information on how multiple bonuses are applied when the target meets the conditions for more than one bonus, see the description on the Total field in the Effect tab. Damage modification from shield bonuses are applied before armor reduction is considered.

Shield Factor

The bonus factor applied to the amount of damage dealt when the damage is directed at shields rather than life. This bonus is normalized such that a reported factor of 0 corresponds to an actual factor of 1. So for example, a bonus of 0.25 would increase damage by 25% (or equivalently, multiply the damage by 1.25), and a bonus of -25% would decrease damage by 25% (or equivalently, multiply the damage by 0.75). For information on how multiple bonuses are applied when the target meets the conditions for more than one bonus, see the description on the Total field in the Effect tab. Damage modification from shield bonuses are applied before armor reduction is considered.

Search Tab

Field

Area

The Area field is an array of different search areas, each one with its own set of properties. When Area contains at least one element, the damage applied by the effect will be dealt in an area of effect specified by the element(s) of Area. If a target lies within more than one search area, the damage effect will be applied to it multiple times. To prevent this from happening, add Outer to the Exclude field. The primary target of the damage effect may also be enumerated by search areas. To prevent this from happening, add Target to the Exclude field.

Arc

The arc (expressed in degrees) that this area sweeps out. The area sweeps out in the direction of a straight line running from the damage effect's source to the primary target. The line will also perfectly bisect the arc.

Bonus

The amount of bonus damage added to that which is dealt to targets enumerated in this area.

Fraction

The multiplier to apply to the damage dealt to targets enumerated in this area.

Maximum Count

The maximum number of targets to be enumerated in this area. Only targets that successfully pass all search and validation filters specified by this area and its parent damage effect count toward this limit. A value of -1 means no limit.

Radius

The radius out to which this area sweeps. The radius is calculated from the center point of the initial target of the damage effect. A target is enumerated by this area if any part of its collision sphere falls within the specified radius (and arc).

Radius Bonus

Unknown

Validator

The validator to apply to targets enumerated by this area. Targets must pass the validator, if one is specified, before they are damaged.

Exclude (Array)

A list of targets to exclude from all search areas listed in the Area field.

Effect

The parent effect from which to determine the target being excluded. If no effect is specified, the damage effect itself is used as the parent effect.

Value

The marker to use to determine the target being excluded. All markers are treated as being from the point of view of the parent effect specified in Exclude::Effect.

  • Caster: Excludes the caster of the parent effect.
  • Outer: Excludes any target already enumerated by another search area specified by the parent effect.
  • Source: Excludes the source of the parent effect.
  • Target: Excludes the target of the parent effect.
  • Unit Origin: Unknown

Include

A list of targets to forceably include in all search areas listed in the Area field.

Effect

The parent effect from which to determine the target being included. If no effect is specified, the damage effect itself is used as the parent effect.

Value

The marker to use to determine the target being included. All markers are treated as being from the point of view of the parent effect specified in Include::Effect.

  • Caster: Includes the caster of the parent effect.
  • Outer: Includes any target already enumerated by another search area specified by the parent effect.
  • Source: Includes the source of the parent effect.
  • Target: Includes the target of the parent effect.
  • Unit Origin: Unknown

Maximum Count

The maximum number of targets to be enumerated in all search areas. Only targets that successfully pass all search and validation filters specified by search areas and the parent damage effect count toward this limit. A value of -1 means no limit.

Minimum Count

The minimum number of targets this effect needs to enumerate. Only targets that successfully pass all search and validation filters specified by search areas and the parent damage effect count toward this quota. If this quota is not met, the damage effect will not be applied.

Minimum Count Error

The error message that is displayed if the effect cannot meet the minimum count quota.

Search Filter

The filters to apply to all targets enumerated by search areas. Targets must pass these filters before they are damaged.

Search Flags

Flags for enabling/disabling certain search properties.

  • Call For Help: ??
  • Extend By Unit Radius: Extends the search radius for all search areas by the unit radius of the damage effect's primary target.
  • Offset By Unit Radius: Offsets the origin of the search radius for all search areas by the unit radius of the damage effect's primary target.
  • Same Cliff Level: Restricts search areas to enumerating targets on the same cliff level as the damage effect's primary target.

Effect Tab

Target Tab

UI Tab