diff --git a/sql/mangos.sql b/sql/mangos.sql index 9e22461ab..46631d957 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_8377_01_mangos_spell_area` bit(1) default NULL + `required_8392_02_mangos_spell_chain` bit(1) default NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Used DB version notes'; -- @@ -14413,6 +14413,9 @@ INSERT INTO spell_chain VALUES (63625,0,63625,1,0), (63626,63625,63625,2,0), (63627,63626,63625,3,0), +/*Improved Shadowform*/ +(47569,0,47569,1,0), +(47570,47569,47569,2,0), /*Mind Blast*/ (8092,0,8092,1,0), (8102,8092,8092,2,0), @@ -17727,6 +17730,7 @@ INSERT INTO `spell_proc_event` VALUES (47515, 0x00000000, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0.000000, 0.000000, 0), (47516, 0x00000000, 6, 0x00001800, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0), (47517, 0x00000000, 6, 0x00001800, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0), +(47569, 0x00000000, 6, 0x00004000, 0x00000000, 0x00000000, 0x00004000, 0x00000000, 0.000000, 0.000000, 0), (47580, 0x00000000, 6, 0x00000000, 0x00000000, 0x00000040, 0x00000000, 0x00010000, 0.000000, 0.000000, 0), (47581, 0x00000000, 6, 0x00000000, 0x00000000, 0x00000040, 0x00000000, 0x00010000, 0.000000, 0.000000, 0), (47582, 0x00000000, 6, 0x00000000, 0x00000000, 0x00000040, 0x00000000, 0x00010000, 0.000000, 0.000000, 0), diff --git a/sql/updates/8392_01_mangos_spell_proc_event.sql b/sql/updates/8392_01_mangos_spell_proc_event.sql new file mode 100644 index 000000000..39a7cc17b --- /dev/null +++ b/sql/updates/8392_01_mangos_spell_proc_event.sql @@ -0,0 +1,5 @@ +ALTER TABLE db_version CHANGE COLUMN required_8377_01_mangos_spell_area required_8392_01_mangos_spell_proc_event bit; + +DELETE FROM `spell_proc_event` WHERE `entry` IN (47569); +INSERT INTO `spell_proc_event` VALUES +(47569, 0x00000000, 6, 0x00004000, 0x00000000, 0x00000000, 0x00004000, 0x00000000, 0.000000, 0.000000, 0); diff --git a/sql/updates/8392_02_mangos_spell_chain.sql b/sql/updates/8392_02_mangos_spell_chain.sql new file mode 100644 index 000000000..efab4d1ea --- /dev/null +++ b/sql/updates/8392_02_mangos_spell_chain.sql @@ -0,0 +1,7 @@ +ALTER TABLE db_version CHANGE COLUMN required_8392_01_mangos_spell_proc_event required_8392_02_mangos_spell_chain bit; + +DELETE FROM `spell_chain` WHERE `spell_id` IN (47569,47570); +INSERT INTO `spell_chain` (`spell_id`, `prev_spell`, `first_spell`, `rank`, `req_spell`) VALUES +/*Improved Shadowform*/ +(47569,0,47569,1,0), +(47570,47569,47569,2,0); diff --git a/sql/updates/Makefile.am b/sql/updates/Makefile.am index f25b2401f..6931fbec0 100644 --- a/sql/updates/Makefile.am +++ b/sql/updates/Makefile.am @@ -83,6 +83,8 @@ pkgdata_DATA = \ 8361_01_mangos_spell_bonus_data.sql \ 8364_01_mangos_db_version.sql \ 8377_01_mangos_spell_area.sql \ + 8392_01_mangos_spell_proc_event.sql \ + 8392_02_mangos_spell_chain.sql \ README ## Additional files to include when running 'make dist' @@ -146,4 +148,6 @@ EXTRA_DIST = \ 8361_01_mangos_spell_bonus_data.sql \ 8364_01_mangos_db_version.sql \ 8377_01_mangos_spell_area.sql \ + 8392_01_mangos_spell_proc_event.sql \ + 8392_02_mangos_spell_chain.sql \ README diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index 50717b657..f3d4aa9a2 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -5223,6 +5223,7 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, Aura* triggeredByAu pVictim->CastSpell(pVictim,57669,true,castItem,triggeredByAura); return true; // no hidden cooldown } + // Divine Aegis if (dummySpell->SpellIconID == 2820) { @@ -5230,6 +5231,17 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, Aura* triggeredByAu triggered_spell_id = 47753; break; } + // Improved Shadowform + else if (dummySpell->SpellIconID == 217) + { + if(!roll_chance_i(triggerAmount)) + return false; + + RemoveSpellsCausingAura(SPELL_AURA_MOD_ROOT); + RemoveSpellsCausingAura(SPELL_AURA_MOD_DECREASE_SPEED); + break; + } + switch(dummySpell->Id) { // Vampiric Embrace diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index 834eb23d6..cc7d100fc 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 "8391" + #define REVISION_NR "8392" #endif // __REVISION_NR_H__