diff options
author | Shauren <shauren.trinity@gmail.com> | 2024-05-19 00:55:24 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2024-05-19 00:55:24 +0200 |
commit | c15c8609f0b950804ce798369bd7c3f54b5ab221 (patch) | |
tree | 8daa2513f22f33b70a29df4568d808d14a3fdd52 /src | |
parent | 631c813b4a23d7a2f96ad1d10d833b0c059585f2 (diff) |
Core/Spells: Implemented SummonPropertiesFlags::UseDemonTimeout
Closes #29930
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/DataStores/DBCEnums.h | 2 | ||||
-rw-r--r-- | src/server/game/Entities/Creature/TemporarySummon.cpp | 9 |
2 files changed, 9 insertions, 2 deletions
diff --git a/src/server/game/DataStores/DBCEnums.h b/src/server/game/DataStores/DBCEnums.h index fe3a6dd6ead..802b7bd16e3 100644 --- a/src/server/game/DataStores/DBCEnums.h +++ b/src/server/game/DataStores/DBCEnums.h @@ -2110,7 +2110,7 @@ enum class SummonPropertiesFlags : uint32 DespawnOnSummonerDeath = 0x00000008, // NYI OnlyVisibleToSummoner = 0x00000010, CannotDismissPet = 0x00000020, // NYI - UseDemonTimeout = 0x00000040, // NYI + UseDemonTimeout = 0x00000040, UnlimitedSummons = 0x00000080, // NYI UseCreatureLevel = 0x00000100, JoinSummonerSpawnGroup = 0x00000200, // NYI diff --git a/src/server/game/Entities/Creature/TemporarySummon.cpp b/src/server/game/Entities/Creature/TemporarySummon.cpp index f3a6f35770d..95a7f9c19ff 100644 --- a/src/server/game/Entities/Creature/TemporarySummon.cpp +++ b/src/server/game/Entities/Creature/TemporarySummon.cpp @@ -193,7 +193,14 @@ void TempSummon::InitStats(WorldObject* summoner, Milliseconds duration) m_lifetime = duration; if (m_type == TEMPSUMMON_MANUAL_DESPAWN) - m_type = (duration <= 0ms) ? TEMPSUMMON_DEAD_DESPAWN : TEMPSUMMON_TIMED_DESPAWN; + { + if (duration <= 0s) + m_type = TEMPSUMMON_DEAD_DESPAWN; + else if (m_Properties && m_Properties->GetFlags().HasFlag(SummonPropertiesFlags::UseDemonTimeout)) + m_type = TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT; + else + m_type = TEMPSUMMON_TIMED_DESPAWN; + } if (summoner && summoner->IsPlayer()) { |