diff options
author | megamage <none@none> | 2009-05-25 22:52:08 -0500 |
---|---|---|
committer | megamage <none@none> | 2009-05-25 22:52:08 -0500 |
commit | d971d0121fafd23504bdfb151dffd0e33b1d7940 (patch) | |
tree | a3b2cda26fc873dc4fae72bd1d6681f48da4c5a2 /src/game/TemporarySummon.cpp | |
parent | 320ac7f91e28bb30f34696b27c302713557b54ce (diff) |
*Do not consider possessed creatures as pet. Also fix the bug that possessed creature does not display spells.
--HG--
branch : trunk
Diffstat (limited to 'src/game/TemporarySummon.cpp')
-rw-r--r-- | src/game/TemporarySummon.cpp | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/src/game/TemporarySummon.cpp b/src/game/TemporarySummon.cpp index 993ece988a0..5c7ca2a48ea 100644 --- a/src/game/TemporarySummon.cpp +++ b/src/game/TemporarySummon.cpp @@ -314,3 +314,43 @@ void Guardian::InitStats(uint32 duration) SetReactState(REACT_AGGRESSIVE); } + +Puppet::Puppet(SummonPropertiesEntry const *properties, Unit *owner) : Minion(properties, owner) +{ + assert(owner->GetTypeId() == TYPEID_PLAYER); + m_owner = (Player*)owner; + m_summonMask |= SUMMON_MASK_PUPPET; + InitCharmInfo(); +} + +void Puppet::InitStats(uint32 duration) +{ + Minion::InitStats(duration); + + m_charmInfo->InitPossessCreateSpells(); + SetReactState(REACT_PASSIVE); +} + +void Puppet::InitSummon() +{ + Minion::InitSummon(); + SetCharmedOrPossessedBy(m_owner, true); +} + +void Puppet::Update(uint32 time) +{ + Minion::Update(time); + //check if caster is channelling? + if(IsInWorld()) + { + } +} + +void Puppet::RemoveFromWorld() +{ + if(!IsInWorld()) + return; + + RemoveCharmedOrPossessedBy(NULL); + Minion::RemoveFromWorld(); +} |