diff --git a/sql/mangos.sql b/sql/mangos.sql index 0338d06c1..db507fd4c 100644 --- a/sql/mangos.sql +++ b/sql/mangos.sql @@ -24,7 +24,7 @@ CREATE TABLE `db_version` ( `version` varchar(120) default NULL, `creature_ai_version` varchar(120) default NULL, `cache_id` int(10) default '0', - `required_8873_02_mangos_spell_learn_spell` bit(1) default NULL + `required_8882_03_mangos_spell_bonus_data` bit(1) default NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Used DB version notes'; -- @@ -14048,6 +14048,7 @@ INSERT INTO `spell_bonus_data` VALUES (2061, 0.8068, 0, 0, 'Priest - Flash Heal'), (2060, 1.6135, 0, 0, 'Priest - Greater Heal'), (23455, 0.3035, 0, 0, 'Priest - Holy Nova Heal'), +(63675, 0, 0, 0, 'Priest - Improved Devouring Plague Triggered'), (8129, 0, 0, 0, 'Priest - Mana Burn'), (58381, 0.257143,0, 0, 'Priest - Mind Flay Triggered'), (49821, 0.14286,0, 0, 'Priest - Mind Sear Trigger'), @@ -14440,7 +14441,11 @@ INSERT INTO spell_chain VALUES (25208,11574,772,8,0), (46845,25208,772,9,0), (47465,46845,772,10,0), -/*ThunderClap*/ +/*Taste for Blood*/ +(56636,0,56636,1,0), +(56637,56636,56636,2,0), +(56638,56637,56636,3,0), +/*Thunder Clap*/ (6343,0,6343,1,0), (8198,6343,6343,2,0), (8204,8198,6343,3,0), @@ -18304,8 +18309,6 @@ INSERT INTO `spell_proc_event` VALUES (56613, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0.000000, 0.000000, 0), (56614, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0.000000, 0.000000, 0), (56636, 0x00000000, 4, 0x00000020, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 6), -(56637, 0x00000000, 4, 0x00000020, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 6), -(56638, 0x00000000, 4, 0x00000020, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 6), (56816, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000030, 0.000000, 0.000000, 0), (56821, 0x00000000, 8, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0.000000, 0.000000, 0), (56822, 0x00000000, 15, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0), @@ -18372,6 +18375,7 @@ INSERT INTO `spell_proc_event` VALUES (63156, 0x00000000, 0, 0x00000001, 0x00000040, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0), (63245, 0x00000000, 5, 0x00000100, 0x00800000, 0x00000000, 0x00000000, 0x00000002, 0.000000, 0.000000, 0), (63320, 0x00000000, 5, 0x00040000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0), +(63625, 0x00000000, 6, 0x02000000, 0x00000000, 0x00000000, 0x00010000, 0x00000000, 0.000000, 0.000000, 0), (63730, 0x00000000, 6, 0x00000800, 0x00000004, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0), (64928, 0x00000000, 11, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0.000000, 0.000000, 0), (65661, 0x00000000, 15, 0x00400010, 0x20020004, 0x00000000, 0x00000010, 0x00000000, 0.000000, 100.000000, 0); diff --git a/sql/updates/8882_01_mangos_spell_proc_event.sql b/sql/updates/8882_01_mangos_spell_proc_event.sql new file mode 100644 index 000000000..bc8c52539 --- /dev/null +++ b/sql/updates/8882_01_mangos_spell_proc_event.sql @@ -0,0 +1,7 @@ +ALTER TABLE db_version CHANGE COLUMN required_8873_02_mangos_spell_learn_spell required_8882_01_mangos_spell_proc_event bit; + +DELETE FROM `spell_proc_event` WHERE `entry` IN (63625); +INSERT INTO `spell_proc_event` VALUES +(63625, 0x00000000, 6, 0x02000000, 0x00000000, 0x00000000, 0x00010000, 0x00000000, 0.000000, 0.000000, 0); + +DELETE FROM spell_proc_event WHERE entry IN (56637, 56638); diff --git a/sql/updates/8882_02_mangos_spell_chain.sql b/sql/updates/8882_02_mangos_spell_chain.sql new file mode 100644 index 000000000..4305211da --- /dev/null +++ b/sql/updates/8882_02_mangos_spell_chain.sql @@ -0,0 +1,9 @@ +ALTER TABLE db_version CHANGE COLUMN required_8882_01_mangos_spell_proc_event required_8882_02_mangos_spell_chain bit; + +DELETE FROM spell_chain WHERE first_spell = 56636; + +/*Taste for Blood*/ +INSERT INTO spell_chain VALUES + (56636, 0, 56636, 1, 0), + (56637, 56636, 56636, 2, 0), + (56638, 56637, 56636, 3, 0); diff --git a/sql/updates/8882_03_mangos_spell_bonus_data.sql b/sql/updates/8882_03_mangos_spell_bonus_data.sql new file mode 100644 index 000000000..e297e8656 --- /dev/null +++ b/sql/updates/8882_03_mangos_spell_bonus_data.sql @@ -0,0 +1,5 @@ +ALTER TABLE db_version CHANGE COLUMN required_8882_02_mangos_spell_chain required_8882_03_mangos_spell_bonus_data bit; + +DELETE FROM spell_bonus_data WHERE entry = 63675; +INSERT INTO spell_bonus_data VALUES +(63675, 0, 0, 0, 'Priest - Improved Devouring Plague Triggered'); diff --git a/sql/updates/Makefile.am b/sql/updates/Makefile.am index 42b2aa99d..3323d58bb 100644 --- a/sql/updates/Makefile.am +++ b/sql/updates/Makefile.am @@ -175,6 +175,9 @@ pkgdata_DATA = \ 8873_01_mangos_spell_proc_event.sql \ 8873_02_mangos_spell_learn_spell.sql \ 8874_01_characters_character_skills.sql \ + 8882_01_mangos_spell_proc_event.sql \ + 8882_02_mangos_spell_chain.sql \ + 8882_03_mangos_spell_bonus_data.sql \ README ## Additional files to include when running 'make dist' @@ -330,4 +333,7 @@ EXTRA_DIST = \ 8873_01_mangos_spell_proc_event.sql \ 8873_02_mangos_spell_learn_spell.sql \ 8874_01_characters_character_skills.sql \ + 8882_01_mangos_spell_proc_event.sql \ + 8882_02_mangos_spell_chain.sql \ + 8882_03_mangos_spell_bonus_data.sql \ README diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index 3fd9a67e9..7e3737c0b 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -5426,22 +5426,40 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, Aura* triggeredByAu return true; // no hidden cooldown } - // Divine Aegis - if (dummySpell->SpellIconID == 2820) + switch(dummySpell->SpellIconID) { - basepoints0 = damage * triggerAmount/100; - triggered_spell_id = 47753; - break; - } - // Improved Shadowform - else if (dummySpell->SpellIconID == 217) - { - if(!roll_chance_i(triggerAmount)) - return false; + // Improved Shadowform + case 217: + { + if(!roll_chance_i(triggerAmount)) + return false; - RemoveSpellsCausingAura(SPELL_AURA_MOD_ROOT); - RemoveSpellsCausingAura(SPELL_AURA_MOD_DECREASE_SPEED); - break; + RemoveSpellsCausingAura(SPELL_AURA_MOD_ROOT); + RemoveSpellsCausingAura(SPELL_AURA_MOD_DECREASE_SPEED); + break; + } + // Divine Aegis + case 2820: + { + basepoints0 = damage * triggerAmount/100; + triggered_spell_id = 47753; + break; + } + // Improved Devouring Plague + case 3790: + { + if (!procSpell) + return false; + + Aura* leachAura = pVictim->GetAura(procSpell->Id,0); + if (!leachAura) + return false; + + int32 damagefromticks = SpellDamageBonus(pVictim, procSpell, (leachAura->GetModifier()->m_amount* GetSpellAuraMaxTicks(procSpell)), DOT); + basepoints0 = damagefromticks * triggerAmount / 100; + triggered_spell_id = 63675; + break; + } } switch(dummySpell->Id) diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index 13b688be4..b4fc24434 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "8881" + #define REVISION_NR "8882" #endif // __REVISION_NR_H__ diff --git a/src/shared/revision_sql.h b/src/shared/revision_sql.h index 2843f48b9..b167a4634 100644 --- a/src/shared/revision_sql.h +++ b/src/shared/revision_sql.h @@ -1,6 +1,6 @@ #ifndef __REVISION_SQL_H__ #define __REVISION_SQL_H__ #define REVISION_DB_CHARACTERS "required_8874_01_characters_character_skills" - #define REVISION_DB_MANGOS "required_8873_02_mangos_spell_learn_spell" + #define REVISION_DB_MANGOS "required_8882_03_mangos_spell_bonus_data" #define REVISION_DB_REALMD "required_8728_01_realmd_account" #endif // __REVISION_SQL_H__