diff options
| -rw-r--r-- | sql/updates/1766_world.sql | 2 | ||||
| -rw-r--r-- | sql/updates/CMakeLists.txt | 1 | ||||
| -rw-r--r-- | src/game/Unit.cpp | 26 |
3 files changed, 27 insertions, 2 deletions
diff --git a/sql/updates/1766_world.sql b/sql/updates/1766_world.sql new file mode 100644 index 00000000000..7ef48e41ce2 --- /dev/null +++ b/sql/updates/1766_world.sql @@ -0,0 +1,2 @@ +REPLACE INTO `spell_proc_event` VALUES (33182, 0x00, 6, 32, 0x00000000, 0x00000000, 0x00004000, 0x00000000, 0.000000, 0.000000, 0); +REPLACE INTO `spell_proc_event` VALUES (33174, 0x00, 6, 32, 0x00000000, 0x00000000, 0x00004000, 0x00000000, 0.000000, 0.000000, 0);
\ No newline at end of file diff --git a/sql/updates/CMakeLists.txt b/sql/updates/CMakeLists.txt index e009d8ee1ff..21cd2a28a7d 100644 --- a/sql/updates/CMakeLists.txt +++ b/sql/updates/CMakeLists.txt @@ -73,4 +73,5 @@ INSTALL(FILES 1732_world.sql 1755_world.sql 1764_world.sql +1766_world.sql DESTINATION share/trinity/sql/updates)
\ No newline at end of file diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index b0822a06608..bdad465c38f 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -4886,6 +4886,28 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, Aura* triggeredByAu { switch (dummySpell->Id) { + // Improved Divine Spirit + case 33174: + case 33182: + { + // Tricky thing here, we find current aura from spell by caster and change its modifier value + int32 spelldmg = CalculateSpellDamage(procSpell, 0, procSpell->EffectBasePoints[0],pVictim); + Aura * Aur = NULL; + spellEffectPair spair = spellEffectPair(procSpell->Id, effIndex); + for(AuraMap::const_iterator itr = pVictim->GetAuras().lower_bound(spair); itr != pVictim->GetAuras().upper_bound(spair); ++itr) + { + if (itr->second->GetCasterGUID()==GetGUID()) + Aur = itr->second; + } + if (!Aur) + return false; + // Remove aura mods + Aur->ApplyModifier(false,true); + Aur->GetModifier()->m_amount += spelldmg * triggerAmount / 100; + // Apply extended aura mods + Aur->ApplyModifier(true,true); + break; + } // Eye for an Eye case 9799: case 25988: @@ -5011,7 +5033,7 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, Aura* triggeredByAu // Overkill case 58426: { - basepoints0 = 1000; + basepoints0 = -triggerAmount; triggered_spell_id = 58425; target=this; break; @@ -5821,7 +5843,7 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, Aura* triggeredByAu // Master of subtlety else if( dummySpell->SpellIconID == 2285 ) { - basepoints0 = triggeredAmount; + basepoints0 = triggerAmount; triggered_spell_id = 31665; target=this; break; |
