Spells

From wowdev
Jump to: navigation, search

Intro

Spells are arguably one of the most intricate systems in WoW, this page will hopefully explain some of the basics as well as going into how to parse tooltips or how to do some of the number crunching.

Relevant DB2s

Many DB2s are used when it comes to spell data, most are listed below with a small explanation on what they're for.

Table WoW.tools link Description
Spell Browse Hopefully exhaustive list of all spells in the game, has partial (aura) descriptions for tooltips
SpellAuraOptions Browse
SpellAuraRestrictions Browse
SpellCastingRequirements Browse Various requirements for being able to cast a spell (e.g. being in a specific area)
SpellCastTimes Browse Casting times for spells in milliseconds, linked to spellIDs from SpellMisc
SpellCategories Browse
SpellCategory Browse
SpellClassOptions Browse
SpellCooldowns Browse
SpellDescriptionVariables Browse
SpellDuration Browse
SpellEffect Browse
SpellEffectAutoDescription Browse
SpellInterrupts Browse
SpellItemEnchantment Browse
SpellLabel Browse
SpellLearnSpell Browse
SpellMisc Browse
SpellName Browse Spell names
SpellPower Browse
SpellProcsPerMinute Browse
SpellProcsPerMinuteMod Browse
SpellRadius Browse
SpellRange Browse
SpellScaling Browse
SpellShapeShift Browse
SpellTargetRestrictions Browse
SpellXDescriptionVariables Browse


Intro

SpellIDs

Spells in WoW are referred to by a ID for that spell throughout various of the above DBs. For some DBs such as SpellName the ID field is the Spell ID.

Spell effects

Each spell can have multiple effects.

Spell descriptions

When hovering over spells in-game or on a fansite, it usually shows a tooltip with some information for the spell in it. One of the things that can be in a tooltip is a description.

This description mainly comes from the Spell DB's Description_lang field. Spell descriptions can contain various identifiers that require you to look up, calculate or otherwise manipulate information in the description.

Identifiers

Identifiers are prefixed by a $, indicating that everything afterwards (up to a certain point, different per identifier type) is part of that identifier.

Known identifiers

Some identifiers require different handling based on their casing, others are case insensitive. Below list is missing a lot, still.

Identifier Description
? Conditional
A SpellEffect.EffectRadiusIndex[0] pointing to SpellRadius::ID, fallback to EffectRadiusIndex[1] if 0
a SpellEffect.EffectRadiusIndex[1] pointing to SpellRadius::ID, fallback to EffectRadiusIndex[0] if 0
b SpellEffect.EffectPointsPerResource for spell 14161. Broken in all other spells.
B See above.
C Specialization conditional 1 = 1st spec, etc
c TODO: Investigate
D SpellMisc.DurationIndex pointing to SpellDuration::ID
d SpellMisc.DurationIndex pointing to SpellDuration::ID
E SpellEffect.EffectAmplitude
e SpellEffect.EffectAmplitude
f SpellEffect.EffectChainAmplitude (expression only)
F SpellEffect.EffectChainAmplitude (expression only)
g Gender conditional
G Gender conditional
h Proc chance (SpellAuraOptions.ProcChance)
H Proc chance (SpellAuraOptions.ProcChance)
i Max Targets (SpellTargetRestrictions.MaxTargets)
I Max Targets (SpellTargetRestrictions.MaxTargets)
l Plurality
L Plurality
m TODO: Investigate
M TODO: Investigate
n SpellAuraOptions.ProcCharges
N SpellAuraOptions.ProcCharges
o TODO: Investigate
O TODO: Investigate
p SpellEffect.EffectMiscValue
q TODO: Investigate, broken in only spell it is used: 39794
r SpellMisc.RangeIndex pointing to SpellRange::ID MaxRange
R SpellMisc.RangeIndex pointing to SpellRange::ID MinRange
s SpellEffect.EffectBasePointsF/EffectMiscValue depending on various things
S SpellEffect.EffectBasePointsF/EffectMiscValue depending on various things
t Aura period
T Aura period
u Max stacks
U Max stacks
v Max target level (SpellTargetRestrictions.MaxTargetLevel)
V Max target level (SpellTargetRestrictions.MaxTargetLevel)
w Another EffectBasePoints?? TODO: Investigate 118078
x SpellEffect.EffectChainTargets
X SpellEffect.EffectChainTargets
y Not parsed in-game?
z Hearthstone location

Calculations

Instance spells

Some spells used in instances can scale differently based on the current difficulty.

TODO

   SpellEffect.Effect = SCHOOL_DAMAGE (2) => CreatureSpellDamage 
   ExpectedStat for lvl 120 = CreatureSpellDamage = 76940.51
   Ny'alotha => Map::ID 2217
   MapDifficulty filter on above Map::ID
   Take all results for specified mod column and multiple them together
   Multiply CreatureSpellDamage with the result of above calculation
   Multiply that by EffectBasePointsF / 100.0


Player spells

TODO

Visuals

TODO

SpellVisual SpellVisualAnim SpellVisualAnimName SpellVisualColorEffect SpellVisualEffectName SpellVisualEvent SpellVisualKit SpellVisualKitAreaModel SpellVisualKitEffect SpellVisualKitModelAttach SpellVisualMissile SpellVisualPrecastTransitions SpellVisualScreenEffect SpellXSpellVisual