/******************************************************************************* * Copyright (C) 2013 JMaNGOS <http://jmangos.org/> * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License along * with this program. If not, see <http://www.gnu.org/licenses/>. ******************************************************************************/ package org.jmangos.tools.dbc.struct; import javax.xml.bind.annotation.XmlAttribute; import org.jmangos.tools.dbc.dataholder.DBCStruct; public class SpellEntry extends DBCStruct<SpellEntry> { @XmlAttribute(name = "id", required = true) public final Signed32 Id = new Signed32(); // 0 // m_ID @XmlAttribute(name = "Category", required = true) public final Signed32 Category = new Signed32(); // 1 // m_category @XmlAttribute(name = "Dispel", required = true) public final Signed32 Dispel = new Signed32(); // 2 // m_dispelType @XmlAttribute(name = "Mechanic", required = true) public final Signed32 Mechanic = new Signed32(); // 3 // m_mechanic @XmlAttribute(name = "Attributes", required = true) public final Signed32 Attributes = new Signed32(); // 4 // m_attribute @XmlAttribute(name = "AttributesEx", required = true) public final Signed32 AttributesEx = new Signed32(); // 5 // m_attributesEx @XmlAttribute(name = "AttributesEx2", required = true) public final Signed32 AttributesEx2 = new Signed32(); // 6 // m_attributesExB @XmlAttribute(name = "AttributesEx3", required = true) public final Signed32 AttributesEx3 = new Signed32(); // 7 // m_attributesExC @XmlAttribute(name = "AttributesEx4", required = true) public final Signed32 AttributesEx4 = new Signed32(); // 8 // m_attributesExD @XmlAttribute(name = "AttributesEx5", required = true) public final Signed32 AttributesEx5 = new Signed32(); // 9 // m_attributesExE @XmlAttribute(name = "AttributesEx6", required = true) public final Signed32 AttributesEx6 = new Signed32(); // 10 // m_attributesExF @XmlAttribute(name = "AttributesEx7", required = true) public final Signed32 AttributesEx7 = new Signed32(); // 11 // m_attributesExG // (0x20 // - // totems, // 0x4 // - // paladin // auras, // etc...) @XmlAttribute(name = "Stances", required = true) public final Signed32 Stances = new Signed32(); // 12 // m_shapeshiftMask public final Signed32 unk_320_1 = new Signed32(); // 13 // 3.2.0 @XmlAttribute(name = "StancesNot", required = true) public final Signed32 StancesNot = new Signed32(); // 14 // m_shapeshiftExclude public final Signed32 unk_320_2 = new Signed32(); // 15 // 3.2.0 @XmlAttribute(name = "Targets", required = true) public final Signed32 Targets = new Signed32(); // 16 // m_targets @XmlAttribute(name = "TargetCreatureType", required = true) public final Signed32 TargetCreatureType = new Signed32(); // 17 // m_targetCreatureType @XmlAttribute(name = "RequiresSpellFocus", required = true) public final Signed32 RequiresSpellFocus = new Signed32(); // 18 // m_requiresSpellFocus @XmlAttribute(name = "FacingCasterFlags", required = true) public final Signed32 FacingCasterFlags = new Signed32(); // 19 // m_facingCasterFlags @XmlAttribute(name = "CasterAuraState", required = true) public final Signed32 CasterAuraState = new Signed32(); // 20 // m_casterAuraState @XmlAttribute(name = "TargetAuraState", required = true) public final Signed32 TargetAuraState = new Signed32(); // 21 // m_targetAuraState @XmlAttribute(name = "CasterAuraStateNot", required = true) public final Signed32 CasterAuraStateNot = new Signed32(); // 22 // m_excludeCasterAuraState @XmlAttribute(name = "TargetAuraStateNot", required = true) public final Signed32 TargetAuraStateNot = new Signed32(); // 23 // m_excludeTargetAuraState @XmlAttribute(name = "casterAuraSpell", required = true) public final Signed32 casterAuraSpell = new Signed32(); // 24 // m_casterAuraSpell @XmlAttribute(name = "targetAuraSpell", required = true) public final Signed32 targetAuraSpell = new Signed32(); // 25 // m_targetAuraSpell @XmlAttribute(name = "excludeCasterAuraSpell", required = true) public final Signed32 excludeCasterAuraSpell = new Signed32(); // 26 // m_excludeCasterAuraSpell @XmlAttribute(name = "Targets", required = true) public final Signed32 excludeTargetAuraSpell = new Signed32(); // 27 // m_excludeTargetAuraSpell @XmlAttribute(name = "CastingTimeIndex", required = true) public final Signed32 CastingTimeIndex = new Signed32(); // 28 // m_castingTimeIndex @XmlAttribute(name = "RecoveryTime", required = true) public final Signed32 RecoveryTime = new Signed32(); // 29 // m_recoveryTime @XmlAttribute(name = "CategoryRecoveryTime", required = true) public final Signed32 CategoryRecoveryTime = new Signed32(); // 30 // m_categoryRecoveryTime @XmlAttribute(name = "InterruptFlags", required = true) public final Signed32 InterruptFlags = new Signed32(); // 31 // m_interruptFlags @XmlAttribute(name = "AuraInterruptFlags", required = true) public final Signed32 AuraInterruptFlags = new Signed32(); // 32 // m_auraInterruptFlags @XmlAttribute(name = "ChannelInterruptFlags", required = true) public final Signed32 ChannelInterruptFlags = new Signed32(); // 33 // m_channelInterruptFlags @XmlAttribute(name = "procFlags") public final Signed32 procFlags = new Signed32(); // 34 // m_procTypeMask @XmlAttribute(name = "procChance") public final Signed32 procChance = new Signed32(); // 35 // m_procChance @XmlAttribute(name = "procCharges") public final Signed32 procCharges = new Signed32(); // 36 // m_procCharges @XmlAttribute(name = "maxLevel") public final Signed32 maxLevel = new Signed32(); // 37 // m_maxLevel @XmlAttribute(name = "baseLevel", required = true) public final Signed32 baseLevel = new Signed32(); // 38 // m_baseLevel @XmlAttribute(name = "spellLevel", required = true) public final Signed32 spellLevel = new Signed32(); // 39 // m_spellLevel @XmlAttribute(name = "DurationIndex", required = true) public final Signed32 DurationIndex = new Signed32(); // 40 // m_durationIndex @XmlAttribute(name = "powerType", required = true) public final Signed32 powerType = new Signed32(); // 41 // m_powerType @XmlAttribute(name = "manaCost", required = true) public final Signed32 manaCost = new Signed32(); // 42 // m_manaCost @XmlAttribute(name = "manaCostPerlevel", required = true) public final Signed32 manaCostPerlevel = new Signed32(); // 43 // m_manaCostPerLevel @XmlAttribute(name = "manaPerSecond", required = true) public final Signed32 manaPerSecond = new Signed32(); // 44 // m_manaPerSecond @XmlAttribute(name = "manaPerSecondPerLevel", required = true) public final Signed32 manaPerSecondPerLevel = new Signed32(); // 45 // m_manaPerSecondPerLevel @XmlAttribute(name = "rangeIndex", required = true) public final Signed32 rangeIndex = new Signed32(); // 46 // m_rangeIndex @XmlAttribute(name = "speed", required = true) public final Float32 speed = new Float32(); // 47 // m_speed public final Signed32 modalNextSpell = new Signed32(); // 48 // m_modalNextSpell // not // used @XmlAttribute(name = "StackAmount", required = true) public final Signed32 StackAmount = new Signed32(); // 49 // m_cumulativeAura @XmlAttribute(name = "Totem", required = true) public final Signed32[] Totem = array(new Signed32[2]); // 50-51 // m_totem @XmlAttribute(name = "Reagent", required = true) public final Signed32[] Reagent = array(new Signed32[8]); // 52-59 // m_reagent @XmlAttribute(name = "ReagentCount", required = true) public final Signed32[] ReagentCount = array(new Signed32[8]); // 60-67 // m_reagentCount @XmlAttribute(name = "EquippedItemClass", required = true) public final Signed32 EquippedItemClass = new Signed32(); // 68 // m_equippedItemClass // (value) @XmlAttribute(name = "EquippedItemSubClassMask", required = true) public final Signed32 EquippedItemSubClassMask = new Signed32(); // 69 // m_equippedItemSubclass // (mask) @XmlAttribute(name = "EquippedItemInventoryTypeMask", required = true) public final Signed32 EquippedItemInventoryTypeMask = new Signed32(); // 70 // m_equippedItemInvTypes // (mask) @XmlAttribute(name = "Effect", required = true) public final Signed32[] Effect = array(new Signed32[3]); // 71-73 // m_effect @XmlAttribute(name = "EffectDieSides", required = true) public final Signed32[] EffectDieSides = array(new Signed32[3]); // 74-76 // m_effectDieSides @XmlAttribute(name = "EffectRealPointsPerLeve", required = true) public final Float32[] EffectRealPointsPerLeve = array(new Float32[3]); // 77-79 // m_effectRealPointsPerLevel @XmlAttribute(name = "EffectBasePoints", required = true) public final Signed32[] EffectBasePoints = array(new Signed32[3]); // 80-82 // m_effectBasePoints // (don't // must // be // used // in // spell/auras // explicitly, // must // be // used // cached // Spell::m_currentBasePoints) @XmlAttribute(name = "EffectMechanic", required = true) public final Signed32[] EffectMechanic = array(new Signed32[3]); // 83-85 // m_effectMechanic @XmlAttribute(name = "EffectImplicitTargetA", required = true) public final Signed32[] EffectImplicitTargetA = array(new Signed32[3]); // 86-88 // m_implicitTargetA @XmlAttribute(name = "EffectImplicitTargetB", required = true) public final Signed32[] EffectImplicitTargetB = array(new Signed32[3]); // 89-91 // m_implicitTargetB @XmlAttribute(name = "EffectRadiusIndex", required = true) public final Signed32[] EffectRadiusIndex = array(new Signed32[3]); // 92-94 // m_effectRadiusIndex // - // spellradius.dbc @XmlAttribute(name = "EffectApplyAuraName", required = true) public final Signed32[] EffectApplyAuraName = array(new Signed32[3]); // 95-97 // m_effectAura @XmlAttribute(name = "EffectAmplitude", required = true) public final Signed32[] EffectAmplitude = array(new Signed32[3]); // 98-100 // m_effectAuraPeriod @XmlAttribute(name = "EffectMultipleValue", required = true) public final Float32[] EffectMultipleValue = array(new Float32[3]); // 101-103 // m_effectAmplitude @XmlAttribute(name = "EffectChainTarget", required = true) public final Signed32[] EffectChainTarget = array(new Signed32[3]); // 104-106 // m_effectChainTargets @XmlAttribute(name = "EffectItemType", required = true) public final Signed32[] EffectItemType = array(new Signed32[3]); // 107-109 // m_effectItemType @XmlAttribute(name = "EffectMiscValue", required = true) public final Signed32[] EffectMiscValue = array(new Signed32[3]); // 110-112 // m_effectMiscValue @XmlAttribute(name = "EffectMiscValueB", required = true) public final Signed32[] EffectMiscValueB = array(new Signed32[3]); // 113-115 // m_effectMiscValueB @XmlAttribute(name = "EffectTriggerSpell", required = true) public final Signed32[] EffectTriggerSpell = array(new Signed32[3]); // 116-118 // m_effectTriggerSpell @XmlAttribute(name = "EffectPointsPerComboPoint", required = true) public final Float32[] EffectPointsPerComboPoint = array(new Float32[3]); // 119-121 // m_effectPointsPerCombo @XmlAttribute(name = "EffectSpellClassMaskA", required = true) public final Signed32[] EffectSpellClassMaskA = array(new Signed32[3]); // 122-124 // m_effectSpellClassMaskA, // effect // 0 @XmlAttribute(name = "EffectSpellClassMaskB", required = true) public final Signed32[] EffectSpellClassMaskB = array(new Signed32[3]); // 125-127 // m_effectSpellClassMaskB, // effect // 1 @XmlAttribute(name = "EffectSpellClassMaskC", required = true) public final Signed32[] EffectSpellClassMaskC = array(new Signed32[3]); // 128-130 // m_effectSpellClassMaskC, // effect // 2 @XmlAttribute(name = "SpellVisual", required = true) public final Signed32[] SpellVisual = array(new Signed32[2]); // 131-132 // m_spellVisualID @XmlAttribute(name = "SpellIconID", required = true) public final Signed32 SpellIconID = new Signed32(); // 133 // m_spellIconID @XmlAttribute(name = "activeIconID", required = true) public final Signed32 activeIconID = new Signed32(); // 134 // m_activeIconID public final Signed32 spellPriority = new Signed32(); // 135 // m_spellPriority // not // used @XmlAttribute(name = "SpellName", required = true) public final MultiInternalString SpellName = new MultiInternalString(); @XmlAttribute(name = "Rank", required = true) public final MultiInternalString Rank = new MultiInternalString(); @XmlAttribute(name = "Description") public final MultiInternalString Description = new MultiInternalString(); @XmlAttribute(name = "ToolTipDescription") public final MultiInternalString ToolTip = new MultiInternalString(); @XmlAttribute(name = "ManaCostPercentage", required = true) public final Signed32 ManaCostPercentage = new Signed32(); @XmlAttribute(name = "StartRecoveryCategory", required = true) public final Signed32 StartRecoveryCategory = new Signed32(); @XmlAttribute(name = "StartRecoveryTime", required = true) public final Signed32 StartRecoveryTime = new Signed32(); @XmlAttribute(name = "MaxTargetLevel", required = true) public final Signed32 MaxTargetLevel = new Signed32(); @XmlAttribute(name = "SpellFamilyName", required = true) public final Signed32 SpellFamilyName = new Signed32(); @XmlAttribute(name = "SpellFamilyFlags", required = true) public final Signed32 SpellFamilyFlags = new Signed32(); @XmlAttribute(name = "SpellFamilyFlags2", required = true) public final Signed32 SpellFamilyFlags2 = new Signed32(); @XmlAttribute(name = "MaxAffectedTargets", required = true) public final Signed32 MaxAffectedTargets = new Signed32(); @XmlAttribute(name = "DmgClass", required = true) public final Signed32 DmgClass = new Signed32(); @XmlAttribute(name = "PreventionType", required = true) public final Signed32 PreventionType = new Signed32(); @XmlAttribute(name = "StanceBarOrder") public final Signed32 StanceBarOrder = new Signed32(); @XmlAttribute(name = "DmgMultiplier", required = true) public final Float32[] DmgMultiplier = array(new Float32[3]); @XmlAttribute(name = "MinFactionId") public final Signed32 MinFactionId = new Signed32(); // 219 @XmlAttribute(name = "MinReputation") public final Signed32 MinReputation = new Signed32(); // 220 @XmlAttribute(name = "RequiredAuraVision") public final Signed32 RequiredAuraVision = new Signed32(); // 221 @XmlAttribute(name = "TotemCategory", required = true) public final Signed32[] TotemCategory = array(new Signed32[2]); // 222-223 @XmlAttribute(name = "AreaGroupId", required = true) public final Signed32 AreaGroupId = new Signed32(); // 224 @XmlAttribute(name = "SchoolMask", required = true) public final Signed32 SchoolMask = new Signed32(); // 225 // m_schoolMask @XmlAttribute(name = "runeCostID", required = true) public final Signed32 runeCostID = new Signed32(); // 226 // m_runeCostID @XmlAttribute(name = "spellMissileID") public final Signed32 spellMissileID = new Signed32(); // 227 @XmlAttribute(name = "PowerDisplayId") public final Signed32 PowerDisplayId = new Signed32(); // 228 @XmlAttribute(name = "unk_320_4") public final Float32[] unk_320_4 = array(new Float32[3]); // 229-231 // 3.2.0 @XmlAttribute(name = "spellDescriptionVariableID") public final Signed32 spellDescriptionVariableID = new Signed32(); // 232 @XmlAttribute(name = "SpellDifficultyId") public final Signed32 SpellDifficultyId = new Signed32(); // 233 // 3.3.0 }