SimulationCraft
SimulationCraft is a tool to explore combat mechanics in the popular MMO RPG World of Warcraft (tm).
spell_data_t Struct Reference
Inheritance diagram for spell_data_t:
spell_data_nil_t spell_data_not_found_t

Public Member Functions

unsigned equipped_class () const
 
unsigned equipped_invtype_mask () const
 
unsigned equipped_subclass_mask () const
 
unsigned category () const
 
unsigned dmg_class () const
 
unsigned class_mask () const
 
timespan_t cooldown () const
 
timespan_t category_cooldown () const
 
unsigned charges () const
 
timespan_t charge_cooldown () const
 
timespan_t duration () const
 
double extra_coeff () const
 
timespan_t gcd () const
 
unsigned id () const
 
int initial_stacks () const
 
uint64_t race_mask () const
 
uint32_t level () const
 
const char * name_cstr () const
 
uint32_t max_level () const
 
unsigned req_max_level () const
 
uint32_t max_stacks () const
 
double missile_speed () const
 
double missile_delay () const
 
double missile_min_duration () const
 
double min_range () const
 
double max_range () const
 
double proc_chance () const
 
unsigned proc_flags () const
 
timespan_t internal_cooldown () const
 
double real_ppm () const
 
uint32_t school_mask () const
 
unsigned stance_mask () const
 
unsigned mechanic () const
 
int max_targets () const
 
unsigned power_id () const
 
unsigned essence_id () const
 
size_t effect_count () const
 
size_t power_count () const
 
size_t driver_count () const
 
size_t label_count () const
 
bool found () const
 
school_e get_school_type () const
 
bool is_level (uint32_t level) const
 
bool in_range (double range) const
 
bool is_race (race_e r) const
 
bool has_scaling_effects () const
 
bool ok () const
 
const spelleffect_data_teffectN (size_t idx) const
 
const spellpower_data_tpowerN (size_t idx) const
 
short labelN (size_t idx) const
 
const spellpower_data_tpowerN (power_e pt) const
 
util::span< const spelleffect_data_teffects () const
 
util::span< const spellpower_data_tpowers () const
 
util::span< const spelllabel_data_tlabels () const
 
util::span< const spell_data_t *const > drivers () const
 
bool is_class (player_e c) const
 
unsigned max_scaling_level () const
 
timespan_t cast_time () const
 
double cost (power_e pt) const
 
uint32_t effect_id (uint32_t effect_num) const
 
bool flags (spell_attribute attr) const
 
bool class_flag (unsigned flag) const
 
unsigned attribute (unsigned idx) const
 
unsigned class_flags (unsigned idx) const
 
unsigned class_family () const
 
bool override_field (util::string_view field, double value)
 
double get_field (util::string_view field) const
 
bool valid_item_enchantment (inventory_type inv_type) const
 
std::string to_str () const
 
bool affected_by_all (const spelleffect_data_t &effect) const
 
bool affected_by_category (const spelleffect_data_t &effect) const
 
bool affected_by_category (int category) const
 
bool affected_by_label (const spelleffect_data_t &effect) const
 
bool affected_by_label (int label) const
 
bool affected_by (const spell_data_t *) const
 
bool affected_by (const spelleffect_data_t *) const
 
bool affected_by (const spelleffect_data_t &) const
 

Static Public Member Functions

static const spell_data_tnil ()
 
static const spell_data_tnot_found ()
 
static const spell_data_tfind (util::string_view name, bool ptr=false)
 
static const spell_data_tfind (unsigned id, bool ptr=false)
 
static const spell_data_tfind (unsigned id, util::string_view confirmation, bool ptr=false)
 
static util::span< const spell_data_tdata (bool ptr=false)
 
static util::span< const hotfix::client_hotfix_entry_thotfixes (const spell_data_t &, bool ptr)
 
static void link (bool ptr)
 

Public Attributes

const char * _name
 
unsigned _id
 
unsigned _school
 
double _prj_speed
 
double _prj_delay
 
double _prj_min_duration
 
uint64_t _race_mask
 
unsigned _class_mask
 
int _max_scaling_level
 
unsigned _spell_level
 
unsigned _max_level
 
unsigned _req_max_level
 
double _min_range
 
double _max_range
 
unsigned _cooldown
 
unsigned _gcd
 
unsigned _category_cooldown
 
unsigned _charges
 
unsigned _charge_cooldown
 
unsigned _category
 
unsigned _dmg_class
 
int _max_targets
 
double _duration
 
unsigned _max_stack
 
unsigned _proc_chance
 
int _proc_charges
 
unsigned _proc_flags
 
unsigned _internal_cooldown
 
double _rppm
 
unsigned _equipped_class
 
unsigned _equipped_invtype_mask
 
unsigned _equipped_subclass_mask
 
int _cast_time
 
unsigned _attributes [NUM_SPELL_FLAGS]
 
unsigned _class_flags [NUM_CLASS_FAMILY_FLAGS]
 
unsigned _class_flags_family
 
unsigned _stance_mask
 
unsigned _mechanic
 
unsigned _power_id
 
unsigned _essence_id
 
const spelleffect_data_t_effects
 
const spellpower_data_t_power
 
const spell_data_t *const * _driver
 
const spelllabel_data_t_labels
 
uint8_t _effects_count
 
uint8_t _power_count
 
uint8_t _driver_count
 
uint8_t _labels_count