aboutsummaryrefslogtreecommitdiff
path: root/src/game/TemporarySummon.cpp
diff options
context:
space:
mode:
authormegamage <none@none>2009-05-25 22:52:08 -0500
committermegamage <none@none>2009-05-25 22:52:08 -0500
commitd971d0121fafd23504bdfb151dffd0e33b1d7940 (patch)
treea3b2cda26fc873dc4fae72bd1d6681f48da4c5a2 /src/game/TemporarySummon.cpp
parent320ac7f91e28bb30f34696b27c302713557b54ce (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.cpp40
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();
+}