Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Loading...
Searching...
No Matches
TemporarySummon.h
Go to the documentation of this file.
1/*
2* This file is part of Project SkyFire https://www.projectskyfire.org.
3* See LICENSE.md file for Copyright information
4*/
5#ifndef SKYFIRESERVER_TEMPSUMMON_H
6#define SKYFIRESERVER_TEMPSUMMON_H
7
8#include "Creature.h"
9
16
25
26class TempSummon : public Creature
27{
28public:
29 explicit TempSummon(SummonPropertiesEntry const* properties, Unit* owner, bool isWorldObject);
30 virtual ~TempSummon() { }
31 void Update(uint32 time) OVERRIDE;
32 virtual void InitStats(uint32 lifetime);
33 virtual void InitSummon();
34 virtual void UnSummon(uint32 msTime = 0);
37 void SaveToDB(uint32 /*mapid*/, uint32 /*spawnMask*/) OVERRIDE { }
38 Unit* GetSummoner() const;
41 TempSummonType const& GetSummonType() const { return m_type; }
42 uint32 GetTimer() const { return m_timer; }
43
45private:
50};
51
52class Minion : public TempSummon
53{
54public:
55 Minion(SummonPropertiesEntry const* properties, Unit* owner, bool isWorldObject);
56 void InitStats(uint32 duration) OVERRIDE;
58 Unit* GetOwner() const { return m_owner; }
59 float GetFollowAngle() const OVERRIDE { return m_followAngle; }
60 void SetFollowAngle(float angle) { m_followAngle = angle; }
61 bool IsPetGhoul() const { return GetEntry() == 26125; } // Ghoul may be guardian or pet
62 bool IsSpiritWolf() const { return GetEntry() == 29264; } // Spirit wolf from feral spirits
63 bool IsWhiteTiger() const { return GetEntry() == 63508; } // Invoke Xuen
64 bool IsGuardianPet() const;
65protected:
66 Unit* const m_owner;
68};
69
70class Guardian : public Minion
71{
72public:
73 Guardian(SummonPropertiesEntry const* properties, Unit* owner, bool isWorldObject);
74 void InitStats(uint32 duration) OVERRIDE;
75 bool InitStatsForLevel(uint8 level);
76 void InitSummon() OVERRIDE;
77
78 bool UpdateStats(Stats stat) OVERRIDE;
81 void UpdateArmor() OVERRIDE;
83 void UpdateMaxPower(Powers power) OVERRIDE;
84 void UpdateAttackPowerAndDamage(bool ranged = false) OVERRIDE;
86
88 void SetBonusDamage(int32 damage);
89protected:
92};
93
94class Puppet : public Minion
95{
96public:
97 Puppet(SummonPropertiesEntry const* properties, Unit* owner);
98 void InitStats(uint32 duration) OVERRIDE;
99 void InitSummon() OVERRIDE;
100 void Update(uint32 time) OVERRIDE;
102};
103
105{
106public:
108 bool Execute(uint64 e_time, uint32 p_time) OVERRIDE;
109
110private:
112};
113#endif
std::int32_t int32
Definition Define.h:73
std::uint8_t uint8
Definition Define.h:79
std::uint32_t uint32
Definition Define.h:77
#define OVERRIDE
Definition Define.h:60
std::uint64_t uint64
Definition Define.h:76
TempSummonType
Definition Object.h:67
#define MAX_STATS
Powers
Stats
SummonerType
WeaponAttackType
Definition Unit.h:572
Creature(bool isWorldObject=false)
Definition Creature.cpp:141
bool Execute(uint64 e_time, uint32 p_time) OVERRIDE
ForcedUnsummonDelayEvent(TempSummon &owner)
void UpdateMaxPower(Powers power) OVERRIDE
bool UpdateStats(Stats stat) OVERRIDE
bool UpdateAllStats() OVERRIDE
Guardian(SummonPropertiesEntry const *properties, Unit *owner, bool isWorldObject)
void InitSummon() OVERRIDE
void SetBonusDamage(int32 damage)
int32 m_bonusSpellDamage
bool InitStatsForLevel(uint8 level)
Definition Pet.cpp:828
void InitStats(uint32 duration) OVERRIDE
int32 GetBonusDamage() const
void UpdateArmor() OVERRIDE
float m_statFromOwner[MAX_STATS]
void UpdateMaxHealth() OVERRIDE
void UpdateResistances(uint32 school) OVERRIDE
void UpdateDamagePhysical(WeaponAttackType attType) OVERRIDE
void UpdateAttackPowerAndDamage(bool ranged=false) OVERRIDE
float m_followAngle
void SetFollowAngle(float angle)
Unit * GetOwner() const
bool IsSpiritWolf() const
Unit *const m_owner
bool IsGuardianPet() const
void InitStats(uint32 duration) OVERRIDE
Minion(SummonPropertiesEntry const *properties, Unit *owner, bool isWorldObject)
void RemoveFromWorld() OVERRIDE
float GetFollowAngle() const OVERRIDE
bool IsWhiteTiger() const
bool IsPetGhoul() const
uint32 GetEntry() const
Definition Object.h:125
void InitStats(uint32 duration) OVERRIDE
void Update(uint32 time) OVERRIDE
Puppet(SummonPropertiesEntry const *properties, Unit *owner)
void InitSummon() OVERRIDE
void RemoveFromWorld() OVERRIDE
TempSummon(SummonPropertiesEntry const *properties, Unit *owner, bool isWorldObject)
virtual void UnSummon(uint32 msTime=0)
const SummonPropertiesEntry *const m_Properties
virtual ~TempSummon()
TempSummonType const & GetSummonType() const
void Update(uint32 time) OVERRIDE
virtual void InitSummon()
void SetTempSummonType(TempSummonType type)
virtual void InitStats(uint32 lifetime)
uint64 m_summonerGUID
uint32 GetTimer() const
uint64 GetSummonerGUID() const
TempSummonType m_type
Unit * GetSummoner() const
void SaveToDB(uint32, uint32) OVERRIDE
Creature * GetSummonerCreatureBase() const
uint32 m_lifetime
void RemoveFromWorld() OVERRIDE
Definition Unit.h:1367
Unit(bool isWorldObject)
Definition Unit.cpp:142
Stores data for temp summons.
TempSummonType type
Summon type, see TempSummonType for available types.
uint32 time
Despawn time, usable only with certain temp summon types.
uint32 entry
Entry of summoned creature.
Position pos
Position, where should be creature spawned.