aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorariel- <ariel-@users.noreply.github.com>2018-02-14 22:07:06 -0300
committerariel- <ariel-@users.noreply.github.com>2018-02-14 22:07:06 -0300
commit1edd81f9d503db566b4836ddffe369a788e271ad (patch)
treed84b4935847378189a34f03e6d90a490fc325896
parent63c436f5fb6924b872050cf5838a4052d9034935 (diff)
Core/Scripts: fix Healing Stream Totem coefficient and animation
-rw-r--r--sql/updates/world/3.3.5/2018_02_15_00_world_335.sql1
-rw-r--r--src/server/game/Spells/SpellMgr.cpp5
-rw-r--r--src/server/scripts/Spells/spell_shaman.cpp23
3 files changed, 19 insertions, 10 deletions
diff --git a/sql/updates/world/3.3.5/2018_02_15_00_world_335.sql b/sql/updates/world/3.3.5/2018_02_15_00_world_335.sql
new file mode 100644
index 00000000000..5d3ab31ad76
--- /dev/null
+++ b/sql/updates/world/3.3.5/2018_02_15_00_world_335.sql
@@ -0,0 +1 @@
+DELETE FROM `spell_bonus_data` WHERE `entry`=52042;
diff --git a/src/server/game/Spells/SpellMgr.cpp b/src/server/game/Spells/SpellMgr.cpp
index 42e978cb918..95bb04aa3c2 100644
--- a/src/server/game/Spells/SpellMgr.cpp
+++ b/src/server/game/Spells/SpellMgr.cpp
@@ -3047,6 +3047,11 @@ void SpellMgr::LoadSpellInfoCorrections()
ApplySpellFix({
379, // Earth Shield
33778, // Lifebloom Final Bloom
+
+ 52042, // Healing Stream Totem
+ // this one is here because we have no SP bonus for dmgclass none spell
+ // but this one should since it's DBC data, it won't crit because it already has can't crit attr
+
64844, // Divine Hymn
71607, // Item - Bauble of True Blood 10m
71646, // Item - Bauble of True Blood 25m
diff --git a/src/server/scripts/Spells/spell_shaman.cpp b/src/server/scripts/Spells/spell_shaman.cpp
index 1b3d63a7ac2..091e06e82fb 100644
--- a/src/server/scripts/Spells/spell_shaman.cpp
+++ b/src/server/scripts/Spells/spell_shaman.cpp
@@ -990,19 +990,22 @@ class spell_sha_healing_stream_totem : public SpellScriptLoader
if (Unit* target = GetHitUnit())
{
Unit* caster = GetCaster();
- if (caster->GetTypeId() == TYPEID_UNIT && caster->IsTotem())
- if (Unit* owner = caster->GetOwner())
- caster = owner;
+ ObjectGuid originalCasterGuid = caster->GetGUID();
- // Restorative Totems
- if (AuraEffect const* aurEff = caster->GetAuraEffect(SPELL_AURA_DUMMY, SPELLFAMILY_SHAMAN, SHAMAN_ICON_ID_RESTORATIVE_TOTEMS, EFFECT_1))
- AddPct(damage, aurEff->GetAmount());
+ if (Player* player = caster->GetAffectingPlayer())
+ {
+ originalCasterGuid = player->GetGUID();
- // Glyph of Healing Stream Totem
- if (AuraEffect const* aurEff = caster->GetAuraEffect(SPELL_SHAMAN_GLYPH_OF_HEALING_STREAM_TOTEM, EFFECT_0))
- AddPct(damage, aurEff->GetAmount());
+ // Restorative Totems
+ if (AuraEffect const* aurEff = player->GetAuraEffect(SPELL_AURA_DUMMY, SPELLFAMILY_SHAMAN, SHAMAN_ICON_ID_RESTORATIVE_TOTEMS, EFFECT_1))
+ AddPct(damage, aurEff->GetAmount());
- CastSpellExtraArgs args(GetOriginalCaster()->GetGUID());
+ // Glyph of Healing Stream Totem
+ if (AuraEffect const* aurEff = player->GetAuraEffect(SPELL_SHAMAN_GLYPH_OF_HEALING_STREAM_TOTEM, EFFECT_0))
+ AddPct(damage, aurEff->GetAmount());
+ }
+
+ CastSpellExtraArgs args(originalCasterGuid);
args.AddSpellBP0(damage);
caster->CastSpell(target, SPELL_SHAMAN_TOTEM_HEALING_STREAM_HEAL, args);
}