Clone this wiki locally
One of the sources of confusion in simc for someone who is newer to coding, or even to coding veterans, is that when adding flags to a proc/ability/action, there's not a lot of documentation about what the flag itself does.
This is not (currently) an exhaustive list, but with time we will try and make sure it includes every flag in code.
Eventually someone will organize this. =P
Work in Progress: Unify all this with in-code documentation and creating doxygen docs. See http://simulationcraft.org/doc/structaction__t.html#pub-attribs
These flags determine what an ability does during a simulation.
- school - enum - default: SCHOOL_NONE - What type of damage this spell does.
school = SCHOOL_PHYSICAL;
- resource_current - enum - What resource does this ability use.
resource_current = RESOURCE_RAGE;
- aoe - int - The amount of targets that an ability impacts on. -1 will hit all targets.
aoe = 2; // Ability deals damage to 2 targets.
- may_multistrike - int - If the ability can proc multistrikes. 0 disables multistrikes, 1 enables, and -1 enables/disables multistrikes based on if the ability can crit or not.
may_multistrike = 1;
dual - bool - If set to true, this action will not be counted toward total amount of executes in reporting. Useful for abilities with parent/children attacks.
callbacks - bool - enables/disables proc callback system on the action.
special - bool - Whether or not the spell uses the yellow attack hit table.
channeled - bool - Tells the sim to not perform any other actions, as the ability is channeled.
background - bool - Enables/Disables direct execution of the ability in an action list. Abilities with background = true can still be called upon by other actions, example being deep wounds and how it is activated by devastate.
use_off_gcd - bool - Only useful for warrior/tanks at the moment, forces the sim to check conditions every 0.1 seconds to see if these abilities should be performed. Slows simulation down significantly.
quiet - bool - Disables/enables reporting of this action.
direct_tick, direct_tick_callbacks Not used in WoD (?)
periodic_hit - bool -
repeating - bool - Used for abilities that repeat themselves without user interaction, only used on autoattacks.
harmful - bool - Simplified: Will the ability pull the boss if used. Also determines whether ability can be used precombat without counting towards the 1 harmful spell limit
proc - bool - Whether or not this ability is a proc.
initialized - bool -
may_hit, may_miss, may_dodge, may_parry, may_glance, may_block, may_crush, may_crit, tick_may_crit - bool - Self explanatory.
tick_zero - bool - Whether or not the ability/dot ticks immediately on usage.
hasted_ticks - bool - Whether or not ticks scale with haste, generally only used for bleeds that do not scale with haste, or with ability drivers that deal damage every x number of seconds.
split_aoe_damage - bool - Splits damage evenly on aoe.
base_add_multiplier - double - Used with abilities that decay in damage with each target. Example: Revenge, main target takes 100% damage, 2nd target takes 66%, 3rd target 33%.
dot_behavior - Behavior of dot. Acceptable inputs are DOT_CLIP, DOT_REFRESH, and DOT_EXTEND.
ability_lag, ability_lag_stddev - timespan_t - Not used anymore. (??)
rp_gain - double - Deathknight specific, how much runic power is gained.
min_gcd - timespan_t - The minimum gcd triggered no matter the haste.
trigger_gcd - timespan_t - Length of gcd triggered when used.
range - double - Distance that the ability may be used from.
attack_power_mod.direct, attack_power_mod.tick - double - Attack power scaling of the ability.
spell_power_mod.direct, spell_power_mod.tick - double - Spell power scaling of the ability.
base_execute_time - timespan_t - Amount of time the ability uses to execute before modifiers.
base_tick_time - timespan_t - Amount of time the ability uses between ticks.
dot_duration - timespan_t - Default duration of dot.
base_costs - double - Cost of using the ability
base_costs[RESOURCE_RAGE] = 20; // Uses 20 rage on execute.
- costs_per_second - double - Cost of using ability per second
costs_per_second[RESOURCE_RUNIC_POWER] = 10; // Uses 10 runic power per second.
weapon_multiplier - double - Weapon damage for the ability.
cooldown - Used to manipulate cooldown duration and charges.
cooldown -> duration = timespan_t::from_seconds( 20 ); //Ability has a cooldown of 20 seconds. cooldown -> charges = 3; // Ability has 3 charges.
movement_directionality = MOVEMENT_OMNI; // Can move in any direction, ex: Heroic Leap, Blink. Generally set movement skills to this. movement_directionality = MOVEMENT_TOWARDS; // Can only be used towards enemy target. ex: Charge movement_directionality = MOVEMENT_AWAY; // Can only be used away from target. Ex: ????
- base_teleport_distance - double - Maximum distance that the ability can travel. Used on abilities that instantly move you, or nearly instantly move you to a location.
base_teleport_distance = 40;