diff options
Diffstat (limited to 'src/game/TemporarySummon.cpp')
-rw-r--r-- | src/game/TemporarySummon.cpp | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/game/TemporarySummon.cpp b/src/game/TemporarySummon.cpp index 3382c794622..8e04bc22c68 100644 --- a/src/game/TemporarySummon.cpp +++ b/src/game/TemporarySummon.cpp @@ -265,6 +265,7 @@ Minion::Minion(SummonPropertiesEntry const *properties, Unit *owner) : TempSummo { assert(m_owner); m_summonMask |= SUMMON_MASK_MINION; + m_followAngle = PET_FOLLOW_ANGLE; } void Minion::InitStats(uint32 duration) @@ -286,7 +287,7 @@ void Minion::InitSummon() if(m_owner->GetTypeId() == TYPEID_PLAYER && m_owner->GetMinionGUID() == GetGUID() && !m_owner->GetCharmGUID()) - ((Player*)m_owner)->CharmSpellInitialize(); + ((Player*)m_owner)->CharmSpellInitialize(); } void Minion::RemoveFromWorld() @@ -302,7 +303,11 @@ Guardian::Guardian(SummonPropertiesEntry const *properties, Unit *owner) : Minio , m_bonusdamage(0) { m_summonMask |= SUMMON_MASK_GUARDIAN; - InitCharmInfo(); + if (properties && properties->Type == SUMMON_TYPE_PET) + { + m_summonMask |= SUMMON_MASK_CONTROLABLE_GUARDIAN; + InitCharmInfo(); + } } void Guardian::InitStats(uint32 duration) @@ -311,7 +316,7 @@ void Guardian::InitStats(uint32 duration) InitStatsForLevel(m_owner->getLevel()); - if(m_owner->GetTypeId() == TYPEID_PLAYER) + if(m_owner->GetTypeId() == TYPEID_PLAYER && HasSummonMask(SUMMON_MASK_CONTROLABLE_GUARDIAN)) m_charmInfo->InitCharmCreateSpells(); SetReactState(REACT_AGGRESSIVE); |