diff options
-rw-r--r-- | sql/FULL/world_spell_full.sql | 270 | ||||
-rw-r--r-- | sql/updates/4500_world_spell_bonus_data.sql | 246 | ||||
-rw-r--r-- | sql/updates/4501_world_spell_bonus_data.sql | 31 | ||||
-rw-r--r-- | sql/world.sql | 299 | ||||
-rw-r--r-- | src/game/SharedDefines.h | 2 | ||||
-rw-r--r-- | src/game/Spell.cpp | 3 | ||||
-rw-r--r-- | src/game/SpellAuras.cpp | 66 | ||||
-rw-r--r-- | src/game/SpellAuras.h | 1 | ||||
-rw-r--r-- | src/game/SpellEffects.cpp | 78 | ||||
-rw-r--r-- | src/game/SpellMgr.cpp | 22 | ||||
-rw-r--r-- | src/game/SpellMgr.h | 3 | ||||
-rw-r--r-- | src/game/Unit.cpp | 32 |
12 files changed, 595 insertions, 458 deletions
diff --git a/sql/FULL/world_spell_full.sql b/sql/FULL/world_spell_full.sql index c8bdfd74594..cde8cd16655 100644 --- a/sql/FULL/world_spell_full.sql +++ b/sql/FULL/world_spell_full.sql @@ -33,7 +33,6 @@ INSERT INTO `spell_linked_spell` (`spell_trigger`, `spell_effect`, `type`, `comm (-49011, 49009, 0, 'Wyvern Sting'), (-49012, 49010, 0, 'Wyvern Sting'), ( 47585, 60069, 0, 'Dispersion (transform/regen)'), -# (-47953, 60406, 0, 'Divine hymn buff to enemies'), removed in 313 ( 48265, 49772, 2, 'Unholy Presence'), ( 49772, 55222, 2, 'Unholy Presence'), ( 48263, 61261, 2, 'Frost Presence'), @@ -73,6 +72,7 @@ INSERT INTO `spell_linked_spell` (`spell_trigger`, `spell_effect`, `type`, `comm (48395, 50171, 2, 'Improved Moonkin Form'), (48396, 50172, 2, 'Improved Moonkin Form'), ( 20594, 65116, 2, 'Stoneform'), +( 1038, 53055, 2, 'Hand of Salvation'), -- Creature ( 36574, 36650, 0, 'Apply Phase Slip Vulnerability'), @@ -1526,6 +1526,274 @@ INSERT INTO spell_enchant_proc_data (`entry`, `customChance`, `PPMChance`,`procE (3769, 0, 8.53,0); -- -------- +-- SPELL BONUS DATA +-- -------- +TRUNCATE TABLE `spell_bonus_data`; +INSERT INTO `spell_bonus_data` (`entry`, `direct_bonus`, `dot_bonus`, `ap_bonus`, `ap_dot_bonus`, `comments`) VALUES +(49941, -1, -1, 0.04, -1, 'Death Knight - Blood Boil'), +(48721, -1, -1, 0.04, -1, 'Death Knight - Blood Boil'), +(55078, -1, -1, -1, 0.055, 'Death Knight - Blood Plague'), +(50444, -1, -1, 0.105, -1, 'Death Knight - Corpse Explosion Triggered'), +(52212, -1, -1, 0.0475, -1, 'Death Knight - Death and Decay'), +(47632, -1, -1, 0.15, -1, 'Death Knight - Death Coil'), +(47633, -1, -1, 0.15, -1, 'Death Knight - Death Coil Heal'), +(55095, -1, -1, -1, 0.055, 'Death Knight - Frost Fever'), +(49184, -1, -1, 0.1, -1, 'Death Knight - Howling Blast'), +(45477, -1, -1, 0.1, -1, 'Death Knight - Icy Touch'), +(56903, 0, 0, 0, 0, 'Death Knight - Lichflame'), +(50842, -1, -1, 0.04, -1, 'Death Knight - Pestilence'), +(50401, 0, 0, 0, 0, 'Death Knight - Razor Frost'), +(47476, -1, -1, 0.06, -1, 'Death Knight - Strangulate'), +(50536, -1, -1, 0.013, -1, 'Death Knight - Unholy Blight (Rank1)'), +(339, -1, 0.1, -1, -1, 'Druid - Entangling Roots'), +(5185, 1.611, -1, -1, -1, 'Druid - Healing Touch'), +(42231, 0.12898, -1, -1, -1, 'Druid - Hurricane Triggered'), +(5570, -1, 0.2, -1, -1, 'Druid - Insect Swarm'), +(33763, 0.6453, 0.09518, -1, -1, 'Druid - Lifebloom'), +(8921, 0.1515, 0.13, -1, -1, 'Druid - Moonfire'), +(50464, 0.67305, -1, -1, -1, 'Druid - Nourish'), +(8936, 0.539, 0.188, -1, -1, 'Druid - Regrowth'), +(774, -1, 0.37604, -1, -1, 'Druid - Rejuvenation'), +(50294, 0.0119, -1, -1, -1, 'Druid - Starfall AOE rank 1'), +(53188, 0.0119, -1, -1, -1, 'Druid - Starfall AOE rank 2'), +(53189, 0.0119, -1, -1, -1, 'Druid - Starfall AOE rank 3'), +(53190, 0.0119, -1, -1, -1, 'Druid - Starfall AOE rank 4'), +(50288, 0.0458, -1, -1, -1, 'Druid - Starfall rank 1'), +(53191, 0.0458, -1, -1, -1, 'Druid - Starfall rank 2'), +(53194, 0.0458, -1, -1, -1, 'Druid - Starfall rank 3'), +(53195, 0.0458, -1, -1, -1, 'Druid - Starfall rank 4'), +(2912, 1, -1, -1, -1, 'Druid - Starfire'), +(18562, 0, 0, 0, 0, 'Druid - Swiftmend'), +(44203, 0.538, -1, -1, -1, 'Druid - Tranquility Triggered'), +(61391, 0.193, -1, -1, -1, 'Druid - Typhoon'), +(48438, -1, 0.11505, -1, -1, 'Druid - Wild Growth'), +(5176, 0.5714, -1, -1, -1, 'Druid - Wrath'), +(55039, 0, 0, 0, 0, 'Item - Gnomish Lightning Generator'), +(44425, 0.7143, -1, -1, -1, 'Mage - Arcane Barrage'), +(30451, 0.7143, -1, -1, -1, 'Mage - Arcane Blast'), +(1449, 0.2128, -1, -1, -1, 'Mage - Arcane Explosion'), +(7268, 0.2857, -1, -1, -1, 'Mage - Arcane Missiles Triggered Spell Rank 1'), +(7269, 0.2857, -1, -1, -1, 'Mage - Arcane Missiles Triggered Spell Rank 2'), +(11113, 0.1936, -1, -1, -1, 'Mage - Blast Wave'), +(42208, 0.1437, -1, -1, -1, 'Mage - Blizzard Triggered Spell'), +(120, 0.214, -1, -1, -1, 'Mage - Cone of Cold'), +(31661, 0.1936, -1, -1, -1, 'Mage - Dragons Breath'), +(133, 1, -1, -1, -1, 'Mage - Fire Ball'), +(2136, 0.4286, -1, -1, -1, 'Mage - Fire Blast'), +(543, 0.1, -1, -1, -1, 'Mage - Fire Ward'), +(2120, 0.2357, 0.122, -1, -1, 'Mage - Flamestrike'), +(116, 0.8143, -1, -1, -1, 'Mage - Frost Bolt'), +(122, 0.193, -1, -1, -1, 'Mage - Frost Nova'), +(6143, 0.1, -1, -1, -1, 'Mage - Frost Ward'), +(44614, 0.8571, -1, -1, -1, 'Mage - Frostfire Bolt'), +(11426, 0.8053, -1, -1, -1, 'Mage - Ice Barrier'), +(30455, 0.1429, -1, -1, -1, 'Mage - Ice Lance'), +(44457, 0.4, 0.2, -1, -1, 'Mage - Living Bomb'), +(1463, 0.8053, -1, -1, -1, 'Mage - Mana Shield'), +(34913, 0, 0, 0, 0, 'Mage - Molten Armor Triggered Rank 1'), +(11366, 1.15, 0.05, -1, -1, 'Mage - Pyroblast'), +(2948, 0.4286, -1, -1, -1, 'Mage - Scorch'), +(31935, 0.07, -1, 0.07, -1, 'Paladin - Avenger Shield'), +(53742, -1, 0.0176, -1, 0.03, 'Paladin - Blood Corruption'), +(26573, -1, 0.04, -1, 0.04, 'Paladin - Consecration'), +(879, 0.15, -1, 0.15, -1, 'Paladin - Exorcism'), +(19750, 1, -1, -1, -1, 'Paladin - Flash of Light'), +(53595, 0, 0, 0, 0, 'Paladin - Hammer of the Righteous'), +(24275, 0.15, -1, 0.15, -1, 'Paladin - Hammer of Wrath'), +(635, 1.66, -1, -1, -1, 'Paladin - Holy Light'), +(20925, 0.09, -1, 0.056, -1, 'Paladin - Holy Shield'), +(25914, 0.81, -1, -1, -1, 'Paladin - Holy Shock Triggered Heal Rank 1'), +(25912, 0.4286, -1, -1, -1, 'Paladin - Holy Shock Triggered Hurt Rank 1'), +(31803, -1, 0.0176, -1, 0.03, 'Paladin - Holy Vengeance'), +(2812, 0.07, -1, 0.07, -1, 'Paladin - Holy Wrath'), +(31898, 0.25, -1, 0.16, -1, 'Paladin - Judgement of Blood Enemy'), +(32220, 0.0833, -1, 0.0533, -1, 'Paladin - Judgement of Blood Self'), +(20467, 0.25, -1, 0.16, -1, 'Paladin - Judgement of Command'), +(53733, 0, 0, 0, 0, 'Paladin - Judgement of Corruption'), +(20267, 0.1, -1, 0.1, -1, 'Paladin - Judgement of Light Proc'), +(20187, 0.4, -1, 0.25, -1, 'Paladin - Judgement of Righteousness'), +(53726, 0.25, -1, 0.16, -1, 'Paladin - Judgement of the Martyr Enemy'), +(53725, 0.0833, -1, 0.0533, -1, 'Paladin - Judgement of the Martyr Self'), +(31804, 0, 0, 0, 0, 'Paladin - Judgement of Vengeance'), +(58597, 0.75, -1, -1, -1, 'Paladin - Sacred Shield'), +(53601, 0.75, -1, -1, -1, 'Paladin - Sacred Shield'), +(31893, 0, 0, 0, 0, 'Paladin - Seal of Blood Proc Enemy'), +(32221, 0, 0, 0, 0, 'Paladin - Seal of Blood Proc Self'), +(20424, 0, 0, 0, 0, 'Paladin - Seal of Command Proc'), +(20167, 0.15, -1, 0.15, -1, 'Paladin - Seal of Light Proc'), +(25742, 0.07, -1, 0.039, -1, 'Paladin - Seal of Righteousness Dummy Proc'), +(53719, 0, 0, 0, 0, 'Paladin - Seal of the Martyr Proc Enemy'), +(53718, 0, 0, 0, 0, 'Paladin - Seal of the Martyr Proc Self'), +(53600, 0, 0, 0, 0, 'Paladin - Shield of Righteousness'), +(32546, 0.8068, -1, -1, -1, 'Priest - Binding Heal'), +(27813, 0, 0, 0, 0, 'Priest - Blessed Recovery Rank 1'), +(34861, 0.402, -1, -1, -1, 'Priest - Circle of Healing'), +(19236, 0.8068, -1, -1, -1, 'Priest - Desperate Prayer'), +(2944, -1, 0.1849, -1, -1, 'Priest - Devouring Plague'), +(2061, 0.8068, -1, -1, -1, 'Priest - Flash Heal'), +(2060, 1.6135, -1, -1, -1, 'Priest - Greater Heal'), +(14914, 0.5711, 0.024, -1, -1, 'Priest - Holy Fire'), +(15237, 0.1606, -1, -1, -1, 'Priest - Holy Nova Damage'), +(23455, 0.3035, -1, -1, -1, 'Priest - Holy Nova Heal Rank 1'), +(8129, 0, 0, 0, 0, 'Priest - Mana Burn'), +(8092, 0.428, -1, -1, -1, 'Priest - Mind Blast'), +(15407, 0.257, -1, -1, -1, 'Priest - Mind Flay'), +(49821, 0.2861, -1, -1, -1, 'Priest - Mind Sear Trigger Rank 1'), +(47757, 1.6135, -1, -1, -1, 'Priest - Penance (Rank 1'), +(52986, 1.6135, -1, -1, -1, 'Priest - Penance (Rank 2'), +(52987, 1.6135, -1, -1, -1, 'Priest - Penance (Rank 3'), +(52988, 1.6135, -1, -1, -1, 'Priest - Penance (Rank 4'), +(17, 0.8068, -1, -1, -1, 'Priest - Power Word: Shield'), +(596, 0.8068, -1, -1, -1, 'Priest - Prayer of Healing'), +(33110, 0.8068, -1, -1, -1, 'Priest - Prayer of Mending Heal Proc'), +(33619, 0, 0, 0, 0, 'Priest - Reflective Shield'), +(139, -1, 0.376, -1, -1, 'Priest - Renew'), +(32379, 0.4296, -1, -1, -1, 'Priest - Shadow Word: Death'), +(589, -1, 0.1829, -1, -1, 'Priest - Shadow Word: Pain'), +(34433, 0.65, -1, -1, -1, 'Priest - Shadowfiend'), +(585, 0.714, -1, -1, -1, 'Priest - Smite'), +(34914, -1, 0.4, -1, -1, 'Priest - Vampiric Touch'), +(1064, 1.34, -1, -1, -1, 'Shaman - Chain Heal'), +(421, 0.57, -1, -1, -1, 'Shaman - Chain Lightning'), +(974, 0.4762, -1, -1, -1, 'Shaman - Earth Shield'), +(379, 0, 0, 0, 0, 'Shaman - Earth Shield Triggered'), +(8042, 0.3858, -1, -1, -1, 'Shaman - Earth Shock'), +(8443, 0.2142, -1, -1, -1, 'Shaman - Fire Nova Totem Casted by Totem Rank 1'), +(8504, 0.2142, -1, -1, -1, 'Shaman - Fire Nova Totem Casted by Totem Rank 2'), +(8505, 0.2142, -1, -1, -1, 'Shaman - Fire Nova Totem Casted by Totem Rank 3'), +(11310, 0.2142, -1, -1, -1, 'Shaman - Fire Nova Totem Casted by Totem Rank 4'), +(11311, 0.2142, -1, -1, -1, 'Shaman - Fire Nova Totem Casted by Totem Rank 5'), +(25538, 0.2142, -1, -1, -1, 'Shaman - Fire Nova Totem Casted by Totem Rank 6'), +(25539, 0.2142, -1, -1, -1, 'Shaman - Fire Nova Totem Casted by Totem Rank 7'), +(61651, 0.2142, -1, -1, -1, 'Shaman - Fire Nova Totem Casted by Totem Rank 8'), +(61660, 0.2142, -1, -1, -1, 'Shaman - Fire Nova Totem Casted by Totem Rank 9'), +(8050, 0.2142, 0.1, -1, -1, 'Shaman - Flame Shock'), +(8026, 0.1, -1, -1, -1, 'Shaman - Flametongue Weapon Proc Rank 1'), +(58788, 0.1, -1, -1, -1, 'Shaman - Flametongue Weapon Proc Rank 10'), +(8028, 0.1, -1, -1, -1, 'Shaman - Flametongue Weapon Proc Rank 2'), +(8029, 0.1, -1, -1, -1, 'Shaman - Flametongue Weapon Proc Rank 3'), +(10445, 0.1, -1, -1, -1, 'Shaman - Flametongue Weapon Proc Rank 4'), +(16343, 0.1, -1, -1, -1, 'Shaman - Flametongue Weapon Proc Rank 5'), +(16344, 0.1, -1, -1, -1, 'Shaman - Flametongue Weapon Proc Rank 6'), +(25488, 0.1, -1, -1, -1, 'Shaman - Flametongue Weapon Proc Rank 7'), +(58786, 0.1, -1, -1, -1, 'Shaman - Flametongue Weapon Proc Rank 8'), +(58787, 0.1, -1, -1, -1, 'Shaman - Flametongue Weapon Proc Rank 9'), +(8056, 0.3858, -1, -1, -1, 'Shaman - Frost Shock'), +(8034, 0.1, -1, -1, -1, 'Shaman - Frostbrand Attack Rank 1'), +(8037, 0.1, -1, -1, -1, 'Shaman - Frostbrand Attack Rank 2'), +(10458, 0.1, -1, -1, -1, 'Shaman - Frostbrand Attack Rank 3'), +(16352, 0.1, -1, -1, -1, 'Shaman - Frostbrand Attack Rank 4'), +(16353, 0.1, -1, -1, -1, 'Shaman - Frostbrand Attack Rank 5'), +(25501, 0.1, -1, -1, -1, 'Shaman - Frostbrand Attack Rank 6'), +(58797, 0.1, -1, -1, -1, 'Shaman - Frostbrand Attack Rank 7'), +(58798, 0.1, -1, -1, -1, 'Shaman - Frostbrand Attack Rank 8'), +(58799, 0.1, -1, -1, -1, 'Shaman - Frostbrand Attack Rank 9'), +(2645, 0, 0, 0, 0, 'Shaman - Glyph of Ghost Wolf'), +(52042, 0.045, -1, -1, -1, 'Shaman - Healing Stream Totem Triggered Heal'), +(331, 1.6106, -1, -1, -1, 'Shaman - Healing Wave'), +(51505, 0.5714, -1, -1, -1, 'Shaman - Lava Burst'), +(8004, 0.8082, -1, -1, -1, 'Shaman - Lesser Healing Wave'), +(403, 0.7143, -1, -1, -1, 'Shaman - Lightning Bolt'), +(26364, 0.33, -1, -1, -1, 'Shaman - Lightning Shield Proc Rank 1'), +(8188, 0.1, -1, -1, -1, 'Shaman - Magma Totam Passive Rank 1'), +(10582, 0.1, -1, -1, -1, 'Shaman - Magma Totam Passive Rank 2'), +(10583, 0.1, -1, -1, -1, 'Shaman - Magma Totam Passive Rank 3'), +(10584, 0.1, -1, -1, -1, 'Shaman - Magma Totam Passive Rank 4'), +(25551, 0.1, -1, -1, -1, 'Shaman - Magma Totam Passive Rank 5'), +(58733, 0.1, -1, -1, -1, 'Shaman - Magma Totam Passive Rank 6'), +(58736, 0.1, -1, -1, -1, 'Shaman - Magma Totam Passive Rank 7'), +(61295, 0.4, 0.18, -1, -1, 'Shaman - Riptide'), +(3606, 0.1667, -1, -1, -1, 'Shaman - Searing Totem Attack Rank 1'), +(58702, 0.1667, -1, -1, -1, 'Shaman - Searing Totem Attack Rank 10'), +(6350, 0.1667, -1, -1, -1, 'Shaman - Searing Totem Attack Rank 2'), +(6351, 0.1667, -1, -1, -1, 'Shaman - Searing Totem Attack Rank 3'), +(6352, 0.1667, -1, -1, -1, 'Shaman - Searing Totem Attack Rank 4'), +(10435, 0.1667, -1, -1, -1, 'Shaman - Searing Totem Attack Rank 5'), +(10436, 0.1667, -1, -1, -1, 'Shaman - Searing Totem Attack Rank 6'), +(25530, 0.1667, -1, -1, -1, 'Shaman - Searing Totem Attack Rank 7'), +(58700, 0.1667, -1, -1, -1, 'Shaman - Searing Totem Attack Rank 8'), +(58701, 0.1667, -1, -1, -1, 'Shaman - Searing Totem Attack Rank 9'), +(50796, 0.7139, -1, -1, -1, 'Warlock - Chaos Bolt'), +(17962, 0, 0, 0, 0, 'Warlock - Conflagrate'), +(172, -1, 0.2, -1, -1, 'Warlock - Corruption'), +(980, -1, 0.1, -1, -1, 'Warlock - Curse of Agony'), +(603, -1, 2, -1, -1, 'Warlock - Curse of Doom'), +(18220, 0.96, -1, -1, -1, 'Warlock - Dark Pact Rank 1'), +(6789, 0.214, -1, -1, -1, 'Warlock - Death Coil'), +(689, -1, 0.143, -1, -1, 'Warlock - Drain Life'), +(5138, 0, 0, 0, 0, 'Warlock - Drain Mana'), +(1120, -1, 0.429, -1, -1, 'Warlock - Drain Soul'), +(28176, 0, 0, 0, 0, 'Warlock - Fel Armor'), +(18790, 0, 0, 0, 0, 'Warlock - Fel Stamina'), +(48181, 0.4793, -1, -1, -1, 'Warlock - Haunt'), +(755, -1, 0.4485, -1, -1, 'Warlock - Health Funnel'), +(1949, -1, 0.0949, -1, -1, 'Warlock - Hellfire'), +(5857, 0.145, -1, -1, -1, 'Warlock - Hellfire Effect on Enemy Rank 1'), +(348, 0.2, 0.2, -1, -1, 'Warlock - Immolate'), +(29722, 0.7139, -1, -1, -1, 'Warlock - Incinerate'), +(42223, 0.286, -1, -1, -1, 'Warlock - Rain of Fire Triggered Rank 1'), +(5676, 0.4293, -1, -1, -1, 'Warlock - Searing Pain'), +(27243, 0.2129, 0.25, -1, -1, 'Warlock - Seed of Corruption'), +(686, 0.8569, -1, -1, -1, 'Warlock - Shadow Bolt'), +(6229, 0.3, -1, -1, -1, 'Warlock - Shadow Ward'), +(17877, 0.4293, -1, -1, -1, 'Warlock - Shadowburn'), +(47960, 0.1064, 0.0667, -1, -1, 'Warlock - Shadowflame Rank 1'), +(61291, 0.1064, 0.0667, -1, -1, 'Warlock - Shadowflame Rank 2'), +(30283, 0.1932, -1, -1, -1, 'Warlock - Shadowfury'), +(63106, 0, 0, 0, 0, 'Warlock - Siphon Life Triggered'), +(6353, 1.15, -1, -1, -1, 'Warlock - Soul Fire'), +(30294, 0, 0, 0, 0, 'Warlock - Soul Leech'), +(30108, -1, 0.2, -1, -1, 'Warlock - Unstable Affliction'), +(31117, 1.8, -1, -1, -1, 'Warlock - Unstable Affliction Dispell'), +(54158, 0.25, -1, 0.16, -1, 'Paladin - Jugdement (Seal of Light, Seal of Wisdom, Seal of Justice)'), +(60089, -1, -1, 0.05, -1, 'Faerie Fire (feral)'), +(58621, -1, -1, 0.08, -1, 'Death Knight - Glyph of Chains of Ice'), +(13797, -1, -1, -1, 0.02, 'Hunter - Immolation Trap($RAP*0.1 / number of ticks)'), +(3674, -1, -1, -1, 0.02, 'Hunter - Black Arrow($RAP*0.1 / number of ticks)'), +(1978, -1, -1, -1, 0.04, 'Hunter - Serpent Sting($RAP*0.2 / number of ticks)'), +(703, -1, -1, -1, 0.02, 'Rogue - Garrote'), +(2818, -1, -1, -1, 0.03, 'Rogue - Deadly Poison Rank 1($AP*0.12 / number of ticks)'), +(2819, -1, -1, -1, 0.03, 'Rogue - Deadly Poison Rank 2($AP*0.12 / number of ticks)'), +(11353, -1, -1, -1, 0.03, 'Rogue - Deadly Poison Rank 3($AP*0.12 / number of ticks)'), +(11354, -1, -1, -1, 0.03, 'Rogue - Deadly Poison Rank 4($AP*0.12 / number of ticks)'), +(25349, -1, -1, -1, 0.03, 'Rogue - Deadly Poison Rank 5($AP*0.12 / number of ticks)'), +(26968, -1, -1, -1, 0.03, 'Rogue - Deadly Poison Rank 6($AP*0.12 / number of ticks)'), +(27187, -1, -1, -1, 0.03, 'Rogue - Deadly Poison Rank 7($AP*0.12 / number of ticks)'), +(57969, -1, -1, -1, 0.03, 'Rogue - Deadly Poison Rank 8($AP*0.12 / number of ticks)'), +(57970, -1, -1, -1, 0.03, 'Rogue - Deadly Poison Rank 9($AP*0.12 / number of ticks)'), +(48628, -1, -1, -1, 0.15, 'Druid - Lock Jaw'), +(1822, -1, -1, -1, 0.06, 'Druid - Rake ($AP*0.18 / number of ticks)'), +(33745, -1, -1, -1, 0.01, 'Druid - Lacerate($AP*0.05 / number of ticks)'), +(6572, -1, -1, 0.207, -1, 'Warrior - Revenge'), +(57755, -1, -1, 0.5, -1, 'Warrior - Heroic Throw'), +(6343, -1, -1, 0.12, -1, 'Warrior - Thunder Clap'), +(50256, -1, -1, 0.08, -1, 'Druid - Swipe'), +(1776, -1, -1, 0.21, -1, 'Rogue - Gouge'), +(8680, -1, -1, 0.1, -1, 'Rogue - Instant Poison Rank 1'), +(8685, -1, -1, 0.1, -1, 'Rogue - Instant Poison Rank 2'), +(8689, -1, -1, 0.1, -1, 'Rogue - Instant Poison Rank 3'), +(11335, -1, -1, 0.1, -1, 'Rogue - Instant Poison Rank 4'), +(11336, -1, -1, 0.1, -1, 'Rogue - Instant Poison Rank 5'), +(11337, -1, -1, 0.1, -1, 'Rogue - Instant Poison Rank 6'), +(26890, -1, -1, 0.1, -1, 'Rogue - Instant Poison Rank 7'), +(57964, -1, -1, 0.1, -1, 'Rogue - Instant Poison Rank 8'), +(57965, -1, -1, 0.1, -1, 'Rogue - Instant Poison Rank 9'), +(13218, -1, -1, 0.04, -1, 'Rogue - Wound Poison Rank 1'), +(13222, -1, -1, 0.04, -1, 'Rogue - Wound Poison Rank 2'), +(13223, -1, -1, 0.04, -1, 'Rogue - Wound Poison Rank 3'), +(13224, -1, -1, 0.04, -1, 'Rogue - Wound Poison Rank 4'), +(27189, -1, -1, 0.04, -1, 'Rogue - Wound Poison Rank 5'), +(57974, -1, -1, 0.04, -1, 'Rogue - Wound Poison Rank 6'), +(57975, -1, -1, 0.04, -1, 'Rogue - Wound Poison Rank 7'), +(1495, -1, -1, 0.2, -1, 'Hunter - Mongoose Bite'), +(19306, -1, -1, 0.2, -1, 'Hunter - Counterattack'), +(3044, -1, -1, 0.15, -1, 'Hunter - Arcane Shot'), +(56641, -1, -1, 0.1, -1, 'Hunter - Steady Shot'), +(13812, -1, -1, 0.1, -1, 'Hunter - Explosive Trap Effect'), +(20253, -1, -1, 0.12, -1, 'Warrior - Intercept'), +(61491, -1, -1, 0.12, -1, 'Warrior - Intercept'); + +-- -------- -- SPELL AFFECT -- -------- diff --git a/sql/updates/4500_world_spell_bonus_data.sql b/sql/updates/4500_world_spell_bonus_data.sql new file mode 100644 index 00000000000..2b8084e8cc7 --- /dev/null +++ b/sql/updates/4500_world_spell_bonus_data.sql @@ -0,0 +1,246 @@ +DROP TABLE IF EXISTS `spell_bonus_data`; +CREATE TABLE `spell_bonus_data` ( + `entry` smallint(5) unsigned NOT NULL, + `direct_bonus` float NOT NULL default '0', + `dot_bonus` float NOT NULL default '0', + `ap_bonus` float NOT NULL default '0', + `ap_dot_bonus` float NOT NULL default '0', + `comments` varchar(255) default NULL, + PRIMARY KEY (`entry`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; +INSERT INTO `spell_bonus_data` (`entry`, `direct_bonus`, `dot_bonus`, `ap_bonus`, `ap_dot_bonus`, `comments`) VALUES +(49941, -1, -1, 0.04, -1, 'Death Knight - Blood Boil'), +(48721, -1, -1, 0.04, -1, 'Death Knight - Blood Boil'), +(55078, -1, -1, -1, 0.055, 'Death Knight - Blood Plague'), +(50444, -1, -1, 0.105, -1, 'Death Knight - Corpse Explosion Triggered'), +(52212, -1, -1, 0.0475, -1, 'Death Knight - Death and Decay'), +(47632, -1, -1, 0.15, -1, 'Death Knight - Death Coil'), +(47633, -1, -1, 0.15, -1, 'Death Knight - Death Coil Heal'), +(55095, -1, -1, -1, 0.055, 'Death Knight - Frost Fever'), +(49184, -1, -1, 0.1, -1, 'Death Knight - Howling Blast'), +(45477, -1, -1, 0.1, -1, 'Death Knight - Icy Touch'), +(56903, 0, 0, 0, 0, 'Death Knight - Lichflame'), +(50842, -1, -1, 0.04, -1, 'Death Knight - Pestilence'), +(50401, 0, 0, 0, 0, 'Death Knight - Razor Frost'), +(47476, -1, -1, 0.06, -1, 'Death Knight - Strangulate'), +(50536, -1, -1, 0.013, -1, 'Death Knight - Unholy Blight (Rank1)'), +(339, -1, 0.1, -1, -1, 'Druid - Entangling Roots'), +(5185, 1.611, -1, -1, -1, 'Druid - Healing Touch'), +(42231, 0.12898, -1, -1, -1, 'Druid - Hurricane Triggered'), +(5570, -1, 0.2, -1, -1, 'Druid - Insect Swarm'), +(33763, 0.6453, 0.09518, -1, -1, 'Druid - Lifebloom'), +(8921, 0.1515, 0.13, -1, -1, 'Druid - Moonfire'), +(50464, 0.67305, -1, -1, -1, 'Druid - Nourish'), +(8936, 0.539, 0.188, -1, -1, 'Druid - Regrowth'), +(774, -1, 0.37604, -1, -1, 'Druid - Rejuvenation'), +(50294, 0.0119, -1, -1, -1, 'Druid - Starfall AOE rank 1'), +(53188, 0.0119, -1, -1, -1, 'Druid - Starfall AOE rank 2'), +(53189, 0.0119, -1, -1, -1, 'Druid - Starfall AOE rank 3'), +(53190, 0.0119, -1, -1, -1, 'Druid - Starfall AOE rank 4'), +(50288, 0.0458, -1, -1, -1, 'Druid - Starfall rank 1'), +(53191, 0.0458, -1, -1, -1, 'Druid - Starfall rank 2'), +(53194, 0.0458, -1, -1, -1, 'Druid - Starfall rank 3'), +(53195, 0.0458, -1, -1, -1, 'Druid - Starfall rank 4'), +(2912, 1, -1, -1, -1, 'Druid - Starfire'), +(18562, 0, 0, 0, 0, 'Druid - Swiftmend'), +(44203, 0.538, -1, -1, -1, 'Druid - Tranquility Triggered'), +(61391, 0.193, -1, -1, -1, 'Druid - Typhoon'), +(48438, -1, 0.11505, -1, -1, 'Druid - Wild Growth'), +(5176, 0.5714, -1, -1, -1, 'Druid - Wrath'), +(55039, 0, 0, 0, 0, 'Item - Gnomish Lightning Generator'), +(44425, 0.7143, -1, -1, -1, 'Mage - Arcane Barrage'), +(30451, 0.7143, -1, -1, -1, 'Mage - Arcane Blast'), +(1449, 0.2128, -1, -1, -1, 'Mage - Arcane Explosion'), +(7268, 0.2857, -1, -1, -1, 'Mage - Arcane Missiles Triggered Spell Rank 1'), +(7269, 0.2857, -1, -1, -1, 'Mage - Arcane Missiles Triggered Spell Rank 2'), +(11113, 0.1936, -1, -1, -1, 'Mage - Blast Wave'), +(42208, 0.1437, -1, -1, -1, 'Mage - Blizzard Triggered Spell'), +(120, 0.214, -1, -1, -1, 'Mage - Cone of Cold'), +(31661, 0.1936, -1, -1, -1, 'Mage - Dragons Breath'), +(133, 1, -1, -1, -1, 'Mage - Fire Ball'), +(2136, 0.4286, -1, -1, -1, 'Mage - Fire Blast'), +(543, 0.1, -1, -1, -1, 'Mage - Fire Ward'), +(2120, 0.2357, 0.122, -1, -1, 'Mage - Flamestrike'), +(116, 0.8143, -1, -1, -1, 'Mage - Frost Bolt'), +(122, 0.193, -1, -1, -1, 'Mage - Frost Nova'), +(6143, 0.1, -1, -1, -1, 'Mage - Frost Ward'), +(44614, 0.8571, -1, -1, -1, 'Mage - Frostfire Bolt'), +(11426, 0.8053, -1, -1, -1, 'Mage - Ice Barrier'), +(30455, 0.1429, -1, -1, -1, 'Mage - Ice Lance'), +(44457, 0.4, 0.2, -1, -1, 'Mage - Living Bomb'), +(1463, 0.8053, -1, -1, -1, 'Mage - Mana Shield'), +(34913, 0, 0, 0, 0, 'Mage - Molten Armor Triggered Rank 1'), +(11366, 1.15, 0.05, -1, -1, 'Mage - Pyroblast'), +(2948, 0.4286, -1, -1, -1, 'Mage - Scorch'), +(31935, 0.07, -1, 0.07, -1, 'Paladin - Avenger Shield'), +(53742, -1, 0.0176, -1, 0.03, 'Paladin - Blood Corruption'), +(26573, -1, 0.04, -1, 0.04, 'Paladin - Consecration'), +(879, 0.15, -1, 0.15, -1, 'Paladin - Exorcism'), +(19750, 1, -1, -1, -1, 'Paladin - Flash of Light'), +(53595, 0, 0, 0, 0, 'Paladin - Hammer of the Righteous'), +(24275, 0.15, -1, 0.15, -1, 'Paladin - Hammer of Wrath'), +(635, 1.66, -1, -1, -1, 'Paladin - Holy Light'), +(20925, 0.09, -1, 0.056, -1, 'Paladin - Holy Shield'), +(25914, 0.81, -1, -1, -1, 'Paladin - Holy Shock Triggered Heal Rank 1'), +(25912, 0.4286, -1, -1, -1, 'Paladin - Holy Shock Triggered Hurt Rank 1'), +(31803, -1, 0.0176, -1, 0.03, 'Paladin - Holy Vengeance'), +(2812, 0.07, -1, 0.07, -1, 'Paladin - Holy Wrath'), +(31898, 0.25, -1, 0.16, -1, 'Paladin - Judgement of Blood Enemy'), +(32220, 0.0833, -1, 0.0533, -1, 'Paladin - Judgement of Blood Self'), +(20467, 0.25, -1, 0.16, -1, 'Paladin - Judgement of Command'), +(53733, 0, 0, 0, 0, 'Paladin - Judgement of Corruption'), +(20267, 0.1, -1, 0.1, -1, 'Paladin - Judgement of Light Proc'), +(20187, 0.4, -1, 0.25, -1, 'Paladin - Judgement of Righteousness'), +(53726, 0.25, -1, 0.16, -1, 'Paladin - Judgement of the Martyr Enemy'), +(53725, 0.0833, -1, 0.0533, -1, 'Paladin - Judgement of the Martyr Self'), +(31804, 0, 0, 0, 0, 'Paladin - Judgement of Vengeance'), +(58597, 0.75, -1, -1, -1, 'Paladin - Sacred Shield'), +(53601, 0.75, -1, -1, -1, 'Paladin - Sacred Shield'), +(31893, 0, 0, 0, 0, 'Paladin - Seal of Blood Proc Enemy'), +(32221, 0, 0, 0, 0, 'Paladin - Seal of Blood Proc Self'), +(20424, 0, 0, 0, 0, 'Paladin - Seal of Command Proc'), +(20167, 0.15, -1, 0.15, -1, 'Paladin - Seal of Light Proc'), +(25742, 0.07, -1, 0.039, -1, 'Paladin - Seal of Righteousness Dummy Proc'), +(53719, 0, 0, 0, 0, 'Paladin - Seal of the Martyr Proc Enemy'), +(53718, 0, 0, 0, 0, 'Paladin - Seal of the Martyr Proc Self'), +(53600, 0, 0, 0, 0, 'Paladin - Shield of Righteousness'), +(32546, 0.8068, -1, -1, -1, 'Priest - Binding Heal'), +(27813, 0, 0, 0, 0, 'Priest - Blessed Recovery Rank 1'), +(34861, 0.402, -1, -1, -1, 'Priest - Circle of Healing'), +(19236, 0.8068, -1, -1, -1, 'Priest - Desperate Prayer'), +(2944, -1, 0.1849, -1, -1, 'Priest - Devouring Plague'), +(2061, 0.8068, -1, -1, -1, 'Priest - Flash Heal'), +(2060, 1.6135, -1, -1, -1, 'Priest - Greater Heal'), +(14914, 0.5711, 0.024, -1, -1, 'Priest - Holy Fire'), +(15237, 0.1606, -1, -1, -1, 'Priest - Holy Nova Damage'), +(23455, 0.3035, -1, -1, -1, 'Priest - Holy Nova Heal Rank 1'), +(8129, 0, 0, 0, 0, 'Priest - Mana Burn'), +(8092, 0.428, -1, -1, -1, 'Priest - Mind Blast'), +(15407, 0.257, -1, -1, -1, 'Priest - Mind Flay'), +(49821, 0.2861, -1, -1, -1, 'Priest - Mind Sear Trigger Rank 1'), +(47757, 1.6135, -1, -1, -1, 'Priest - Penance (Rank 1'), +(52986, 1.6135, -1, -1, -1, 'Priest - Penance (Rank 2'), +(52987, 1.6135, -1, -1, -1, 'Priest - Penance (Rank 3'), +(52988, 1.6135, -1, -1, -1, 'Priest - Penance (Rank 4'), +(17, 0.8068, -1, -1, -1, 'Priest - Power Word: Shield'), +(596, 0.8068, -1, -1, -1, 'Priest - Prayer of Healing'), +(33110, 0.8068, -1, -1, -1, 'Priest - Prayer of Mending Heal Proc'), +(33619, 0, 0, 0, 0, 'Priest - Reflective Shield'), +(139, -1, 0.376, -1, -1, 'Priest - Renew'), +(32379, 0.4296, -1, -1, -1, 'Priest - Shadow Word: Death'), +(589, -1, 0.1829, -1, -1, 'Priest - Shadow Word: Pain'), +(34433, 0.65, -1, -1, -1, 'Priest - Shadowfiend'), +(585, 0.714, -1, -1, -1, 'Priest - Smite'), +(34914, -1, 0.4, -1, -1, 'Priest - Vampiric Touch'), +(1064, 1.34, -1, -1, -1, 'Shaman - Chain Heal'), +(421, 0.57, -1, -1, -1, 'Shaman - Chain Lightning'), +(974, 0.4762, -1, -1, -1, 'Shaman - Earth Shield'), +(379, 0, 0, 0, 0, 'Shaman - Earth Shield Triggered'), +(8042, 0.3858, -1, -1, -1, 'Shaman - Earth Shock'), +(8443, 0.2142, -1, -1, -1, 'Shaman - Fire Nova Totem Casted by Totem Rank 1'), +(8504, 0.2142, -1, -1, -1, 'Shaman - Fire Nova Totem Casted by Totem Rank 2'), +(8505, 0.2142, -1, -1, -1, 'Shaman - Fire Nova Totem Casted by Totem Rank 3'), +(11310, 0.2142, -1, -1, -1, 'Shaman - Fire Nova Totem Casted by Totem Rank 4'), +(11311, 0.2142, -1, -1, -1, 'Shaman - Fire Nova Totem Casted by Totem Rank 5'), +(25538, 0.2142, -1, -1, -1, 'Shaman - Fire Nova Totem Casted by Totem Rank 6'), +(25539, 0.2142, -1, -1, -1, 'Shaman - Fire Nova Totem Casted by Totem Rank 7'), +(61651, 0.2142, -1, -1, -1, 'Shaman - Fire Nova Totem Casted by Totem Rank 8'), +(61660, 0.2142, -1, -1, -1, 'Shaman - Fire Nova Totem Casted by Totem Rank 9'), +(8050, 0.2142, 0.1, -1, -1, 'Shaman - Flame Shock'), +(8026, 0.1, -1, -1, -1, 'Shaman - Flametongue Weapon Proc Rank 1'), +(58788, 0.1, -1, -1, -1, 'Shaman - Flametongue Weapon Proc Rank 10'), +(8028, 0.1, -1, -1, -1, 'Shaman - Flametongue Weapon Proc Rank 2'), +(8029, 0.1, -1, -1, -1, 'Shaman - Flametongue Weapon Proc Rank 3'), +(10445, 0.1, -1, -1, -1, 'Shaman - Flametongue Weapon Proc Rank 4'), +(16343, 0.1, -1, -1, -1, 'Shaman - Flametongue Weapon Proc Rank 5'), +(16344, 0.1, -1, -1, -1, 'Shaman - Flametongue Weapon Proc Rank 6'), +(25488, 0.1, -1, -1, -1, 'Shaman - Flametongue Weapon Proc Rank 7'), +(58786, 0.1, -1, -1, -1, 'Shaman - Flametongue Weapon Proc Rank 8'), +(58787, 0.1, -1, -1, -1, 'Shaman - Flametongue Weapon Proc Rank 9'), +(8056, 0.3858, -1, -1, -1, 'Shaman - Frost Shock'), +(8034, 0.1, -1, -1, -1, 'Shaman - Frostbrand Attack Rank 1'), +(8037, 0.1, -1, -1, -1, 'Shaman - Frostbrand Attack Rank 2'), +(10458, 0.1, -1, -1, -1, 'Shaman - Frostbrand Attack Rank 3'), +(16352, 0.1, -1, -1, -1, 'Shaman - Frostbrand Attack Rank 4'), +(16353, 0.1, -1, -1, -1, 'Shaman - Frostbrand Attack Rank 5'), +(25501, 0.1, -1, -1, -1, 'Shaman - Frostbrand Attack Rank 6'), +(58797, 0.1, -1, -1, -1, 'Shaman - Frostbrand Attack Rank 7'), +(58798, 0.1, -1, -1, -1, 'Shaman - Frostbrand Attack Rank 8'), +(58799, 0.1, -1, -1, -1, 'Shaman - Frostbrand Attack Rank 9'), +(2645, 0, 0, 0, 0, 'Shaman - Glyph of Ghost Wolf'), +(52042, 0.045, -1, -1, -1, 'Shaman - Healing Stream Totem Triggered Heal'), +(331, 1.6106, -1, -1, -1, 'Shaman - Healing Wave'), +(51505, 0.5714, -1, -1, -1, 'Shaman - Lava Burst'), +(8004, 0.8082, -1, -1, -1, 'Shaman - Lesser Healing Wave'), +(403, 0.7143, -1, -1, -1, 'Shaman - Lightning Bolt'), +(26364, 0.33, -1, -1, -1, 'Shaman - Lightning Shield Proc Rank 1'), +(8188, 0.1, -1, -1, -1, 'Shaman - Magma Totam Passive Rank 1'), +(10582, 0.1, -1, -1, -1, 'Shaman - Magma Totam Passive Rank 2'), +(10583, 0.1, -1, -1, -1, 'Shaman - Magma Totam Passive Rank 3'), +(10584, 0.1, -1, -1, -1, 'Shaman - Magma Totam Passive Rank 4'), +(25551, 0.1, -1, -1, -1, 'Shaman - Magma Totam Passive Rank 5'), +(58733, 0.1, -1, -1, -1, 'Shaman - Magma Totam Passive Rank 6'), +(58736, 0.1, -1, -1, -1, 'Shaman - Magma Totam Passive Rank 7'), +(61295, 0.4, 0.18, -1, -1, 'Shaman - Riptide'), +(3606, 0.1667, -1, -1, -1, 'Shaman - Searing Totem Attack Rank 1'), +(58702, 0.1667, -1, -1, -1, 'Shaman - Searing Totem Attack Rank 10'), +(6350, 0.1667, -1, -1, -1, 'Shaman - Searing Totem Attack Rank 2'), +(6351, 0.1667, -1, -1, -1, 'Shaman - Searing Totem Attack Rank 3'), +(6352, 0.1667, -1, -1, -1, 'Shaman - Searing Totem Attack Rank 4'), +(10435, 0.1667, -1, -1, -1, 'Shaman - Searing Totem Attack Rank 5'), +(10436, 0.1667, -1, -1, -1, 'Shaman - Searing Totem Attack Rank 6'), +(25530, 0.1667, -1, -1, -1, 'Shaman - Searing Totem Attack Rank 7'), +(58700, 0.1667, -1, -1, -1, 'Shaman - Searing Totem Attack Rank 8'), +(58701, 0.1667, -1, -1, -1, 'Shaman - Searing Totem Attack Rank 9'), +(50796, 0.7139, -1, -1, -1, 'Warlock - Chaos Bolt'), +(17962, 0, 0, 0, 0, 'Warlock - Conflagrate'), +(172, -1, 0.2, -1, -1, 'Warlock - Corruption'), +(980, -1, 0.1, -1, -1, 'Warlock - Curse of Agony'), +(603, -1, 2, -1, -1, 'Warlock - Curse of Doom'), +(18220, 0.96, -1, -1, -1, 'Warlock - Dark Pact Rank 1'), +(6789, 0.214, -1, -1, -1, 'Warlock - Death Coil'), +(689, -1, 0.143, -1, -1, 'Warlock - Drain Life'), +(5138, 0, 0, 0, 0, 'Warlock - Drain Mana'), +(1120, -1, 0.429, -1, -1, 'Warlock - Drain Soul'), +(28176, 0, 0, 0, 0, 'Warlock - Fel Armor'), +(18790, 0, 0, 0, 0, 'Warlock - Fel Stamina'), +(48181, 0.4793, -1, -1, -1, 'Warlock - Haunt'), +(755, -1, 0.4485, -1, -1, 'Warlock - Health Funnel'), +(1949, -1, 0.0949, -1, -1, 'Warlock - Hellfire'), +(5857, 0.145, -1, -1, -1, 'Warlock - Hellfire Effect on Enemy Rank 1'), +(348, 0.2, 0.2, -1, -1, 'Warlock - Immolate'), +(29722, 0.7139, -1, -1, -1, 'Warlock - Incinerate'), +(42223, 0.286, -1, -1, -1, 'Warlock - Rain of Fire Triggered Rank 1'), +(5676, 0.4293, -1, -1, -1, 'Warlock - Searing Pain'), +(27243, 0.2129, 0.25, -1, -1, 'Warlock - Seed of Corruption'), +(686, 0.8569, -1, -1, -1, 'Warlock - Shadow Bolt'), +(6229, 0.3, -1, -1, -1, 'Warlock - Shadow Ward'), +(17877, 0.4293, -1, -1, -1, 'Warlock - Shadowburn'), +(47960, 0.1064, 0.0667, -1, -1, 'Warlock - Shadowflame Rank 1'), +(61291, 0.1064, 0.0667, -1, -1, 'Warlock - Shadowflame Rank 2'), +(30283, 0.1932, -1, -1, -1, 'Warlock - Shadowfury'), +(63106, 0, 0, 0, 0, 'Warlock - Siphon Life Triggered'), +(6353, 1.15, -1, -1, -1, 'Warlock - Soul Fire'), +(30294, 0, 0, 0, 0, 'Warlock - Soul Leech'), +(30108, -1, 0.2, -1, -1, 'Warlock - Unstable Affliction'), +(31117, 1.8, -1, -1, -1, 'Warlock - Unstable Affliction Dispell'), +(54158, 0.25, -1, 0.16, -1, 'Paladin - Jugdement (Seal of Light, Seal of Wisdom, Seal of Justice)'), +(60089, -1, -1, 0.05, -1, 'Faerie Fire (feral)'), +(58621, -1, -1, 0.08, -1, 'Death Knight - Glyph of Chains of Ice'), +(13797, -1, -1, -1, 0.02, 'Hunter - Immolation Trap($RAP*0.1 / number of ticks)'), +(3674, -1, -1, -1, 0.02, 'Hunter - Black Arrow($RAP*0.1 / number of ticks)'), +(1978, -1, -1, -1, 0.04, 'Hunter - Serpent Sting($RAP*0.2 / number of ticks)'), +(703, -1, -1, -1, 0.02, 'Rogue - Garrote'), +(2818, -1, -1, -1, 0.03, 'Rogue - Deadly Poison Rank 1($AP*0.12 / number of ticks)'), +(2819, -1, -1, -1, 0.03, 'Rogue - Deadly Poison Rank 2($AP*0.12 / number of ticks)'), +(11353, -1, -1, -1, 0.03, 'Rogue - Deadly Poison Rank 3($AP*0.12 / number of ticks)'), +(11354, -1, -1, -1, 0.03, 'Rogue - Deadly Poison Rank 4($AP*0.12 / number of ticks)'), +(25349, -1, -1, -1, 0.03, 'Rogue - Deadly Poison Rank 5($AP*0.12 / number of ticks)'), +(26968, -1, -1, -1, 0.03, 'Rogue - Deadly Poison Rank 6($AP*0.12 / number of ticks)'), +(27187, -1, -1, -1, 0.03, 'Rogue - Deadly Poison Rank 7($AP*0.12 / number of ticks)'), +(57969, -1, -1, -1, 0.03, 'Rogue - Deadly Poison Rank 8($AP*0.12 / number of ticks)'), +(57970, -1, -1, -1, 0.03, 'Rogue - Deadly Poison Rank 9($AP*0.12 / number of ticks)'), +(48628, -1, -1, -1, 0.15, 'Druid - Lock Jaw'), +(1822, -1, -1, 0.01, 0.06, 'Druid - Rake ($AP*0.18 / number of ticks)'), +(33745, -1, -1, -1, 0.01, 'Druid - Lacerate($AP*0.05 / number of ticks)'); + diff --git a/sql/updates/4501_world_spell_bonus_data.sql b/sql/updates/4501_world_spell_bonus_data.sql new file mode 100644 index 00000000000..337b293e62e --- /dev/null +++ b/sql/updates/4501_world_spell_bonus_data.sql @@ -0,0 +1,31 @@ +DELETE FROM `spell_bonus_data` where `entry` IN(6572, 57755, 6343, 50256, 1776, 8680, 8685, 8689, 11335, 11336, 11337, 26890, 57964, 57965, 13218, 13222 +, 13223, 13224, 27189, 57974, 57975, 1495, 19306, 3044, 56641, 13812, 20253, 61491); +INSERT INTO `spell_bonus_data` (`entry`, `direct_bonus`, `dot_bonus`, `ap_bonus`, `ap_dot_bonus`, `comments`) VALUES +(6572, -1, -1, 0.207, -1, 'Warrior - Revenge'), +(57755, -1, -1, 0.5, -1, 'Warrior - Heroic Throw'), +(6343, -1, -1, 0.12, -1, 'Warrior - Thunder Clap'), +(50256, -1, -1, 0.08, -1, 'Druid - Swipe'), +(1776, -1, -1, 0.21, -1, 'Rogue - Gouge'), +(8680, -1, -1, 0.1, -1, 'Rogue - Instant Poison Rank 1'), +(8685, -1, -1, 0.1, -1, 'Rogue - Instant Poison Rank 2'), +(8689, -1, -1, 0.1, -1, 'Rogue - Instant Poison Rank 3'), +(11335, -1, -1, 0.1, -1, 'Rogue - Instant Poison Rank 4'), +(11336, -1, -1, 0.1, -1, 'Rogue - Instant Poison Rank 5'), +(11337, -1, -1, 0.1, -1, 'Rogue - Instant Poison Rank 6'), +(26890, -1, -1, 0.1, -1, 'Rogue - Instant Poison Rank 7'), +(57964, -1, -1, 0.1, -1, 'Rogue - Instant Poison Rank 8'), +(57965, -1, -1, 0.1, -1, 'Rogue - Instant Poison Rank 9'), +(13218, -1, -1, 0.04, -1, 'Rogue - Wound Poison Rank 1'), +(13222, -1, -1, 0.04, -1, 'Rogue - Wound Poison Rank 2'), +(13223, -1, -1, 0.04, -1, 'Rogue - Wound Poison Rank 3'), +(13224, -1, -1, 0.04, -1, 'Rogue - Wound Poison Rank 4'), +(27189, -1, -1, 0.04, -1, 'Rogue - Wound Poison Rank 5'), +(57974, -1, -1, 0.04, -1, 'Rogue - Wound Poison Rank 6'), +(57975, -1, -1, 0.04, -1, 'Rogue - Wound Poison Rank 7'), +(1495, -1, -1, 0.2, -1, 'Hunter - Mongoose Bite'), +(19306, -1, -1, 0.2, -1, 'Hunter - Counterattack'), +(3044, -1, -1, 0.15, -1, 'Hunter - Arcane Shot'), +(56641, -1, -1, 0.1, -1, 'Hunter - Steady Shot'), +(13812, -1, -1, 0.1, -1, 'Hunter - Explosive Trap Effect'), +(20253, -1, -1, 0.12, -1, 'Warrior - Intercept'), +(61491, -1, -1, 0.12, -1, 'Warrior - Intercept'); diff --git a/sql/world.sql b/sql/world.sql index 21e89f44d91..4f302a08aa0 100644 --- a/sql/world.sql +++ b/sql/world.sql @@ -13715,312 +13715,15 @@ UNLOCK TABLES; -- DROP TABLE IF EXISTS `spell_bonus_data`; -SET @saved_cs_client = @@character_set_client; -SET character_set_client = utf8; CREATE TABLE `spell_bonus_data` ( `entry` smallint(5) unsigned NOT NULL, `direct_bonus` float NOT NULL default '0', `dot_bonus` float NOT NULL default '0', `ap_bonus` float NOT NULL default '0', + `ap_dot_bonus` float NOT NULL default '0', `comments` varchar(255) default NULL, PRIMARY KEY (`entry`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; -SET character_set_client = @saved_cs_client; - --- --- Dumping data for table `spell_bonus_data` --- - -LOCK TABLES `spell_bonus_data` WRITE; -/*!40000 ALTER TABLE `spell_bonus_data` DISABLE KEYS */; -INSERT INTO `spell_bonus_data` VALUES -(49941, 0, 0, 0.04, 'Death Knight - Blood Boil'), -(48721, 0, 0, 0.04, 'Death Knight - Blood Boil'), -(55078, 0, 0, 0.055, 'Death Knight - Blood Plague'), -(50444, 0, 0, 0.105, 'Death Knight - Corpse Explosion Triggered'), -(52212, 0, 0, 0.0475, 'Death Knight - Death and Decay'), -(47632, 0, 0, 0.15, 'Death Knight - Death Coil'), -(47633, 0, 0, 0.15, 'Death Knight - Death Coil Heal'), -(55095, 0, 0, 0.055, 'Death Knight - Frost Fever'), -(49184, 0, 0, 0.1, 'Death Knight - Howling Blast'), -(45477, 0, 0, 0.1, 'Death Knight - Icy Touch'), -(56903, 0, 0, 0, 'Death Knight - Lichflame'), -(50842, 0, 0, 0.04, 'Death Knight - Pestilence'), -(50401, 0, 0, 0, 'Death Knight - Razor Frost'), -(47476, 0, 0, 0.06, 'Death Knight - Strangulate'), -(50536, 0, 0, 0.013, 'Death Knight - Unholy Blight (Rank1)'), -(51373, 0, 0, 0.013, 'Death Knight - Unholy Blight (Rank2)'), -(51374, 0, 0, 0.013, 'Death Knight - Unholy Blight (Rank3)'), -(51375, 0, 0, 0.013, 'Death Knight - Unholy Blight (Rank4)'), -(339, 0, 0.1, 0, 'Druid - Entangling Roots'), -(5185, 1.611, 0, 0, 'Druid - Healing Touch'), -(42231, 0.12898, 0, 0, 'Druid - Hurricane Triggered'), -(5570, 0, 0.2, 0, 'Druid - Insect Swarm'), -(33763, 0.6453, 0.09518, 0, 'Druid - Lifebloom'), -(8921, 0.1515, 0.13, 0, 'Druid - Moonfire'), -(50464, 0.67305, 0, 0, 'Druid - Nourish'), -(8936, 0.539, 0.188, 0, 'Druid - Regrowth'), -(774, 0, 0.37604, 0, 'Druid - Rejuvenation'), -(50294, 0.0119, 0, 0, 'Druid - Starfall AOE rank 1'), -(53188, 0.0119, 0, 0, 'Druid - Starfall AOE rank 2'), -(53189, 0.0119, 0, 0, 'Druid - Starfall AOE rank 3'), -(53190, 0.0119, 0, 0, 'Druid - Starfall AOE rank 4'), -(50288, 0.0458, 0, 0, 'Druid - Starfall rank 1'), -(53191, 0.0458, 0, 0, 'Druid - Starfall rank 2'), -(53194, 0.0458, 0, 0, 'Druid - Starfall rank 3'), -(53195, 0.0458, 0, 0, 'Druid - Starfall rank 4'), -(2912, 1, 0, 0, 'Druid - Starfire'), -(18562, 0, 0, 0, 'Druid - Swiftmend'), -(44203, 0.538, 0, 0, 'Druid - Tranquility Triggered'), -(61391, 0.193, 0, 0, 'Druid - Typhoon'), -(48438, 0, 0.11505, 0, 'Druid - Wild Growth'), -(5176, 0.5714, 0, 0, 'Druid - Wrath'), -(60089, 0, 0, 0.05, 'Faerie Fire (feral)'), -(55039, 0, 0, 0, 'Item - Gnomish Lightning Generator'), -(44425, 0.7143, 0, 0, 'Mage - Arcane Barrage'), -(30451, 0.7143, 0, 0, 'Mage - Arcane Blast'), -(1449, 0.2128, 0, 0, 'Mage - Arcane Explosion'), -(7268, 0.2857, 0, 0, 'Mage - Arcane Missiles Triggered Spell Rank 1'), -(38700, 0.2857, 0, 0, 'Mage - Arcane Missiles Triggered Spell Rank 10'), -(38703, 0.2857, 0, 0, 'Mage - Arcane Missiles Triggered Spell Rank 11'), -(42844, 0.2857, 0, 0, 'Mage - Arcane Missiles Triggered Spell Rank 12'), -(42845, 0.2857, 0, 0, 'Mage - Arcane Missiles Triggered Spell Rank 13'), -(7269, 0.2857, 0, 0, 'Mage - Arcane Missiles Triggered Spell Rank 2'), -(7270, 0.2857, 0, 0, 'Mage - Arcane Missiles Triggered Spell Rank 3'), -(8419, 0.2857, 0, 0, 'Mage - Arcane Missiles Triggered Spell Rank 4'), -(8418, 0.2857, 0, 0, 'Mage - Arcane Missiles Triggered Spell Rank 5'), -(10273, 0.2857, 0, 0, 'Mage - Arcane Missiles Triggered Spell Rank 6'), -(10274, 0.2857, 0, 0, 'Mage - Arcane Missiles Triggered Spell Rank 7'), -(25346, 0.2857, 0, 0, 'Mage - Arcane Missiles Triggered Spell Rank 8'), -(27076, 0.2857, 0, 0, 'Mage - Arcane Missiles Triggered Spell Rank 9'), -(11113, 0.1936, 0, 0, 'Mage - Blast Wave'), -(42208, 0.1437, 0, 0, 'Mage - Blizzard Triggered Spell Rank 1'), -(42209, 0.1437, 0, 0, 'Mage - Blizzard Triggered Spell Rank 2'), -(42210, 0.1437, 0, 0, 'Mage - Blizzard Triggered Spell Rank 3'), -(42211, 0.1437, 0, 0, 'Mage - Blizzard Triggered Spell Rank 4'), -(42212, 0.1437, 0, 0, 'Mage - Blizzard Triggered Spell Rank 5'), -(42213, 0.1437, 0, 0, 'Mage - Blizzard Triggered Spell Rank 6'), -(42198, 0.1437, 0, 0, 'Mage - Blizzard Triggered Spell Rank 7'), -(42937, 0.1437, 0, 0, 'Mage - Blizzard Triggered Spell Rank 8'), -(42938, 0.1437, 0, 0, 'Mage - Blizzard Triggered Spell Rank 9'), -(120, 0.214, 0, 0, 'Mage - Cone of Cold'), -(31661, 0.1936, 0, 0, 'Mage - Dragons Breath'), -(133, 1, 0, 0, 'Mage - Fire Ball'), -(2136, 0.4286, 0, 0, 'Mage - Fire Blast'), -(543, 0.1, 0, 0, 'Mage - Fire Ward'), -(2120, 0.2357, 0.122, 0, 'Mage - Flamestrike'), -(116, 0.8143, 0, 0, 'Mage - Frost Bolt'), -(122, 0.193, 0, 0, 'Mage - Frost Nova'), -(6143, 0.1, 0, 0, 'Mage - Frost Ward'), -(44614, 0.8571, 0, 0, 'Mage - Frostfire Bolt'), -(11426, 0.8053, 0, 0, 'Mage - Ice Barrier'), -(30455, 0.1429, 0, 0, 'Mage - Ice Lance'), -(44457, 0.4, 0.2, 0, 'Mage - Living Bomb'), -(1463, 0.8053, 0, 0, 'Mage - Mana Shield'), -(34913, 0, 0, 0, 'Mage - Molten Armor Triggered Rank 1'), -(43043, 0, 0, 0, 'Mage - Molten Armor Triggered Rank 2'), -(43044, 0, 0, 0, 'Mage - Molten Armor Triggered Rank 3'), -(11366, 1.15, 0.05, 0, 'Mage - Pyroblast'), -(2948, 0.4286, 0, 0, 'Mage - Scorch'), -(31935, 0.07, 0, 0.07, 'Paladin - Avenger Shield'), -(53742, 0, 0.0176, 0.03, 'Paladin - Blood Corruption'), -(26573, 0, 0.04, 0.04, 'Paladin - Consecration'), -(879, 0.15, 0, 0.15, 'Paladin - Exorcism'), -(19750, 1, 0, 0, 'Paladin - Flash of Light'), -(53595, 0, 0, 0, 'Paladin - Hammer of the Righteous'), -(24275, 0.15, 0, 0.15, 'Paladin - Hammer of Wrath'), -(635, 1.66, 0, 0, 'Paladin - Holy Light'), -(20925, 0.09, 0, 0.056, 'Paladin - Holy Shield'), -(25914, 0.81, 0, 0, 'Paladin - Holy Shock Triggered Heal Rank 1'), -(25913, 0.81, 0, 0, 'Paladin - Holy Shock Triggered Heal Rank 2'), -(25903, 0.81, 0, 0, 'Paladin - Holy Shock Triggered Heal Rank 3'), -(27175, 0.81, 0, 0, 'Paladin - Holy Shock Triggered Heal Rank 4'), -(33074, 0.81, 0, 0, 'Paladin - Holy Shock Triggered Heal Rank 5'), -(48820, 0.81, 0, 0, 'Paladin - Holy Shock Triggered Heal Rank 6'), -(48821, 0.81, 0, 0, 'Paladin - Holy Shock Triggered Heal Rank 7'), -(25912, 0.4286, 0, 0, 'Paladin - Holy Shock Triggered Hurt Rank 1'), -(25911, 0.4286, 0, 0, 'Paladin - Holy Shock Triggered Hurt Rank 2'), -(25902, 0.4286, 0, 0, 'Paladin - Holy Shock Triggered Hurt Rank 3'), -(27176, 0.4286, 0, 0, 'Paladin - Holy Shock Triggered Hurt Rank 4'), -(33073, 0.4286, 0, 0, 'Paladin - Holy Shock Triggered Hurt Rank 5'), -(48822, 0.4286, 0, 0, 'Paladin - Holy Shock Triggered Hurt Rank 6'), -(48823, 0.4286, 0, 0, 'Paladin - Holy Shock Triggered Hurt Rank 7'), -(31803, 0, 0.0176, 0.03, 'Paladin - Holy Vengeance'), -(2812, 0.07, 0, 0.07, 'Paladin - Holy Wrath'), -(31898, 0.25, 0, 0.16, 'Paladin - Judgement of Blood Enemy'), -(32220, 0.0833, 0, 0.0533, 'Paladin - Judgement of Blood Self'), -(20467, 0.25, 0, 0.16, 'Paladin - Judgement of Command'), -(53733, 0, 0, 0, 'Paladin - Judgement of Corruption'), -(20267, 0.1, 0, 0.1, 'Paladin - Judgement of Light Proc'), -(20187, 0.4, 0, 0.25, 'Paladin - Judgement of Righteousness'), -(53726, 0.25, 0, 0.16, 'Paladin - Judgement of the Martyr Enemy'), -(53725, 0.0833, 0, 0.0533, 'Paladin - Judgement of the Martyr Self'), -(31804, 0, 0, 0, 'Paladin - Judgement of Vengeance'), -(58597, 0.75, 0, 0, 'Paladin - Sacred Shield'), -(53601, 0.75, 0, 0, 'Paladin - Sacred Shield'), -(31893, 0, 0, 0, 'Paladin - Seal of Blood Proc Enemy'), -(32221, 0, 0, 0, 'Paladin - Seal of Blood Proc Self'), -(20424, 0, 0, 0, 'Paladin - Seal of Command Proc'), -(20167, 0.15, 0, 0.15, 'Paladin - Seal of Light Proc'), -(25742, 0.07, 0, 0.039, 'Paladin - Seal of Righteousness Dummy Proc'), -(53719, 0, 0, 0, 'Paladin - Seal of the Martyr Proc Enemy'), -(53718, 0, 0, 0, 'Paladin - Seal of the Martyr Proc Self'), -(53600, 0, 0, 0, 'Paladin - Shield of Righteousness'), -(32546, 0.8068, 0, 0, 'Priest - Binding Heal'), -(27813, 0, 0, 0, 'Priest - Blessed Recovery Rank 1'), -(27817, 0, 0, 0, 'Priest - Blessed Recovery Rank 2'), -(27818, 0, 0, 0, 'Priest - Blessed Recovery Rank 3'), -(34861, 0.402, 0, 0, 'Priest - Circle of Healing'), -(19236, 0.8068, 0, 0, 'Priest - Desperate Prayer'), -(2944, 0, 0.1849, 0, 'Priest - Devouring Plague'), -(2061, 0.8068, 0, 0, 'Priest - Flash Heal'), -(2060, 1.6135, 0, 0, 'Priest - Greater Heal'), -(14914, 0.5711, 0.024, 0, 'Priest - Holy Fire'), -(15237, 0.1606, 0, 0, 'Priest - Holy Nova Damage'), -(23455, 0.3035, 0, 0, 'Priest - Holy Nova Heal Rank 1'), -(23458, 0.3035, 0, 0, 'Priest - Holy Nova Heal Rank 2'), -(23459, 0.3035, 0, 0, 'Priest - Holy Nova Heal Rank 3'), -(27803, 0.3035, 0, 0, 'Priest - Holy Nova Heal Rank 4'), -(27804, 0.3035, 0, 0, 'Priest - Holy Nova Heal Rank 5'), -(27805, 0.3035, 0, 0, 'Priest - Holy Nova Heal Rank 6'), -(25329, 0.3035, 0, 0, 'Priest - Holy Nova Heal Rank 7'), -(8129, 0, 0, 0, 'Priest - Mana Burn'), -(8092, 0.428, 0, 0, 'Priest - Mind Blast'), -(15407, 0.257, 0, 0, 'Priest - Mind Flay'), -(49821, 0.2861, 0, 0, 'Priest - Mind Sear Trigger Rank 1'), -(53022, 0.2861, 0, 0, 'Priest - Mind Sear Trigger Rank 2'), -(47757, 1.6135, 0, 0, 'Priest - Penance (Rank 1'), -(52986, 1.6135, 0, 0, 'Priest - Penance (Rank 2'), -(52987, 1.6135, 0, 0, 'Priest - Penance (Rank 3'), -(52988, 1.6135, 0, 0, 'Priest - Penance (Rank 4'), -(17, 0.8068, 0, 0, 'Priest - Power Word: Shield'), -(596, 0.8068, 0, 0, 'Priest - Prayer of Healing'), -(33110, 0.8068, 0, 0, 'Priest - Prayer of Mending Heal Proc'), -(33619, 0, 0, 0, 'Priest - Reflective Shield'), -(139, 0, 0.376, 0, 'Priest - Renew'), -(32379, 0.4296, 0, 0, 'Priest - Shadow Word: Death'), -(589, 0, 0.1829, 0, 'Priest - Shadow Word: Pain'), -(34433, 0.65, 0, 0, 'Priest - Shadowfiend'), -(585, 0.714, 0, 0, 'Priest - Smite'), -(34914, 0, 0.4, 0, 'Priest - Vampiric Touch'), -(1064, 1.34, 0, 0, 'Shaman - Chain Heal'), -(421, 0.57, 0, 0, 'Shaman - Chain Lightning'), -(974, 0.4762, 0, 0, 'Shaman - Earth Shield'), -(379, 0, 0, 0, 'Shaman - Earth Shield Triggered'), -(8042, 0.3858, 0, 0, 'Shaman - Earth Shock'), -(8443, 0.2142, 0, 0, 'Shaman - Fire Nova Totem Casted by Totem Rank 1'), -(8504, 0.2142, 0, 0, 'Shaman - Fire Nova Totem Casted by Totem Rank 2'), -(8505, 0.2142, 0, 0, 'Shaman - Fire Nova Totem Casted by Totem Rank 3'), -(11310, 0.2142, 0, 0, 'Shaman - Fire Nova Totem Casted by Totem Rank 4'), -(11311, 0.2142, 0, 0, 'Shaman - Fire Nova Totem Casted by Totem Rank 5'), -(25538, 0.2142, 0, 0, 'Shaman - Fire Nova Totem Casted by Totem Rank 6'), -(25539, 0.2142, 0, 0, 'Shaman - Fire Nova Totem Casted by Totem Rank 7'), -(61651, 0.2142, 0, 0, 'Shaman - Fire Nova Totem Casted by Totem Rank 8'), -(61660, 0.2142, 0, 0, 'Shaman - Fire Nova Totem Casted by Totem Rank 9'), -(8050, 0.2142, 0.1, 0, 'Shaman - Flame Shock'), -(8026, 0.1, 0, 0, 'Shaman - Flametongue Weapon Proc Rank 1'), -(58788, 0.1, 0, 0, 'Shaman - Flametongue Weapon Proc Rank 10'), -(8028, 0.1, 0, 0, 'Shaman - Flametongue Weapon Proc Rank 2'), -(8029, 0.1, 0, 0, 'Shaman - Flametongue Weapon Proc Rank 3'), -(10445, 0.1, 0, 0, 'Shaman - Flametongue Weapon Proc Rank 4'), -(16343, 0.1, 0, 0, 'Shaman - Flametongue Weapon Proc Rank 5'), -(16344, 0.1, 0, 0, 'Shaman - Flametongue Weapon Proc Rank 6'), -(25488, 0.1, 0, 0, 'Shaman - Flametongue Weapon Proc Rank 7'), -(58786, 0.1, 0, 0, 'Shaman - Flametongue Weapon Proc Rank 8'), -(58787, 0.1, 0, 0, 'Shaman - Flametongue Weapon Proc Rank 9'), -(8056, 0.3858, 0, 0, 'Shaman - Frost Shock'), -(8034, 0.1, 0, 0, 'Shaman - Frostbrand Attack Rank 1'), -(8037, 0.1, 0, 0, 'Shaman - Frostbrand Attack Rank 2'), -(10458, 0.1, 0, 0, 'Shaman - Frostbrand Attack Rank 3'), -(16352, 0.1, 0, 0, 'Shaman - Frostbrand Attack Rank 4'), -(16353, 0.1, 0, 0, 'Shaman - Frostbrand Attack Rank 5'), -(25501, 0.1, 0, 0, 'Shaman - Frostbrand Attack Rank 6'), -(58797, 0.1, 0, 0, 'Shaman - Frostbrand Attack Rank 7'), -(58798, 0.1, 0, 0, 'Shaman - Frostbrand Attack Rank 8'), -(58799, 0.1, 0, 0, 'Shaman - Frostbrand Attack Rank 9'), -(2645, 0, 0, 0, 'Shaman - Glyph of Ghost Wolf'), -(52042, 0.045, 0, 0, 'Shaman - Healing Stream Totem Triggered Heal'), -(331, 1.6106, 0, 0, 'Shaman - Healing Wave'), -(51505, 0.5714, 0, 0, 'Shaman - Lava Burst'), -(8004, 0.8082, 0, 0, 'Shaman - Lesser Healing Wave'), -(403, 0.7143, 0, 0, 'Shaman - Lightning Bolt'), -(26364, 0.33, 0, 0, 'Shaman - Lightning Shield Proc Rank 1'), -(49278, 0.33, 0, 0, 'Shaman - Lightning Shield Proc Rank 10'), -(49279, 0.33, 0, 0, 'Shaman - Lightning Shield Proc Rank 11'), -(26365, 0.33, 0, 0, 'Shaman - Lightning Shield Proc Rank 2'), -(26366, 0.33, 0, 0, 'Shaman - Lightning Shield Proc Rank 3'), -(26367, 0.33, 0, 0, 'Shaman - Lightning Shield Proc Rank 4'), -(26369, 0.33, 0, 0, 'Shaman - Lightning Shield Proc Rank 5'), -(26370, 0.33, 0, 0, 'Shaman - Lightning Shield Proc Rank 6'), -(26363, 0.33, 0, 0, 'Shaman - Lightning Shield Proc Rank 7'), -(26371, 0.33, 0, 0, 'Shaman - Lightning Shield Proc Rank 8'), -(26372, 0.33, 0, 0, 'Shaman - Lightning Shield Proc Rank 9'), -(8188, 0.1, 0, 0, 'Shaman - Magma Totam Passive Rank 1'), -(10582, 0.1, 0, 0, 'Shaman - Magma Totam Passive Rank 2'), -(10583, 0.1, 0, 0, 'Shaman - Magma Totam Passive Rank 3'), -(10584, 0.1, 0, 0, 'Shaman - Magma Totam Passive Rank 4'), -(25551, 0.1, 0, 0, 'Shaman - Magma Totam Passive Rank 5'), -(58733, 0.1, 0, 0, 'Shaman - Magma Totam Passive Rank 6'), -(58736, 0.1, 0, 0, 'Shaman - Magma Totam Passive Rank 7'), -(61295, 0.4, 0.18, 0, 'Shaman - Riptide'), -(3606, 0.1667, 0, 0, 'Shaman - Searing Totem Attack Rank 1'), -(58702, 0.1667, 0, 0, 'Shaman - Searing Totem Attack Rank 10'), -(6350, 0.1667, 0, 0, 'Shaman - Searing Totem Attack Rank 2'), -(6351, 0.1667, 0, 0, 'Shaman - Searing Totem Attack Rank 3'), -(6352, 0.1667, 0, 0, 'Shaman - Searing Totem Attack Rank 4'), -(10435, 0.1667, 0, 0, 'Shaman - Searing Totem Attack Rank 5'), -(10436, 0.1667, 0, 0, 'Shaman - Searing Totem Attack Rank 6'), -(25530, 0.1667, 0, 0, 'Shaman - Searing Totem Attack Rank 7'), -(58700, 0.1667, 0, 0, 'Shaman - Searing Totem Attack Rank 8'), -(58701, 0.1667, 0, 0, 'Shaman - Searing Totem Attack Rank 9'), -(50796, 0.7139, 0, 0, 'Warlock - Chaos Bolt'), -(17962, 0, 0, 0, 'Warlock - Conflagrate'), -(172, 0, 0.2, 0, 'Warlock - Corruption'), -(980, 0, 0.1, 0, 'Warlock - Curse of Agony'), -(603, 0, 2, 0, 'Warlock - Curse of Doom'), -(18220, 0.96, 0, 0, 'Warlock - Dark Pact Rank 1'), -(18937, 0.96, 0, 0, 'Warlock - Dark Pact Rank 2'), -(18938, 0.96, 0, 0, 'Warlock - Dark Pact Rank 3'), -(27265, 0.96, 0, 0, 'Warlock - Dark Pact Rank 4'), -(59092, 0.96, 0, 0, 'Warlock - Dark Pact Rank 5'), -(6789, 0.214, 0, 0, 'Warlock - Death Coil'), -(689, 0, 0.143, 0, 'Warlock - Drain Life'), -(5138, 0, 0, 0, 'Warlock - Drain Mana'), -(1120, 0, 0.429, 0, 'Warlock - Drain Soul'), -(28176, 0, 0, 0, 'Warlock - Fel Armor'), -(18790, 0, 0, 0, 'Warlock - Fel Stamina'), -(48181, 0.4793, 0, 0, 'Warlock - Haunt'), -(755, 0, 0.4485, 0, 'Warlock - Health Funnel'), -(1949, 0, 0.0949, 0, 'Warlock - Hellfire'), -(5857, 0.145, 0, 0, 'Warlock - Hellfire Effect on Enemy Rank 1'), -(11681, 0.145, 0, 0, 'Warlock - Hellfire Effect on Enemy Rank 2'), -(11682, 0.145, 0, 0, 'Warlock - Hellfire Effect on Enemy Rank 3'), -(27214, 0.145, 0, 0, 'Warlock - Hellfire Effect on Enemy Rank 4'), -(47822, 0.145, 0, 0, 'Warlock - Hellfire Effect on Enemy Rank 5'), -(348, 0.2, 0.2, 0, 'Warlock - Immolate'), -(29722, 0.7139, 0, 0, 'Warlock - Incinerate'), -(42223, 0.286, 0, 0, 'Warlock - Rain of Fire Triggered Rank 1'), -(42224, 0.286, 0, 0, 'Warlock - Rain of Fire Triggered Rank 2'), -(42225, 0.286, 0, 0, 'Warlock - Rain of Fire Triggered Rank 3'), -(42226, 0.286, 0, 0, 'Warlock - Rain of Fire Triggered Rank 4'), -(42218, 0.286, 0, 0, 'Warlock - Rain of Fire Triggered Rank 5'), -(47817, 0.286, 0, 0, 'Warlock - Rain of Fire Triggered Rank 6'), -(47818, 0.286, 0, 0, 'Warlock - Rain of Fire Triggered Rank 7'), -(5676, 0.4293, 0, 0, 'Warlock - Searing Pain'), -(27243, 0.2129, 0.25, 0, 'Warlock - Seed of Corruption'), -(686, 0.8569, 0, 0, 'Warlock - Shadow Bolt'), -(6229, 0.3, 0, 0, 'Warlock - Shadow Ward'), -(17877, 0.4293, 0, 0, 'Warlock - Shadowburn'), -(47960, 0.1064, 0.0667, 0, 'Warlock - Shadowflame Rank 1'), -(61291, 0.1064, 0.0667, 0, 'Warlock - Shadowflame Rank 2'), -(30283, 0.1932, 0, 0, 'Warlock - Shadowfury'), -(63106, 0, 0, 0, 'Warlock - Siphon Life Triggered'), -(6353, 1.15, 0, 0, 'Warlock - Soul Fire'), -(30294, 0, 0, 0, 'Warlock - Soul Leech'), -(30108, 0, 0.2, 0, 'Warlock - Unstable Affliction'), -(31117, 1.8, 0, 0, 'Warlock - Unstable Affliction Dispell'); -/*!40000 ALTER TABLE `spell_bonus_data` ENABLE KEYS */; -UNLOCK TABLES; -- -- Table structure for table `spell_disabled` diff --git a/src/game/SharedDefines.h b/src/game/SharedDefines.h index 56e3214538f..1a9d5e470a4 100644 --- a/src/game/SharedDefines.h +++ b/src/game/SharedDefines.h @@ -271,7 +271,7 @@ enum SpellCategory #define SPELL_ATTR_EX_UNK16 0x00010000 // 16 on immuniy #define SPELL_ATTR_EX_UNAUTOCASTABLE_BY_PET 0x00020000 // 17 #define SPELL_ATTR_EX_UNK18 0x00040000 // 18 -#define SPELL_ATTR_EX_UNK19 0x00080000 // 19 +#define SPELL_ATTR_EX_CANT_TARGET_SELF 0x00080000 // 19 Applies only to unit target - for example Divine Intervention (19752) #define SPELL_ATTR_EX_REQ_COMBO_POINTS1 0x00100000 // 20 Req combo points on target #define SPELL_ATTR_EX_UNK21 0x00200000 // 21 #define SPELL_ATTR_EX_REQ_COMBO_POINTS2 0x00400000 // 22 Req combo points on target diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp index a501f83710d..090749b32db 100644 --- a/src/game/Spell.cpp +++ b/src/game/Spell.cpp @@ -4341,6 +4341,9 @@ SpellCastResult Spell::CheckCast(bool strict) if(m_spellInfo->excludeTargetAuraSpell && target->HasAura(m_spellInfo->excludeTargetAuraSpell)) return SPELL_FAILED_TARGET_AURASTATE; + if(target == m_caster && m_spellInfo->AttributesEx & SPELL_ATTR_EX_CANT_TARGET_SELF) + return SPELL_FAILED_BAD_TARGETS; + if(target != m_caster) { // target state requirements (apply to non-self only), to allow cast affects to self like Dirty Deeds diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index c0b130b6bdf..c10f8a47b4d 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -4606,7 +4606,7 @@ void AuraEffect::HandlePeriodicEnergize(bool apply, bool Real, bool changeAmount if (m_spellProto->SpellIconID == 3184 && m_spellProto->SpellVisual[0] == 12495) m_amount = m_target->GetMaxPower(POWER_MANA) * 25 / 10000; else if (m_spellProto->Id == 29166) // Innervate - m_amount = m_target->GetCreatePowers(POWER_MANA) * m_amount / ((GetParentAura()->GetAuraMaxDuration() / 10.0f) * (m_amplitude / IN_MILISECONDS)); + m_amount = m_target->GetCreatePowers(POWER_MANA) * m_amount / (GetTotalTicks() * 100.0f); } } @@ -4702,17 +4702,6 @@ void AuraEffect::HandlePeriodicDamage(bool apply, bool Real, bool changeAmount) switch (m_spellProto->SpellFamilyName) { - case SPELLFAMILY_GENERIC: - { - // Pounce Bleed - if ( m_spellProto->SpellIconID == 147 && m_spellProto->SpellVisual[0] == 0 ) - { - // $AP*0.18/6 bonus per tick - m_amount += int32(caster->GetTotalAttackPowerValue(BASE_ATTACK) * 3 / 100); - return; - } - break; - } case SPELLFAMILY_WARRIOR: { // Rend @@ -4741,20 +4730,6 @@ void AuraEffect::HandlePeriodicDamage(bool apply, bool Real, bool changeAmount) } case SPELLFAMILY_DRUID: { - // Rake - if (m_spellProto->SpellFamilyFlags[0] & 0x1000) - { - // $AP*0.18 bonus per tick - m_amount += int32(caster->GetTotalAttackPowerValue(BASE_ATTACK) * 18 / 100); - return; - } - // Lacerate - if (m_spellProto->SpellFamilyFlags[1] & 0x0000000100) - { - // $AP*0.05/5 bonus per tick - m_amount += int32(caster->GetTotalAttackPowerValue(BASE_ATTACK) / 100); - return; - } // Rip if (m_spellProto->SpellVisual[0] == 3941) { @@ -4777,13 +4752,6 @@ void AuraEffect::HandlePeriodicDamage(bool apply, bool Real, bool changeAmount) m_amount += int32(caster->GetTotalAttackPowerValue(BASE_ATTACK) * cp / 100); return; } - // Lock Jaw - if (m_spellProto->SpellFamilyFlags[1] & 0x10000000) - { - // 0.15*$AP - m_amount += int32(caster->GetTotalAttackPowerValue(BASE_ATTACK) * 15 / 100); - return; - } break; } case SPELLFAMILY_ROGUE: @@ -4804,38 +4772,6 @@ void AuraEffect::HandlePeriodicDamage(bool apply, bool Real, bool changeAmount) m_amount += int32(caster->GetTotalAttackPowerValue(BASE_ATTACK) * AP_per_combo[cp]); return; } - // Garrote - if (m_spellProto->SpellFamilyFlags[0] & 0x100) - { - // $AP*0.07 bonus per tick - m_amount += int32(caster->GetTotalAttackPowerValue(BASE_ATTACK) * 7 / 100); - return; - } - // Deadly Poison - if (m_spellProto->SpellFamilyFlags[0] & 0x10000) - { - // 0.08*$AP / 4 * amount of stack - m_amount += int32(caster->GetTotalAttackPowerValue(BASE_ATTACK) * 2 * GetParentAura()->GetStackAmount() / 100); - return; - } - break; - } - case SPELLFAMILY_HUNTER: - { - // Serpent Sting - if (m_spellProto->SpellFamilyFlags[0] & 0x4000) - { - // $RAP*0.1/5 bonus per tick - m_amount += int32(caster->GetTotalAttackPowerValue(RANGED_ATTACK) * 10 / 500); - return; - } - // Immolation Trap - if (m_spellProto->SpellFamilyFlags[0] & 0x4 && m_spellProto->SpellIconID == 678) - { - // $RAP*0.1/5 bonus per tick - m_amount += int32(caster->GetTotalAttackPowerValue(RANGED_ATTACK) * 10 / 500); - return; - } break; } default: diff --git a/src/game/SpellAuras.h b/src/game/SpellAuras.h index db747da3c54..4c37eeb121f 100644 --- a/src/game/SpellAuras.h +++ b/src/game/SpellAuras.h @@ -353,6 +353,7 @@ class TRINITY_DLL_SPEC AuraEffect virtual void Update(uint32 diff); uint32 GetTickNumber() const { return m_tickNumber; } + int32 GetTotalTicks () const { return m_amplitude ? (GetParentAura()->GetAuraMaxDuration() / m_amplitude) : 1;} bool IsAreaAura() const { return m_isAreaAura; } bool IsPeriodic() const { return m_isPeriodic; } bool IsPersistent() const { return m_isPersistent; } diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp index ebf0037781d..bd0b1766acb 100644 --- a/src/game/SpellEffects.cpp +++ b/src/game/SpellEffects.cpp @@ -386,13 +386,6 @@ void Spell::SpellDamageSchoolDmg(uint32 effect_idx) damage = 200; break; } - // Intercept (warrior spell trigger) - case 20253: - case 61491: - { - damage+= uint32(m_caster->GetTotalAttackPowerValue(BASE_ATTACK) * 0.12f); - break; - } // arcane charge. must only affect demons (also undead?) case 45072: { @@ -426,9 +419,7 @@ void Spell::SpellDamageSchoolDmg(uint32 effect_idx) { // Bloodthirst if(m_spellInfo->SpellFamilyFlags[1] & 0x400) - { damage = uint32(damage * (m_caster->GetTotalAttackPowerValue(BASE_ATTACK)) / 100); - } // Shield Slam else if(m_spellInfo->SpellFamilyFlags[1] & 0x200 && m_spellInfo->Category==1209) damage += int32(m_caster->GetShieldBlockValue()); @@ -438,12 +429,6 @@ void Spell::SpellDamageSchoolDmg(uint32 effect_idx) damage = uint32(damage * m_caster->GetTotalAttackPowerValue(BASE_ATTACK) / 100); m_caster->ModifyAuraState(AURA_STATE_WARRIOR_VICTORY_RUSH, false); } - // Revenge ${$m1+$AP*0.207} to ${$M1+$AP*0.207} - else if(m_spellInfo->SpellFamilyFlags[0] & 0x400) - damage+= uint32(m_caster->GetTotalAttackPowerValue(BASE_ATTACK) * 0.207f); - // Heroic Throw ${$m1+$AP*.50} - else if(m_spellInfo->SpellFamilyFlags[1] & 0x00000001) - damage+= uint32(m_caster->GetTotalAttackPowerValue(BASE_ATTACK) * 0.5f); // Shockwave ${$m3/100*$AP} else if(m_spellInfo->SpellFamilyFlags[1] & 0x00008000) { @@ -452,12 +437,6 @@ void Spell::SpellDamageSchoolDmg(uint32 effect_idx) damage+= int32(m_caster->GetTotalAttackPowerValue(BASE_ATTACK) * pct / 100); break; } - // Thunder Clap - else if(m_spellInfo->SpellFamilyFlags[0] & 0x80) - { - damage += int32(m_caster->GetTotalAttackPowerValue(BASE_ATTACK) * 12 / 100); - break; - } break; } case SPELLFAMILY_WARLOCK: @@ -520,17 +499,6 @@ void Spell::SpellDamageSchoolDmg(uint32 effect_idx) damage += int32(energy * multiple); damage += int32(((Player*)m_caster)->GetComboPoints() * ap * 7 / 100); } - // Rake - else if(m_spellInfo->SpellFamilyFlags[0] & 0x1000 && m_spellInfo->Effect[2]==SPELL_EFFECT_ADD_COMBO_POINTS) - { - // $AP*0.01 bonus - damage += int32(m_caster->GetTotalAttackPowerValue(BASE_ATTACK) / 100); - } - // Swipe - else if(m_spellInfo->SpellFamilyFlags[1] & 0x00100000) - { - damage += int32(m_caster->GetTotalAttackPowerValue(BASE_ATTACK)*0.08f); - } break; } case SPELLFAMILY_ROGUE: @@ -582,53 +550,14 @@ void Spell::SpellDamageSchoolDmg(uint32 effect_idx) damage += combo*40; } } - // Gouge - else if(m_spellInfo->SpellFamilyFlags[0] & 0x8) - { - damage += int32(m_caster->GetTotalAttackPowerValue(BASE_ATTACK)*0.21f); - } - // Instant Poison - else if(m_spellInfo->SpellFamilyFlags[0] & 0x2000) - { - damage += int32(m_caster->GetTotalAttackPowerValue(BASE_ATTACK)*0.10f); - } - // Wound Poison - else if(m_spellInfo->SpellFamilyFlags[0] & 0x10000000) - { - damage += int32(m_caster->GetTotalAttackPowerValue(BASE_ATTACK)*0.04f); - } break; } case SPELLFAMILY_HUNTER: { - // Gore - if (m_spellInfo->SpellIconID == 1578) - { - damage+= rand()%2 ? damage : 0; - } - // Mongoose Bite - else if((m_spellInfo->SpellFamilyFlags[0] & 0x2) && m_spellInfo->SpellVisual[0]==342) - { - damage += int32(m_caster->GetTotalAttackPowerValue(BASE_ATTACK)*0.2f); - } - // Counterattack - else if(m_spellInfo->SpellFamilyFlags[1] & 0x00080000) - { - damage += int32(m_caster->GetTotalAttackPowerValue(BASE_ATTACK)*0.2f); - } - // Arcane Shot - else if((m_spellInfo->SpellFamilyFlags[0] & 0x00000800) && m_spellInfo->maxLevel > 0) - { - damage += int32(m_caster->GetTotalAttackPowerValue(RANGED_ATTACK)*0.15f); - } // Steady Shot - else if(m_spellInfo->SpellFamilyFlags[1] & 0x1) + if(m_spellInfo->SpellFamilyFlags[1] & 0x1) { - int32 base = irand((int32)m_caster->GetWeaponDamageRange(RANGED_ATTACK, MINDAMAGE),(int32)m_caster->GetWeaponDamageRange(RANGED_ATTACK, MAXDAMAGE)); - damage += int32(float(base)/m_caster->GetAttackTime(RANGED_ATTACK)*2800 + m_caster->GetTotalAttackPowerValue(RANGED_ATTACK)*0.1f); - bool found = false; - // check dazed affect Unit::AuraEffectList const& decSpeedList = unitTarget->GetAurasByType(SPELL_AURA_MOD_DECREASE_SPEED); for(Unit::AuraEffectList::const_iterator iter = decSpeedList.begin(); iter != decSpeedList.end(); ++iter) @@ -644,11 +573,6 @@ void Spell::SpellDamageSchoolDmg(uint32 effect_idx) if(found) damage += m_spellInfo->EffectBasePoints[1]; } - // Explosive Trap Effect - else if(m_spellInfo->SpellFamilyFlags[0] & 0x00000004) - { - damage += int32(m_caster->GetTotalAttackPowerValue(RANGED_ATTACK)*0.1f); - } break; } case SPELLFAMILY_PALADIN: diff --git a/src/game/SpellMgr.cpp b/src/game/SpellMgr.cpp index eecfcb6b1c8..0002e967304 100644 --- a/src/game/SpellMgr.cpp +++ b/src/game/SpellMgr.cpp @@ -1228,8 +1228,8 @@ void SpellMgr::LoadSpellBonusess() { mSpellBonusMap.clear(); // need for reload case uint32 count = 0; - // 0 1 2 3 - QueryResult *result = WorldDatabase.Query("SELECT entry, direct_bonus, dot_bonus, ap_bonus FROM spell_bonus_data"); + // 0 1 2 3 4 + QueryResult *result = WorldDatabase.Query("SELECT entry, direct_bonus, dot_bonus, ap_bonus, ap_dot_bonus FROM spell_bonus_data"); if( !result ) { barGoLink bar( 1 ); @@ -1258,8 +1258,10 @@ void SpellMgr::LoadSpellBonusess() sbe.direct_damage = fields[1].GetFloat(); sbe.dot_damage = fields[2].GetFloat(); sbe.ap_bonus = fields[3].GetFloat(); + sbe.ap_dot_bonus = fields[4].GetFloat(); mSpellBonusMap[entry] = sbe; + ++count; } while( result->NextRow() ); delete result; @@ -1281,12 +1283,14 @@ bool SpellMgr::IsSpellProcEventCanTriggeredBy(SpellProcEventEntry const* spellPr /* Check Periodic Auras - * Both hots and dots can trigger if spell has no PROC_FLAG_SUCCESSFUL_DAMAGING_SPELL_HIT - nor PROC_FLAG_SUCCESSFUL_HEALING_SPELL + *Dots can trigger if spell has no PROC_FLAG_SUCCESSFUL_NEGATIVE_MAGIC_SPELL + nor PROC_FLAG_TAKEN_POSITIVE_MAGIC_SPELL + + *Only Hots can trigger if spell has PROC_FLAG_TAKEN_POSITIVE_MAGIC_SPELL - *Only Hots can trigger if spell has PROC_FLAG_SUCCESSFUL_HEALING_SPELL + *Only dots can trigger if spell has both positivity flags or PROC_FLAG_SUCCESSFUL_NEGATIVE_MAGIC_SPELL - *Only dots can trigger if spell has both positivity flags or PROC_FLAG_SUCCESSFUL_DAMAGING_SPELL_HIT + *Aura has to have PROC_FLAG_TAKEN_POSITIVE_MAGIC_SPELL or spellfamily specified to trigger from Hot */ @@ -1300,6 +1304,8 @@ bool SpellMgr::IsSpellProcEventCanTriggeredBy(SpellProcEventEntry const* spellPr else if (EventProcFlag & PROC_FLAG_TAKEN_POSITIVE_MAGIC_SPELL && !(procExtra & PROC_EX_INTERNAL_HOT)) return false; + else if (procExtra & PROC_EX_INTERNAL_HOT) + procExtra |= PROC_EX_INTERNAL_REQ_FAMILY; } if (procFlags & PROC_FLAG_ON_TAKE_PERIODIC) @@ -1312,6 +1318,8 @@ bool SpellMgr::IsSpellProcEventCanTriggeredBy(SpellProcEventEntry const* spellPr else if (EventProcFlag & PROC_FLAG_TAKEN_POSITIVE_MAGIC_SPELL && !(procExtra & PROC_EX_INTERNAL_HOT)) return false; + else if (procExtra & PROC_EX_INTERNAL_HOT) + procExtra |= PROC_EX_INTERNAL_REQ_FAMILY; } // Trap casts are active by default if (procFlags & PROC_FLAG_ON_TRAP_ACTIVATION) @@ -1356,7 +1364,7 @@ bool SpellMgr::IsSpellProcEventCanTriggeredBy(SpellProcEventEntry const* spellPr } } - if (procExtra & (PROC_EX_INTERNAL_REQ_FAMILY | PROC_EX_INTERNAL_HOT)) + if (procExtra & (PROC_EX_INTERNAL_REQ_FAMILY)) { if (!hasFamilyMask) return false; diff --git a/src/game/SpellMgr.h b/src/game/SpellMgr.h index fe5da3cda55..da23bddc4af 100644 --- a/src/game/SpellMgr.h +++ b/src/game/SpellMgr.h @@ -322,7 +322,7 @@ inline bool IsAutoRepeatRangedSpell(SpellEntry const* spellInfo) inline bool IsRangedWeaponSpell(SpellEntry const* spellInfo) { //spell->DmgClass == SPELL_DAMAGE_CLASS_RANGED should be checked outside - return (spellInfo->SpellFamilyName == SPELLFAMILY_HUNTER) // for 53352, cannot find better way + return (spellInfo->SpellFamilyName == SPELLFAMILY_HUNTER && !(spellInfo->SpellFamilyFlags[1] & 0x100000000)) // for 53352, cannot find better way || (spellInfo->EquippedItemSubClassMask & ITEM_SUBCLASS_MASK_WEAPON_RANGED); } @@ -500,6 +500,7 @@ struct SpellBonusEntry float direct_damage; float dot_damage; float ap_bonus; + float ap_dot_bonus; }; typedef UNORDERED_MAP<uint32, SpellProcEventEntry> SpellProcEventMap; diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index c6154ab0853..15a52ff62f6 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -9320,21 +9320,29 @@ uint32 Unit::SpellDamageBonus(Unit *pVictim, SpellEntry const *spellProto, uint3 DoneAdvertisedBenefit += ((Guardian*)this)->GetBonusDamage(); // Check for table values - float coeff; + float coeff = 0; SpellBonusEntry const* bonus = spellmgr.GetSpellBonusData(spellProto->Id); if (bonus) { if (damagetype == DOT) + { coeff = bonus->dot_damage; + if (bonus->ap_dot_bonus > 0) + DoneTotal+=bonus->ap_dot_bonus * stack * ApCoeffMod * GetTotalAttackPowerValue( + (IsRangedWeaponSpell(spellProto) && spellProto->DmgClass !=SPELL_DAMAGE_CLASS_MELEE) ? RANGED_ATTACK : BASE_ATTACK); + } else + { coeff = bonus->direct_damage; - if (bonus->ap_bonus) - DoneTotal+=bonus->ap_bonus * GetTotalAttackPowerValue(BASE_ATTACK) * stack * ApCoeffMod; + if (bonus->ap_bonus > 0) + DoneTotal+=bonus->ap_dot_bonus * stack * ApCoeffMod * GetTotalAttackPowerValue( + (IsRangedWeaponSpell(spellProto) && spellProto->DmgClass !=SPELL_DAMAGE_CLASS_MELEE)? RANGED_ATTACK : BASE_ATTACK); + } } // Default calculation if (DoneAdvertisedBenefit || TakenAdvertisedBenefit) { - if(!bonus) + if(!bonus || coeff < 0) { // Damage Done from spell damage bonus int32 CastingTime = !IsChanneledSpell(spellProto) ? GetSpellCastTime(spellProto) : GetSpellDuration(spellProto); @@ -9787,16 +9795,24 @@ uint32 Unit::SpellHealingBonus(Unit *pVictim, SpellEntry const *spellProto, uint // Check for table values SpellBonusEntry const* bonus = !scripted ? spellmgr.GetSpellBonusData(spellProto->Id) : NULL; - float coeff; + float coeff = 0; float factorMod = 1.0f; if (bonus) { if (damagetype == DOT) + { coeff = bonus->dot_damage; + if (bonus->ap_dot_bonus > 0) + DoneTotal+=bonus->ap_dot_bonus * stack * GetTotalAttackPowerValue( + (IsRangedWeaponSpell(spellProto) && spellProto->DmgClass !=SPELL_DAMAGE_CLASS_MELEE)? RANGED_ATTACK : BASE_ATTACK); + } else + { coeff = bonus->direct_damage; - if (bonus->ap_bonus) - DoneTotal+=bonus->ap_bonus * GetTotalAttackPowerValue(BASE_ATTACK) * stack; + if (bonus->ap_bonus > 0) + DoneTotal+=bonus->ap_dot_bonus * stack * GetTotalAttackPowerValue( + (IsRangedWeaponSpell(spellProto) && spellProto->DmgClass !=SPELL_DAMAGE_CLASS_MELEE)? RANGED_ATTACK : BASE_ATTACK); + } } else // scripted bonus { @@ -9830,7 +9846,7 @@ uint32 Unit::SpellHealingBonus(Unit *pVictim, SpellEntry const *spellProto, uint // Default calculation if (DoneAdvertisedBenefit || TakenAdvertisedBenefit) { - if(!bonus && !scripted) + if((!bonus && !scripted) || coeff < 0) { // Damage Done from spell damage bonus int32 CastingTime = !IsChanneledSpell(spellProto) ? GetSpellCastTime(spellProto) : GetSpellDuration(spellProto); |