diff options
| author | Aqua Deus <95978183+aquadeus@users.noreply.github.com> | 2022-02-26 21:23:37 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-02-26 21:23:37 +0100 |
| commit | 6c01f761b2c00d9ea8d44f2856c7a82cadb9bbfc (patch) | |
| tree | 4bffdc16cce710bc66489130ef900e471b037e55 /src/server/game/Entities | |
| parent | 19f64e66e58d3d7ebed6437a474a134e7c673ed6 (diff) | |
Core/Auras: Implement SPELL_AURA_FORCE_BREATH_BAR (#27790)
Co-authored-by: Shauren <shauren.trinity@gmail.com>
Diffstat (limited to 'src/server/game/Entities')
| -rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 21 |
1 files changed, 5 insertions, 16 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index c1ac6f3f357..de466cd4b5b 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -26153,44 +26153,33 @@ void Player::ProcessTerrainStatusUpdate(ZLiquidStatus oldLiquidStatus, Optional< // process liquid auras using generic unit code Unit::ProcessTerrainStatusUpdate(oldLiquidStatus, newLiquidData); + m_MirrorTimerFlags &= ~(UNDERWATER_INWATER | UNDERWATER_INLAVA | UNDERWATER_INSLIME | UNDERWATER_INDARKWATER); + // player specific logic for mirror timers if (GetLiquidStatus() && newLiquidData) { // Breath bar state (under water in any liquid type) if (newLiquidData->type_flags.HasFlag(map_liquidHeaderTypeFlags::AllLiquids)) - { if (GetLiquidStatus() & LIQUID_MAP_UNDER_WATER) m_MirrorTimerFlags |= UNDERWATER_INWATER; - else - m_MirrorTimerFlags &= ~UNDERWATER_INWATER; - } // Fatigue bar state (if not on flight path or transport) if (newLiquidData->type_flags.HasFlag(map_liquidHeaderTypeFlags::DarkWater) && !IsInFlight() && !GetTransport()) m_MirrorTimerFlags |= UNDERWATER_INDARKWATER; - else - m_MirrorTimerFlags &= ~UNDERWATER_INDARKWATER; // Lava state (any contact) if (newLiquidData->type_flags.HasFlag(map_liquidHeaderTypeFlags::Magma)) - { if (GetLiquidStatus() & MAP_LIQUID_STATUS_IN_CONTACT) m_MirrorTimerFlags |= UNDERWATER_INLAVA; - else - m_MirrorTimerFlags &= ~UNDERWATER_INLAVA; - } // Slime state (any contact) if (newLiquidData->type_flags.HasFlag(map_liquidHeaderTypeFlags::Slime)) - { if (GetLiquidStatus() & MAP_LIQUID_STATUS_IN_CONTACT) m_MirrorTimerFlags |= UNDERWATER_INSLIME; - else - m_MirrorTimerFlags &= ~UNDERWATER_INSLIME; - } } - else - m_MirrorTimerFlags &= ~(UNDERWATER_INWATER | UNDERWATER_INLAVA | UNDERWATER_INSLIME | UNDERWATER_INDARKWATER); + + if (HasAuraType(SPELL_AURA_FORCE_BREATH_BAR)) + m_MirrorTimerFlags |= UNDERWATER_INWATER; } void Player::AtEnterCombat() |
