目录
法术属性(SpellAttr0 - SpellAttr15)
法术目标(ImplicitTargetA - ImplicitTargetB)
法术打断标识 | 法术光环打断标识(SpellInterruptFlags | SpellAuraInterruptFlags)
数据结构
- 法术大类:SpellCategory
- 法术小类:SpellCategories
- 法术施放需求:SpellCastingRequirements
- 法术焦点对象:SpellFocusObject
- 法术效果:SpellEffect
- 法术施放时间(ID 为索引值):SpellCastTimes
- 法术冷却时间:SpellCooldowns
- 法术持续时间:SpellDuration
- 法术驱散类型:SpellDispelType
- 法术机制类型:SpellMechanic
- 法术生效半径(ID 为索引值):SpellRadius
- 法术生效范围,以法术为中心
- 法术施放半径(ID 为索引值):SpellRange
- 法术施放距离,以角色为中心
- 法术触发:SpellAuraOptions
-
法术光环限制:SpellAuraRestrictions
-
法术目标限制:SpellTargetRestrictions
-
法术打断(法术被打断的情形):SpellInterrupts
- 法术制造合成相关信息:SpellReagents
附录
-
法术类型(School)
// ..\src\server\game\Miscellaneous\SharedDefines.h
enum SpellSchools : uint16
{
SPELL_SCHOOL_NORMAL = 0, // TITLE Physical
SPELL_SCHOOL_HOLY = 1, // TITLE Holy
SPELL_SCHOOL_FIRE = 2, // TITLE Fire
SPELL_SCHOOL_NATURE = 3, // TITLE Nature
SPELL_SCHOOL_FROST = 4, // TITLE Frost
SPELL_SCHOOL_SHADOW = 5, // TITLE Shadow
SPELL_SCHOOL_ARCANE = 6, // TITLE Arcane
MAX_SPELL_SCHOOL = 7 // SKIP
};
enum SpellSchoolMask : uint32
{
SPELL_SCHOOL_MASK_NONE = 0x00, // not exist
SPELL_SCHOOL_MASK_NORMAL = (1 << SPELL_SCHOOL_NORMAL), // PHYSICAL (Armor)
SPELL_SCHOOL_MASK_HOLY = (1 << SPELL_SCHOOL_HOLY),
SPELL_SCHOOL_MASK_FIRE = (1 << SPELL_SCHOOL_FIRE),
SPELL_SCHOOL_MASK_NATURE = (1 << SPELL_SCHOOL_NATURE),
SPELL_SCHOOL_MASK_FROST = (1 << SPELL_SCHOOL_FROST),
SPELL_SCHOOL_MASK_SHADOW = (1 << SPELL_SCHOOL_SHADOW),
SPELL_SCHOOL_MASK_ARCANE = (1 << SPELL_SCHOOL_ARCANE),
SPELL_SCHOOL_MASK_SPELL = (SPELL_SCHOOL_MASK_FIRE |
SPELL_SCHOOL_MASK_NATURE | SPELL_SCHOOL_MASK_FROST |
SPELL_SCHOOL_MASK_SHADOW | SPELL_SCHOOL_MASK_ARCANE),
SPELL_SCHOOL_MASK_MAGIC = (SPELL_SCHOOL_MASK_HOLY | SPELL_SCHOOL_MASK_SPELL),
SPELL_SCHOOL_MASK_ALL = (SPELL_SCHOOL_MASK_NORMAL | SPELL_SCHOOL_MASK_MAGIC)
};
-
法术属性(SpellAttr0 - SpellAttr15)
// ..\src\server\game\Miscellaneous\SharedDefines.h
enum SpellAttr0 : uint32
{
SPELL_ATTR0_PROC_FAILURE_BURNS_CHARGE = 0x00000001, // TITLE Proc Failure Burns Charge
SPELL_ATTR0_USES_RANGED_SLOT = 0x00000002, // TITLE Uses Ranged Slot DESCRIPTION Use ammo, ranged attack range modifiers, ranged haste, etc.
SPELL_ATTR0_ON_NEXT_SWING_NO_DAMAGE = 0x00000004, // TITLE On Next Swing (No Damage) DESCRIPTION Both "on next swing" attributes have identical handling in server & client
SPELL_ATTR0_DO_NOT_LOG_IMMUNE_MISSES = 0x00000008, // TITLE Do Not Log Immune Misses (client only)
SPELL_ATTR0_IS_ABILITY = 0x00000010, // TITLE Is Ability DESCRIPTION Cannot be reflected, not affected by cast speed modifiers, etc.
SPELL_ATTR0_IS_TRADESKILL = 0x00000020, // TITLE Is Tradeskill DESCRIPTION Displayed in recipe list, not affected by cast speed modifiers
SPELL_ATTR0_PASSIVE = 0x00000040, // TITLE Passive DESCRIPTION Spell is automatically cast on self by core
SPELL_ATTR0_DO_NOT_DISPLAY_SPELLBOOK_AURA_ICON_COMBAT_LOG = 0x00000080, // TITLE Do Not Display (Spellbook, Aura Icon, Combat Log) (client only) DESCRIPTION Not visible in spellbook or aura bar
SPELL_ATTR0_DO_NOT_LOG = 0x00000100, // TITLE Do Not Log (client only) DESCRIPTION Spell will not appear in combat logs
SPELL_ATTR0_HELD_ITEM_ONLY = 0x00000200, // TITLE Held Item Only (client only) DESCRIPTION Client will automatically select main-hand item as cast target
SPELL_ATTR0_ON_NEXT_SWING = 0x00000400, // TITLE On Next Swing DESCRIPTION Both "on next swing" attributes have identical handling in server & client
SPELL_ATTR0_WEARER_CASTS_PROC_TRIGGER = 0x00000800, // TITLE Wearer Casts Proc Trigger DESCRIPTION Just a marker attribute to show auras that trigger another spell (either directly or with a script)
SPELL_ATTR0_SERVER_ONLY = 0x00001000, // TITLE Server Only
SPELL_ATTR0_ALLOW_ITEM_SPELL_IN_PVP = 0x00002000, // TITLE Allow Item Spell In PvP
SPELL_ATTR0_ONLY_INDOORS = 0x00004000, // TITLE Only Indoors
SPELL_ATTR0_ONLY_OUTDOORS = 0x00008000, // TITLE Only Outdoors
SPELL_ATTR0_NOT_SHAPESHIFTED = 0x00010000, // TITLE Not Shapeshifted
SPELL_ATTR0_ONLY_STEALTHED = 0x00020000, // TITLE Only Stealthed
SPELL_ATTR0_DO_NOT_SHEATH = 0x00040000, // TITLE Do Not Sheath (client only)
SPELL_ATTR0_SCALES_WITH_CREATURE_LEVEL = 0x00080000, // TITLE Scales w/ Creature Level DESCRIPTION For non-player casts, scale impact and power cost with caster's level
SPELL_ATTR0_CANCELS_AUTO_ATTACK_COMBAT = 0x00100000, // TITLE Cancels Auto Attack Combat DESCRIPTION After casting this, the current auto-attack will be interrupted
SPELL_ATTR0_NO_ACTIVE_DEFENSE = 0x00200000, // TITLE No Active Defense DESCRIPTION Spell cannot be dodged, parried or blocked
SPELL_ATTR0_TRACK_TARGET_IN_CAST_PLAYER_ONLY = 0x00400000, // TITLE Track Target in Cast (Player Only) (client only)
SPELL_ATTR0_ALLOW_CAST_WHILE_DEAD = 0x00800000, // TITLE Allow Cast While Dead DESCRIPTION Spells without this flag cannot be cast by dead units in non-triggered contexts
SPELL_ATTR0_ALLOW_WHILE_MOUNTED = 0x01000000, // TITLE Allow While Mounted
SPELL_ATTR0_COOLDOWN_ON_EVENT = 0x02000000, // TITLE Cooldown On Event DESCRIPTION Spell is unusable while already active, and cooldown does not begin until the effects have worn off
SPELL_ATTR0_AURA_IS_DEBUFF = 0x04000000, // TITLE Aura Is Debuff DESCRIPTION Forces the spell to be treated as a negative spell
SPELL_ATTR0_ALLOW_WHILE_SITTING = 0x08000000, // TITLE Allow While Sitting
SPELL_ATTR0_NOT_IN_COMBAT_ONLY_PEACEFUL = 0x10000000, // TITLE Not In Combat (Only Peaceful)
SPELL_ATTR0_NO_IMMUNITIES = 0x20000000, // TITLE No Immunities DESCRIPTION Allows spell to pierce invulnerability, unless the invulnerability spell also has this attribute
SPELL_ATTR0_HEARTBEAT_RESIST = 0x40000000, // TITLE Heartbeat Resist DESCRIPTION Periodically re-rolls against resistance to potentially expire aura early
SPELL_ATTR0_NO_AURA_CANCEL = 0x80000000 // TITLE No Aura Cancel DESCRIPTION Prevents the player from voluntarily canceling a positive aura
};
// EnumUtils: DESCRIBE THIS
enum SpellAttr1 : uint32
{
SPELL_ATTR1_DISMISS_PET_FIRST = 0x00000001, // TITLE Dismiss Pet First DESCRIPTION Without this attribute, summoning spells will fail if caster already has a pet
SPELL_ATTR1_USE_ALL_MANA = 0x00000002, // TITLE Use All Mana DESCRIPTION Ignores listed power cost and drains entire pool instead
SPELL_ATTR1_IS_CHANNELLED = 0x00000004, // TITLE Is Channelled DESCRIPTION Both "channeled" attributes have identical handling in server & client
SPELL_ATTR1_NO_REDIRECTION = 0x00000008, // TITLE No Redirection DESCRIPTION Spell will not be attracted by SPELL_MAGNET auras (Grounding Totem)
SPELL_ATTR1_NO_SKILL_INCREASE = 0x00000010, // TITLE No Skill Increase
SPELL_ATTR1_ALLOW_WHILE_STEALTHED = 0x00000020, // TITLE Allow While Stealthed
SPELL_ATTR1_IS_SELF_CHANNELLED = 0x00000040, // TITLE Is Self Channelled DESCRIPTION Both "channeled" attributes have identical handling in server & client
SPELL_ATTR1_NO_REFLECTION = 0x00000080, // TITLE No Reflection DESCRIPTION Spell will pierce through Spell Reflection and similar
SPELL_ATTR1_ONLY_PEACEFUL_TARGETS = 0x00000100, // TITLE Only Peaceful Targets DESCRIPTION Target cannot be in combat
SPELL_ATTR1_INITIATES_COMBAT_ENABLES_AUTO_ATTACK = 0x00000200, // TITLE Initiates Combat (Enables Auto-Attack) (client only) DESCRIPTION Caster will begin auto-attacking the target on cast
SPELL_ATTR1_NO_THREAT = 0x00000400, // TITLE No Threat DESCRIPTION Also does not cause target to engage
SPELL_ATTR1_AURA_UNIQUE = 0x00000800, // TITLE Aura Unique DESCRIPTION Aura will not refresh its duration when recast
SPELL_ATTR1_FAILURE_BREAKS_STEALTH = 0x00001000, // TITLE Failure Breaks Stealth
SPELL_ATTR1_TOGGLE_FAR_SIGHT = 0x00002000, // TITLE Toggle Far Sight (client only)
SPELL_ATTR1_TRACK_TARGET_IN_CHANNEL = 0x00004000, // TITLE Track Target in Channel DESCRIPTION While channeling, adjust facing to face target
SPELL_ATTR1_IMMUNITY_PURGES_EFFECT = 0x00008000, // TITLE Immunity Purges Effect DESCRIPTION For immunity spells, cancel all auras that this spell would make you immune to when the spell is applied
SPELL_ATTR1_IMMUNITY_TO_HOSTILE_AND_FRIENDLY_EFFECTS = 0x00010000, // TITLE Immunity to Hostile & Friendly Effects DESCRIPTION Immunity applied by this aura will also be checked for friendly spells (school immunity only) - used by Cyclone for example to cause friendly spells and healing over time to be immuned
SPELL_ATTR1_NO_AUTOCAST_AI = 0x00020000, // TITLE No AutoCast (AI)
SPELL_ATTR1_PREVENTS_ANIM = 0x00040000, /*NYI*/ // TITLE Prevents Anim DESCRIPTION Auras apply UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT
SPELL_ATTR1_EXCLUDE_CASTER = 0x00080000, // TITLE Exclude Caster
SPELL_ATTR1_FINISHING_MOVE_DAMAGE = 0x00100000, // TITLE Finishing Move - Damage
SPELL_ATTR1_THREAT_ONLY_ON_MISS = 0x00200000, /*NYI*/ // TITLE Threat only on Miss
SPELL_ATTR1_FINISHING_MOVE_DURATION = 0x00400000, // TITLE Finishing Move - Duration
SPELL_ATTR1_IGNORE_OWNERS_DEATH = 0x00800000, /*NYI*/ // TITLE Ignore Owner's Death
SPELL_ATTR1_SPECIAL_SKILLUP = 0x01000000, // TITLE Special Skillup
SPELL_ATTR1_AURA_STAYS_AFTER_COMBAT = 0x02000000, // TITLE Aura Stays After Combat
SPELL_ATTR1_REQUIRE_ALL_TARGETS = 0x04000000, // TITLE Require All Targets
SPELL_ATTR1_DISCOUNT_POWER_ON_MISS = 0x08000000, // TITLE Discount Power On Miss
SPELL_ATTR1_NO_AURA_ICON = 0x10000000, // TITLE No Aura Icon (client only)
SPELL_ATTR1_NAME_IN_CHANNEL_BAR = 0x20000000, // TITLE Name in Channel Bar (client only)
SPELL_ATTR1_DISPEL_ALL_STACKS = 0x40000000, // TITLE Dispel All Stacks
SPELL_ATTR1_CAST_WHEN_LEARNED = 0x80000000 // TITLE Cast When Learned
};
// EnumUtils: DESCRIBE THIS
enum SpellAttr2 : uint32
{
SPELL_ATTR2_ALLOW_DEAD_TARGET = 0x00000001, // TITLE Allow Dead Target
SPELL_ATTR2_NO_SHAPESHIFT_UI = 0x00000002, // TITLE No shapeshift UI (client only) DESCRIPTION Does not replace action bar when shapeshifted
SPELL_ATTR2_IGNORE_LINE_OF_SIGHT = 0x00000004, // TITLE Ignore Line of Sight
SPELL_ATTR2_ALLOW_LOW_LEVEL_BUFF = 0x00000008, // TITLE Allow Low Level Buff
SPELL_ATTR2_USE_SHAPESHIFT_BAR = 0x00000010, // TITLE Use Shapeshift Bar (client only)
SPELL_ATTR2_AUTO_REPEAT = 0x00000020, // TITLE Auto Repeat
SPELL_ATTR2_CANNOT_CAST_ON_TAPPED = 0x00000040, // TITLE Cannot cast on tapped DESCRIPTION Can only target untapped units, or those tapped by caster
SPELL_ATTR2_DO_NOT_REPORT_SPELL_FAILURE = 0x00000080, // TITLE Do Not Report Spell Failure
SPELL_ATTR2_INCLUDE_IN_ADVANCED_COMBAT_LOG = 0x00000100, // TITLE Include In Advanced Combat Log (client only) DESCRIPTION Determines whether to include this aura in list of auras in SMSG_ENCOUNTER_START
SPELL_ATTR2_ALWAYS_CAST_AS_UNIT = 0x00000200, /*NYI, UNK*/ // TITLE Always Cast As Unit
SPELL_ATTR2_SPECIAL_TAMING_FLAG = 0x00000400, // TITLE Special Taming Flag DESCRIPTION Related to taming?
SPELL_ATTR2_NO_TARGET_PER_SECOND_COSTS = 0x00000800, // TITLE No Target Per-Second Costs
SPELL_ATTR2_CHAIN_FROM_CASTER = 0x00001000, // TITLE Chain From Caster
SPELL_ATTR2_ENCHANT_OWN_ITEM_ONLY = 0x00002000, // TITLE Enchant own item only
SPELL_ATTR2_ALLOW_WHILE_INVISIBLE = 0x00004000, // TITLE Allow While Invisible
SPELL_ATTR2_DO_NOT_CONSUME_IF_GAINED_DURING_CAST = 0x00008000, // TITLE Do Not Consume if Gained During Cast
SPELL_ATTR2_NO_ACTIVE_PETS = 0x00010000, // TITLE No Active Pets
SPELL_ATTR2_DO_NOT_RESET_COMBAT_TIMERS = 0x00020000, // TITLE Do Not Reset Combat Timers DESCRIPTION Does not reset melee/ranged autoattack timer on cast
SPELL_ATTR2_NO_JUMP_WHILE_CAST_PENDING = 0x00040000, // TITLE No Jump While Cast Pending (client only)
SPELL_ATTR2_ALLOW_WHILE_NOT_SHAPESHIFTED_CASTER_FORM = 0x00080000, // TITLE Allow While Not Shapeshifted (caster form) DESCRIPTION Even if Stances are nonzero, allow spell to be cast outside of shapeshift (though not in a different shapeshift)
SPELL_ATTR2_INITIATE_COMBAT_POST_CAST_ENABLES_AUTO_ATTACK = 0x00100000, // TITLE Initiate Combat Post-Cast (Enables Auto-Attack)
SPELL_ATTR2_FAIL_ON_ALL_TARGETS_IMMUNE = 0x00200000, // TITLE Fail on all targets immune DESCRIPTION Causes BG flags to be dropped if combined with ATTR1_DISPEL_AURAS_ON_IMMUNITY
SPELL_ATTR2_NO_INITIAL_THREAT = 0x00400000, // TITLE No Initial Threat
SPELL_ATTR2_PROC_COOLDOWN_ON_FAILURE = 0x00800000, // TITLE Proc Cooldown On Failure
SPELL_ATTR2_ITEM_CAST_WITH_OWNER_SKILL = 0x01000000, // TITLE Item Cast With Owner Skill
SPELL_ATTR2_DONT_BLOCK_MANA_REGEN = 0x02000000, // TITLE Don't Block Mana Regen
SPELL_ATTR2_NO_SCHOOL_IMMUNITIES = 0x04000000, // TITLE No School Immunities DESCRIPTION Allow aura to be applied despite target being immune to new aura applications
SPELL_ATTR2_IGNORE_WEAPONSKILL = 0x08000000, // TITLE Ignore Weaponskill
SPELL_ATTR2_NOT_AN_ACTION = 0x10000000, // TITLE Not an Action
SPELL_ATTR2_CANT_CRIT = 0x20000000, // TITLE Can't Crit
SPELL_ATTR2_ACTIVE_THREAT = 0x40000000, // TITLE Active Threat
SPELL_ATTR2_RETAIN_ITEM_CAST = 0x80000000 // TITLE Retain Item Cast DESCRIPTION passes m_CastItem to triggered spells
};
// EnumUtils: DESCRIBE THIS
enum SpellAttr3 : uint32
{
SPELL_ATTR3_PVP_ENABLING = 0x00000001, // TITLE PvP Enabling
SPELL_ATTR3_NO_PROC_EQUIP_REQUIREMENT = 0x00000002, // TITLE No Proc Equip Requirement DESCRIPTION Ignores subclass mask check when checking proc
SPELL_ATTR3_NO_CASTING_BAR_TEXT = 0x00000004, // TITLE No Casting Bar Text
SPELL_ATTR3_COMPLETELY_BLOCKED = 0x00000008, // TITLE Completely Blocked
SPELL_ATTR3_NO_RES_TIMER = 0x00000010, // TITLE No Res Timer
SPELL_ATTR3_NO_DURABILITY_LOSS = 0x00000020, // TITLE No Durability Loss
SPELL_ATTR3_NO_AVOIDANCE = 0x00000040, // TITLE No Avoidance
SPELL_ATTR3_DOT_STACKING_RULE = 0x00000080, // TITLE DoT Stacking Rule DESCRIPTION Stack separately for each caster
SPELL_ATTR3_ONLY_ON_PLAYER = 0x00000100, // TITLE Only On Player
SPELL_ATTR3_NOT_A_PROC = 0x00000200, // TITLE Not a Proc DESCRIPTION Without this attribute, any triggered spell will be unable to trigger other auras' procs
SPELL_ATTR3_REQUIRES_MAIN_HAND_WEAPON = 0x00000400, // TITLE Requires Main-Hand Weapon
SPELL_ATTR3_ONLY_BATTLEGROUNDS = 0x00000800, // TITLE Only Battlegrounds
SPELL_ATTR3_ONLY_ON_GHOSTS = 0x00001000, // TITLE Only On Ghosts
SPELL_ATTR3_HIDE_CHANNEL_BAR = 0x00002000, // TITLE Hide Channel Bar (client only)
SPELL_ATTR3_HIDE_IN_RAID_FILTER = 0x00004000, // TITLE Hide In Raid Filter (client only)
SPELL_ATTR3_NORMAL_RANGED_ATTACK = 0x00008000, // TITLE Normal Ranged Attack DESCRIPTION Auto Shoot, Shoot, Throw - ranged normal attack attribute?
SPELL_ATTR3_SUPPRESS_CASTER_PROCS = 0x00010000, // TITLE Suppress Caster Procs
SPELL_ATTR3_SUPPRESS_TARGET_PROCS = 0x00020000, // TITLE Suppress Target Procs
SPELL_ATTR3_ALWAYS_HIT = 0x00040000, // TITLE Always Hit DESCRIPTION Spell cannot miss, or be dodged/parried/blocked
SPELL_ATTR3_INSTANT_TARGET_PROCS = 0x00080000, // TITLE Instant Target Procs DESCRIPTION Proc events are triggered before spell batching processes the spell hit on target
SPELL_ATTR3_ALLOW_AURA_WHILE_DEAD = 0x00100000, // TITLE Allow Aura While Dead
SPELL_ATTR3_ONLY_PROC_OUTDOORS = 0x00200000, // TITLE Only Proc Outdoors
SPELL_ATTR3_DO_NOT_TRIGGER_TARGET_STAND = 0x00400000, // TITLE Do Not Trigger Target Stand
SPELL_ATTR3_NO_DAMAGE_HISTORY = 0x00800000, /*NYI, no damage history implementation*/ // TITLE No Damage History
SPELL_ATTR3_REQUIRES_OFF_HAND_WEAPON = 0x01000000, // TITLE Requires Off-Hand Weapon
SPELL_ATTR3_TREAT_AS_PERIODIC = 0x02000000, // TITLE Treat As Periodic
SPELL_ATTR3_CAN_PROC_FROM_PROCS = 0x04000000, // TITLE Can Proc From Procs
SPELL_ATTR3_ONLY_PROC_ON_CASTER = 0x08000000, // TITLE Only Proc on Caster
SPELL_ATTR3_IGNORE_CASTER_AND_TARGET_RESTRICTIONS = 0x10000000, /*NYI*/ // TITLE Ignore Caster & Target Restrictions
SPELL_ATTR3_IGNORE_CASTER_MODIFIERS = 0x20000000, // TITLE Ignore Caster Modifiers
SPELL_ATTR3_DO_NOT_DISPLAY_RANGE = 0x40000000, // TITLE Do Not Display Range (client only)
SPELL_ATTR3_NOT_ON_AOE_IMMUNE = 0x80000000 // TITLE Not On AOE Immune
};
// EnumUtils: DESCRIBE THIS
enum SpellAttr4 : uint32
{
SPELL_ATTR4_NO_CAST_LOG = 0x00000001, // TITLE No Cast Log
SPELL_ATTR4_CLASS_TRIGGER_ONLY_ON_TARGET = 0x00000002, // TITLE Class Trigger Only On Target
SPELL_ATTR4_AURA_EXPIRES_OFFLINE = 0x00000004, // TITLE Aura Expires Offline DESCRIPTION Debuffs (except Resurrection Sickness) will automatically do this
SPELL_ATTR4_NO_HELPFUL_THREAT = 0x00000008, // TITLE No Helpful Threat
SPELL_ATTR4_NO_HARMFUL_THREAT = 0x00000010, // TITLE No Harmful Threat
SPELL_ATTR4_ALLOW_CLIENT_TARGETING = 0x00000020, // TITLE Allow Client Targeting DESCRIPTION Allows client to send spell targets for this spell. Applies only to pet spells, without this attribute CMSG_PET_ACTION is sent instead of CMSG_PET_CAST_SPELL
SPELL_ATTR4_CANNOT_BE_STOLEN = 0x00000040, // TITLE Cannot Be Stolen
SPELL_ATTR4_ALLOW_CAST_WHILE_CASTING = 0x00000080, // TITLE Allow Cast While Casting DESCRIPTION Ignores already in-progress cast and still casts
SPELL_ATTR4_IGNORE_DAMAGE_TAKEN_MODIFIERS = 0x00000100, // TITLE Ignore Damage Taken Modifiers
SPELL_ATTR4_COMBAT_FEEDBACK_WHEN_USABLE = 0x00000200, // TITLE Combat Feedback When Usable (client only)
SPELL_ATTR4_WEAPON_SPEED_COST_SCALING = 0x00000400, // TITLE Weapon Speed Cost Scaling DESCRIPTION Adds 10 to power cost for each 1s of weapon speed
SPELL_ATTR4_NO_PARTIAL_IMMUNITY = 0x00000800, // TITLE No Partial Immunity
SPELL_ATTR4_AURA_IS_BUFF = 0x00001000, // TITLE Aura Is Buff
SPELL_ATTR4_DO_NOT_LOG_CASTER = 0x00002000, // TITLE Do Not Log Caster
SPELL_ATTR4_REACTIVE_DAMAGE_PROC = 0x00004000, // TITLE Reactive Damage Proc DESCRIPTION Damage from spells with this attribute doesn't break auras that normally break on damage taken
SPELL_ATTR4_NOT_IN_SPELLBOOK = 0x00008000, // TITLE Not In Spellbook
SPELL_ATTR4_NOT_IN_ARENA_OR_RATED_BATTLEGROUND = 0x00010000, // TITLE Not In Arena or Rated Battleground DESCRIPTION Makes spell unusable despite CD <= 10min
SPELL_ATTR4_IGNORE_DEFAULT_ARENA_RESTRICTIONS = 0x00020000, // TITLE Ignore Default Arena Restrictions DESCRIPTION Makes spell usable despite CD > 10min
SPELL_ATTR4_BOUNCY_CHAIN_MISSILES = 0x00040000, // TITLE Bouncy Chain Missiles DESCRIPTION Hits area targets over time instead of all at once
SPELL_ATTR4_ALLOW_PROC_WHILE_SITTING = 0x00080000, // TITLE Allow Proc While Sitting
SPELL_ATTR4_AURA_NEVER_BOUNCES = 0x00100000, // TITLE Aura Never Bounces
SPELL_ATTR4_ALLOW_ENTERING_ARENA = 0x00200000, // TITLE Allow Entering Arena
SPELL_ATTR4_PROC_SUPPRESS_SWING_ANIM = 0x00400000, // TITLE Proc Suppress Swing Anim
SPELL_ATTR4_SUPPRESS_WEAPON_PROCS = 0x00800000, // TITLE Suppress Weapon Procs
SPELL_ATTR4_AUTO_RANGED_COMBAT = 0x01000000, // TITLE Auto Ranged Combat
SPELL_ATTR4_OWNER_POWER_SCALING = 0x02000000, // TITLE Owner Power Scaling
SPELL_ATTR4_ONLY_FLYING_AREAS = 0x04000000, // TITLE Only Flying Areas
SPELL_ATTR4_FORCE_DISPLAY_CASTBAR = 0x08000000, // TITLE Force Display Castbar
SPELL_ATTR4_IGNORE_COMBAT_TIMER = 0x10000000, // TITLE Ignore Combat Timer
SPELL_ATTR4_AURA_BOUNCE_FAILS_SPELL = 0x20000000, // TITLE Aura Bounce Fails Spell
SPELL_ATTR4_OBSOLETE = 0x40000000, // TITLE Obsolete
SPELL_ATTR4_USE_FACING_FROM_SPELL = 0x80000000 // TITLE Use Facing From Spell
};
// EnumUtils: DESCRIBE THIS
enum SpellAttr5 : uint32
{
SPELL_ATTR5_ALLOW_ACTIONS_DURING_CHANNEL = 0x00000001, // TITLE Allow Actions During Channel
SPELL_ATTR5_NO_REAGENT_COST_WITH_AURA = 0x00000002, // TITLE No Reagent Cost With Aura
SPELL_ATTR5_REMOVE_ENTERING_ARENA = 0x00000004, // TITLE Remove Entering Arena DESCRIPTION Force this aura to be removed on entering arena, regardless of other properties
SPELL_ATTR5_ALLOW_WHILE_STUNNED = 0x00000008, // TITLE Allow While Stunned
SPELL_ATTR5_TRIGGERS_CHANNELING = 0x00000010, // TITLE Triggers Channeling
SPELL_ATTR5_LIMIT_N = 0x00000020, // TITLE Limit N DESCRIPTION Remove previous application to another unit if applied
SPELL_ATTR5_IGNORE_AREA_EFFECT_PVP_CHECK = 0x00000040, // TITLE Ignore Area Effect PvP Check
SPELL_ATTR5_NOT_ON_PLAYER = 0x00000080, // TITLE Not On Player
SPELL_ATTR5_NOT_ON_PLAYER_CONTROLLED_NPC = 0x00000100, // TITLE Not On Player Controlled NPC
SPELL_ATTR5_EXTRA_INITIAL_PERIOD = 0x00000200, // TITLE Extra Initial Period DESCRIPTION Immediately do periodic tick on apply
SPELL_ATTR5_DO_NOT_DISPLAY_DURATION = 0x00000400, // TITLE Do Not Display Duration
SPELL_ATTR5_IMPLIED_TARGETING = 0x00000800, // TITLE Implied Targeting (client only)
SPELL_ATTR5_MELEE_CHAIN_TARGETING = 0x00001000, // TITLE Melee Chain Targeting
SPELL_ATTR5_SPELL_HASTE_AFFECTS_PERIODIC = 0x00002000, // TITLE Spell Haste Affects Periodic
SPELL_ATTR5_NOT_AVAILABLE_WHILE_CHARMED = 0x00004000, // TITLE Not Available While Charmed
SPELL_ATTR5_TREAT_AS_AREA_EFFECT = 0x00008000, // TITLE Treat as Area Effect
SPELL_ATTR5_AURA_AFFECTS_NOT_JUST_REQ_EQUIPPED_ITEM = 0x00010000, // TITLE Aura Affects Not Just Req. Equipped Item
SPELL_ATTR5_ALLOW_WHILE_FLEEING = 0x00020000, // TITLE Allow While Fleeing
SPELL_ATTR5_ALLOW_WHILE_CONFUSED = 0x00040000, // TITLE Allow While Confused
SPELL_ATTR5_AI_DOESNT_FACE_TARGET = 0x00080000, // TITLE AI Doesn't Face Target
SPELL_ATTR5_DO_NOT_ATTEMPT_A_PET_RESUMMON_WHEN_DISMOUNTING = 0x00100000, // TITLE Do Not Attempt a Pet Resummon When Dismounting DESCRIPTION No generic handling possible, used by scripted dismount spells
SPELL_ATTR5_IGNORE_TARGET_REQUIREMENTS = 0x00200000, /*NYI*/ // TITLE Ignore Target Requirements
SPELL_ATTR5_NOT_ON_TRIVIAL = 0x00400000, /*NYI*/ // TITLE Not On Trivial
SPELL_ATTR5_NO_PARTIAL_RESISTS = 0x00800000, /*NYI, resisting only some spell effects not implemented*/ // TITLE No Partial Resists
SPELL_ATTR5_IGNORE_CASTER_REQUIREMENTS = 0x01000000, /*NYI*/ // TITLE Ignore Caster Requirements
SPELL_ATTR5_ALWAYS_LINE_OF_SIGHT = 0x02000000, // TITLE Always Line of Sight
SPELL_ATTR5_ALWAYS_AOE_LINE_OF_SIGHT = 0x04000000, // TITLE Always AOE Line of Sight DESCRIPTION Requires line of sight between caster and target in addition to between dest and target
SPELL_ATTR5_NO_CASTER_AURA_ICON = 0x08000000, // TITLE No Caster Aura Icon (client only)
SPELL_ATTR5_NO_TARGET_AURA_ICON = 0x10000000, // TITLE No Target Aura Icon (client only)
SPELL_ATTR5_AURA_UNIQUE_PER_CASTER = 0x20000000, // TITLE Aura Unique Per Caster
SPELL_ATTR5_ALWAYS_SHOW_GROUND_TEXTURE = 0x40000000, // TITLE Always Show Ground Texture
SPELL_ATTR5_ADD_MELEE_HIT_RATING = 0x80000000 // TITLE Add Melee Hit Rating
};
// EnumUtils: DESCRIBE THIS
enum SpellAttr6 : uint32
{
SPELL_ATTR6_NO_COOLDOWN_ON_TOOLTIP = 0x00000001, // TITLE No Cooldown On Tooltip (client only)
SPELL_ATTR6_DO_NOT_RESET_COOLDOWN_IN_ARENA = 0x00000002, // TITLE Do Not Reset Cooldown In Arena
SPELL_ATTR6_NOT_AN_ATTACK = 0x00000004, /*NYI*/ // TITLE Not an Attack
SPELL_ATTR6_CAN_ASSIST_IMMUNE_PC = 0x00000008, // TITLE Can Assist Immune PC
SPELL_ATTR6_IGNORE_FOR_MOD_TIME_RATE = 0x00000010, /*NYI, time rate not implemented*/ // TITLE Ignore For Mod Time Rate
SPELL_ATTR6_DO_NOT_CONSUME_RESOURCES = 0x00000020, // TITLE Do Not Consume Resources
SPELL_ATTR6_FLOATING_COMBAT_TEXT_ON_CAST = 0x00000040, // TITLE Floating Combat Text On Cast (client only)
SPELL_ATTR6_AURA_IS_WEAPON_PROC = 0x00000080, // TITLE Aura Is Weapon Proc
SPELL_ATTR6_DO_NOT_CHAIN_TO_CROWD_CONTROLLED_TARGETS = 0x00000100, // TITLE Do Not Chain To Crowd-Controlled Targets DESCRIPTION Implicit targeting (chaining and area targeting) will not impact crowd controlled targets
SPELL_ATTR6_ALLOW_ON_CHARMED_TARGETS = 0x00000200, /*NYI*/ // TITLE Allow On Charmed Targets
SPELL_ATTR6_NO_AURA_LOG = 0x00000400, // TITLE No Aura Log
SPELL_ATTR6_NOT_IN_RAID_INSTANCES = 0x00000800, // TITLE Not In Raid Instances
SPELL_ATTR6_ALLOW_WHILE_RIDING_VEHICLE = 0x00001000, // TITLE Allow While Riding Vehicle
SPELL_ATTR6_IGNORE_PHASE_SHIFT = 0x00002000, // TITLE Ignore Phase Shift
SPELL_ATTR6_AI_PRIMARY_RANGED_ATTACK = 0x00004000, /*NYI*/ // TITLE AI Primary Ranged Attack
SPELL_ATTR6_NO_PUSHBACK = 0x00008000, // TITLE No Pushback
SPELL_ATTR6_NO_JUMP_PATHING