aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorQAston <none@none>2009-05-19 20:33:11 +0200
committerQAston <none@none>2009-05-19 20:33:11 +0200
commite348b671e7cbe8ce328a4bf07c635328a4accb3c (patch)
tree669e62463079ba5af3826a50300f77bd7d0ca649 /src
parent2b47f0c0f7756b89384a3c6969a8a133b3a18ee8 (diff)
*Corret proc from bloodsurge and judgements of the wise
*Do not proc backfire dmg from sw:death if target is killed *Allow hots to proc from selfcast *Fix glyph of corruption. --HG-- branch : trunk
Diffstat (limited to 'src')
-rw-r--r--src/game/SpellAuras.cpp7
-rw-r--r--src/game/SpellEffects.cpp4
-rw-r--r--src/game/Unit.cpp4
3 files changed, 7 insertions, 8 deletions
diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp
index 457b020864c..2145c19e6de 100644
--- a/src/game/SpellAuras.cpp
+++ b/src/game/SpellAuras.cpp
@@ -2777,7 +2777,6 @@ void AuraEffect::HandleAuraDummy(bool apply, bool Real, bool changeAmount)
{
if(apply)
{
- // Reduce backfire damage (dot damage) from Shadow Word: Death
SpellModifier *mod = new SpellModifier;
mod->op = SPELLMOD_CHANCE_OF_SUCCESS;
mod->value = 100;
@@ -6030,15 +6029,13 @@ void AuraEffect::PeriodicTick()
if( BattleGround *bg = ((Player*)pCaster)->GetBattleGround() )
bg->UpdatePlayerScore(((Player*)pCaster), SCORE_HEALING_DONE, gain);
- //Do check before because m_modifier.auraName can be invalidate by DealDamage.
- bool procSpell = (m_auraName == SPELL_AURA_PERIODIC_HEAL && m_target != pCaster);
-
m_target->getHostilRefManager().threatAssist(pCaster, float(gain) * 0.5f, GetSpellProto());
Unit* target = m_target; // aura can be deleted in DealDamage
SpellEntry const* spellProto = GetSpellProto();
bool haveCastItem = GetParentAura()->GetCastItemGUID()!=0;
+ // Health Funnel
// heal for caster damage
if(m_target!=pCaster && spellProto->SpellVisual[0]==163)
{
@@ -6074,7 +6071,7 @@ void AuraEffect::PeriodicTick()
uint32 procVictim = PROC_FLAG_ON_TAKE_PERIODIC;
uint32 procEx = PROC_EX_INTERNAL_HOT | PROC_EX_NORMAL_HIT;
// ignore item heals
- if(procSpell && !haveCastItem)
+ if(!haveCastItem)
pCaster->ProcDamageAndSpell(target, procAttacker, procVictim, procEx, pdamage, BASE_ATTACK, spellProto);
break;
}
diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp
index 09807fe6cd0..3d1cdbf595b 100644
--- a/src/game/SpellEffects.cpp
+++ b/src/game/SpellEffects.cpp
@@ -471,7 +471,7 @@ void Spell::SpellDamageSchoolDmg(uint32 effect_idx)
case SPELLFAMILY_PRIEST:
{
// Shadow Word: Death - deals damage equal to damage done to caster
- if (m_spellInfo->SpellFamilyFlags[1] & 0x2)
+ if ((m_spellInfo->SpellFamilyFlags[1] & 0x2 )&& m_damage < unitTarget->GetHealth())
m_caster->CastCustomSpell(m_caster, 32409, &damage, 0, 0, true);
break;
}
@@ -1489,7 +1489,7 @@ void Spell::EffectDummy(uint32 i)
// Penance
if (m_spellInfo->SpellFamilyFlags[1] & 0x00800000)
{
- if (!unitTarget)
+ if (!unitTarget || !unitTarget->isAlive())
return;
int hurt = 0;
diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp
index 725d934910a..68dc580bc19 100644
--- a/src/game/Unit.cpp
+++ b/src/game/Unit.cpp
@@ -5533,6 +5533,8 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, AuraEffect* trigger
// Nightfall
case 18094:
case 18095:
+ // Glyph of corruption
+ case 56218:
{
target = this;
triggered_spell_id = 17941;
@@ -5795,7 +5797,7 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, AuraEffect* trigger
// Glyph of Rejuvenation
case 54754:
{
- if (pVictim->GetHealth() >= triggerAmount * pVictim->GetMaxHealth()/100)
+ if (!pVictim || pVictim->GetHealth() >= triggerAmount * pVictim->GetMaxHealth()/100)
return false;
basepoints0 = int32(triggerAmount * damage / 100);
triggered_spell_id = 54755;