aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/updates/6915_world_spell_proc_event.sql1
-rw-r--r--sql/world.sql6
-rw-r--r--src/game/Unit.cpp15
3 files changed, 16 insertions, 6 deletions
diff --git a/sql/updates/6915_world_spell_proc_event.sql b/sql/updates/6915_world_spell_proc_event.sql
new file mode 100644
index 00000000000..5ef9121cc44
--- /dev/null
+++ b/sql/updates/6915_world_spell_proc_event.sql
@@ -0,0 +1 @@
+UPDATE spell_proc_event SET spellFamilyMask0 = spellFamilyMask0 | 0x100, customChance = 100 WHERE entry IN (16198, 16180, 16196); \ No newline at end of file
diff --git a/sql/world.sql b/sql/world.sql
index 4ef214b1c06..5e208424f3d 100644
--- a/sql/world.sql
+++ b/sql/world.sql
@@ -5788,9 +5788,9 @@ INSERT INTO `spell_proc_event` (`entry`,`SchoolMask`,`SpellFamilyName`,`SpellFam
( 16086, 0x04, 11, 0x00000000, 0x00040000, 0x00000000, 0x00030000, 0x00000000, 0, 0, 0), -- Improved Fire Nova Totem (Rank 1)
( 16544, 0x04, 11, 0x00000000, 0x00040000, 0x00000000, 0x00030000, 0x00000000, 0, 0, 0), -- Improved Fire Nova Totem (Rank 2)
( 16176, 0x00, 11, 0x000001C0, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0, 0, 0), -- Ancestral Healing (Rank 1)
-( 16180, 0x00, 11, 0x000000C0, 0x00000000, 0x00000010, 0x00000000, 0x00000002, 0, 0, 0), -- Improved Water Shield (Rank 1)
-( 16196, 0x00, 11, 0x000000C0, 0x00000000, 0x00000010, 0x00000000, 0x00000002, 0, 0, 0), -- Improved Water Shield (Rank 2)
-( 16198, 0x00, 11, 0x000000C0, 0x00000000, 0x00000010, 0x00000000, 0x00000002, 0, 0, 0), -- Improved Water Shield (Rank 3)
+( 16180, 0x00, 11, 0x000001C0, 0x00000000, 0x00000010, 0x00000000, 0x00000002, 0, 100, 0), -- Improved Water Shield (Rank 1)
+( 16196, 0x00, 11, 0x000001C0, 0x00000000, 0x00000010, 0x00000000, 0x00000002, 0, 100, 0), -- Improved Water Shield (Rank 2)
+( 16198, 0x00, 11, 0x000001C0, 0x00000000, 0x00000010, 0x00000000, 0x00000002, 0, 100, 0), -- Improved Water Shield (Rank 3)
( 16235, 0x00, 11, 0x000001C0, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0, 0, 0), -- Ancestral Healing (Rank 2)
( 16240, 0x00, 11, 0x000001C0, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0, 0, 0), -- Ancestral Healing (Rank 3)
( 16256, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0, 0, 0), -- Flurry (Rank 1)
diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp
index 93694a21f2d..51fdd22253c 100644
--- a/src/game/Unit.cpp
+++ b/src/game/Unit.cpp
@@ -6918,15 +6918,24 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, AuraEffect* trigger
// Improved Water Shield
if (dummySpell->SpellIconID == 2287)
{
- // Lesser Healing Wave need aditional 60% roll
- if (procSpell->SpellFamilyFlags[0] & 0x80 && !roll_chance_i(60))
+ // Default chance for Healing Wave and Riptide
+ float chance = triggeredByAura->GetAmount();
+
+ if (procSpell->SpellFamilyFlags[0] & 0x80)
+ // Lesser Healing Wave - 0.6 of default
+ chance *= 0.6f;
+ else if (procSpell->SpellFamilyFlags[0] & 0x100)
+ // Chain heal - 0.3 of default
+ chance *= 0.3f;
+
+ if (!roll_chance_f(chance))
return false;
+
// Water Shield
if (AuraEffect const * aurEff = GetAura(SPELL_AURA_PROC_TRIGGER_SPELL, SPELLFAMILY_SHAMAN, 0, 0x00000020))
{
uint32 spell = aurEff->GetSpellProto()->EffectTriggerSpell[aurEff->GetEffIndex()];
CastSpell(this, spell, true, castItem, triggeredByAura);
- aurEff->GetParentAura()->DropAuraCharge();
return true;
}
return false;