diff options
author | megamage <none@none> | 2009-04-11 12:01:27 -0500 |
---|---|---|
committer | megamage <none@none> | 2009-04-11 12:01:27 -0500 |
commit | f4d69d1b3b8fe6d26195b14f0ec2133b872c735c (patch) | |
tree | 5db77ed528332523d3db4071810ea4d09aa177ae /src | |
parent | c9005f636eb41a7f88400c6925eb2c5d47bf4c9f (diff) | |
parent | 2e0ffba0bcea53f8b5ce15a51174c34cbc55d202 (diff) |
*Merge.
--HG--
branch : trunk
Diffstat (limited to 'src')
-rw-r--r-- | src/game/Pet.cpp | 4 | ||||
-rw-r--r-- | src/game/Spell.cpp | 5 | ||||
-rw-r--r-- | src/game/Unit.cpp | 28 |
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) { |