aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/game/Spell.cpp1
-rw-r--r--src/game/Unit.cpp12
2 files changed, 10 insertions, 3 deletions
diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp
index 2656e1af3c5..a461d49a554 100644
--- a/src/game/Spell.cpp
+++ b/src/game/Spell.cpp
@@ -1194,6 +1194,7 @@ void Spell::DoSpellHitOnUnit(Unit *unit, const uint32 effectMask)
if(roll_chance_i(i->second))
{
m_caster->CastSpell(unit, i->first, true);
+ sLog.outDebug("Spell %d triggered spell %d by SPELL_AURA_ADD_TARGET_TRIGGER aura", m_spellInfo->Id, i->first);
}
if (GetSpellDuration(i->first)==-1)
{
diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp
index 4aee8dd99ba..3cad4a08d1b 100644
--- a/src/game/Unit.cpp
+++ b/src/game/Unit.cpp
@@ -9056,6 +9056,7 @@ uint32 Unit::SpellHealingBonus(Unit *pVictim, SpellEntry const *spellProto, uint
// Check for table values
SpellBonusEntry const* bonus = spellmgr.GetSpellBonusData(spellProto->Id);
float coeff;
+ float factorMod = 1.0f;
bool scripted = false;
if (bonus)
{
@@ -9081,6 +9082,11 @@ uint32 Unit::SpellHealingBonus(Unit *pVictim, SpellEntry const *spellProto, uint
else
coeff = 1.0f;
}
+ // Earthliving - 0.45% of normal hot coeff
+ else if (spellProto->SpellFamilyName==SPELLFAMILY_SHAMAN && spellProto->SpellFamilyFlags[1] & 0x80000)
+ {
+ factorMod *= 0.45f;
+ }
}
// Default calculation
@@ -9137,15 +9143,15 @@ uint32 Unit::SpellHealingBonus(Unit *pVictim, SpellEntry const *spellProto, uint
coeff = (CastingTime / 3500.0f) * DotFactor * 1.88f;
}
- float coeff2 = CalculateLevelPenalty(spellProto)* stack;
- TakenTotal += TakenAdvertisedBenefit * coeff * coeff2;
+ factorMod *= CalculateLevelPenalty(spellProto)* stack;
+ TakenTotal += TakenAdvertisedBenefit * coeff * factorMod;
if(Player* modOwner = GetSpellModOwner())
{
coeff *= 100.0f;
modOwner->ApplySpellMod(spellProto->Id, SPELLMOD_SPELL_BONUS_DAMAGE, coeff);
coeff /= 100.0f;
}
- DoneTotal += DoneAdvertisedBenefit * coeff * coeff2;
+ DoneTotal += DoneAdvertisedBenefit * coeff * factorMod;
}
// use float as more appropriate for negative values and percent applying