-
Notifications
You must be signed in to change notification settings - Fork 0
Spell Data
Niphyr edited this page Oct 2, 2020
·
3 revisions
Generated file is here
https://github.com/simulationcraft/simc/blob/shadowlands/engine/dbc/generated/sc_spell_data.inc
Contents
- __spell_data is an array of Spell data
- __spelleffect_data is an array of Spell effects and their properties
static spell_data_t __spell_data[16945] = {
static spelleffect_data_t __spelleffect_data[24845] = {Other relevant values:
constexpr unsigned NUM_SPELL_FLAGS = 15;
constexpr unsigned NUM_CLASS_FAMILY_FLAGS = 4;Structure of spell_data_t :
struct spell_data_t
{
const char* _name; // Spell name from Spell.dbc stringblock (enGB)
unsigned _id; // Spell ID in dbc
unsigned _school; // Spell school mask
double _prj_speed; // Projectile Speed
uint64_t _race_mask; // Racial mask for the spell
unsigned _class_mask; // Class mask for spell
int _scaling_type; // Array index for gtSpellScaling.dbc. -1 means the first non-class-specific sub array, and so on, 0 disabled
int _max_scaling_level; // Max scaling level(?), 0 == no restrictions, otherwise min( player_level, max_scaling_level )
// SpellLevels.dbc
unsigned _spell_level; // Spell learned on level. NOTE: Only accurate for "class abilities"
unsigned _max_level; // Maximum level for scaling
unsigned _req_max_level;
// SpellRange.dbc
double _min_range; // Minimum range in yards
double _max_range; // Maximum range in yards
// SpellCooldown.dbc
unsigned _cooldown; // Cooldown in milliseconds
unsigned _gcd; // GCD in milliseconds
unsigned _category_cooldown; // Category cooldown in milliseconds
// SpellCategory.dbc
unsigned _charges; // Number of charges
unsigned _charge_cooldown; // Cooldown duration of charges
// SpellCategories.dbc
unsigned _category; // Spell category (for shared cooldowns, effects?)
unsigned _dmg_class; // Classification for the spell
int _max_targets; // Max number of targets
// SpellDuration.dbc
double _duration; // Spell duration in milliseconds
// SpellAuraOptions.dbc
unsigned _max_stack; // Maximum stack size for spell
unsigned _proc_chance; // Spell proc chance in percent
int _proc_charges; // Per proc charge amount
unsigned _proc_flags; // Proc flags
unsigned _internal_cooldown; // ICD
double _rppm; // Base real procs per minute
// SpellEquippedItems.dbc
unsigned _equipped_class;
unsigned _equipped_invtype_mask;
unsigned _equipped_subclass_mask;
// SpellScaling.dbc
int _cast_time; // Casting time in milliseconds
// Spell.dbc flags
unsigned _attributes[NUM_SPELL_FLAGS]; // SpellMisc.dbc "flags"
unsigned _class_flags[NUM_CLASS_FAMILY_FLAGS]; // SpellClassOptions.dbc flags
unsigned _class_flags_family; // SpellClassOptions.dbc spell family
// SpellShapeshift.db2
unsigned _stance_mask; // Stance mask (used only for druid form restrictions?)
// SpellMechanic.db2
unsigned _mechanic;
// Azerite stuff
unsigned _power_id; // Azerite power id
unsigned _essence_id; // Azerite essence id
}Structure of spelleffect_data_t :
struct spelleffect_data_t
{
unsigned _id; // Effect id
unsigned _spell_id; // Spell this effect belongs to
unsigned _index; // Effect index for the spell
unsigned _type; // Effect type
unsigned _subtype; // Effect sub-type
// SpellScaling.dbc
double _m_coeff; // Effect average spell scaling multiplier
double _m_delta; // Effect delta spell scaling multiplier
double _m_unk; // Unused effect scaling multiplier
//
double _sp_coeff; // Effect coefficient
double _ap_coeff; // Effect attack power coefficient
double _amplitude; // Effect amplitude (e.g., tick time)
// SpellRadius.dbc
double _radius; // Minimum spell radius
double _radius_max; // Maximum spell radius
//
double _base_value; // Effect value
int _misc_value; // Effect miscellaneous value
int _misc_value_2; // Effect miscellaneous value 2
unsigned _class_flags[NUM_CLASS_FAMILY_FLAGS]; // Class family flags
unsigned _trigger_spell_id;// Effect triggers this spell id
double _m_chain; // Effect chain multiplier
double _pp_combo_points; // Effect points per combo points
double _real_ppl; // Effect real points per level
unsigned _mechanic; // Effect Mechanic
int _chain_target; // Number of targets (for chained spells)
unsigned _targeting_1; // Targeting related field 1
unsigned _targeting_2; // Targeting related field 2
double _m_value; // Misc multiplier used for some spells(?)
double _pvp_coeff; // PvP Coefficient
}