aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/game/Pet.cpp4
-rw-r--r--src/game/Spell.cpp5
-rw-r--r--src/game/Unit.cpp28
3 files changed, 31 insertions, 6 deletions
diff --git a/src/game/Pet.cpp b/src/game/Pet.cpp
index 65694557175..dba79a47a72 100644
--- a/src/game/Pet.cpp
+++ b/src/game/Pet.cpp
@@ -359,10 +359,6 @@ void Pet::SavePetToDB(PetSaveMode mode)
if(mode > PET_SAVE_AS_CURRENT)
{
RemoveAllAuras();
-
- //only alive hunter pets get auras saved, the others don't
- if(!(getPetType() == HUNTER_PET && isAlive()))
- m_Auras.clear();
}
_SaveSpells();
diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp
index 7c40049fd32..691aa35d774 100644
--- a/src/game/Spell.cpp
+++ b/src/game/Spell.cpp
@@ -4641,8 +4641,9 @@ bool Spell::CanAutoCast(Unit* target)
}
else
{
- if( (target->GetAuraEffect(m_spellInfo->Id, j))->GetParentAura()->GetStackAmount() >= m_spellInfo->StackAmount)
- return false;
+ if( AuraEffect * aureff = target->GetAuraEffect(m_spellInfo->Id, j))
+ if (aureff->GetParentAura()->GetStackAmount() >= m_spellInfo->StackAmount)
+ return false;
}
}
else if ( IsAreaAuraEffect( m_spellInfo->Effect[j] ))
diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp
index c287cb1a033..88155b4be51 100644
--- a/src/game/Unit.cpp
+++ b/src/game/Unit.cpp
@@ -5834,6 +5834,34 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, AuraEffect* trigger
basepoints0 = GetAttackTime(BASE_ATTACK) * int32(ap*0.022f + 0.044f * holy) / 1000;
break;
}
+ // Light's Beacon - Beacon of Light
+ if ( dummySpell->Id == 53651 )
+ {
+ if (Unit * caster = triggeredByAura->GetCaster())
+ {
+ // do not proc when target of beacon of light is healed
+ if (caster == pVictim)
+ return false;
+ if (Aura * aur = caster->GetAura(53563))
+ {
+ if (Unit * paladin = aur->GetCaster())
+ {
+ if (paladin != this)
+ return false;
+ basepoints0 = damage;
+ triggered_spell_id = 53654;
+ target = caster;
+ break;
+ }
+ else
+ {
+ pVictim->RemoveAura(triggeredByAura->GetParentAura());
+ return false;
+ }
+ }
+ }
+ else return false;
+ }
// Judgements of the Wise
if (dummySpell->SpellIconID == 3017)
{