diff options
| author | Shauren <shauren.trinity@gmail.com> | 2024-06-15 12:35:49 +0200 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2024-06-15 12:35:49 +0200 |
| commit | dd61ba2844fc96b3344183fe0b05ce65985fa8be (patch) | |
| tree | 8915bfd7d3e471a3bfe05068a05dab93e4e21c6b /src/server/game/Spells/SpellInfo.cpp | |
| parent | 53204130c62aadca3b961844a1c9d2dfe967518d (diff) | |
Core/Spells: Implemented SPELL_ATTR9_TARGET_MUST_BE_GROUNDED
Diffstat (limited to 'src/server/game/Spells/SpellInfo.cpp')
| -rw-r--r-- | src/server/game/Spells/SpellInfo.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/server/game/Spells/SpellInfo.cpp b/src/server/game/Spells/SpellInfo.cpp index 5adbd2bd01f..1a81a1ce7ab 100644 --- a/src/server/game/Spells/SpellInfo.cpp +++ b/src/server/game/Spells/SpellInfo.cpp @@ -2252,6 +2252,11 @@ SpellCastResult SpellInfo::CheckTarget(WorldObject const* caster, WorldObject co if (HasAttribute(SPELL_ATTR3_NOT_ON_AOE_IMMUNE)) if (unitTarget->GetSpellOtherImmunityMask().HasFlag(SpellOtherImmunity::AoETarget)) return SPELL_FAILED_BAD_TARGETS; + + if (HasAttribute(SPELL_ATTR9_TARGET_MUST_BE_GROUNDED) && + (unitTarget->HasUnitMovementFlag(MOVEMENTFLAG_FALLING | MOVEMENTFLAG_SWIMMING | MOVEMENTFLAG_FLYING | MOVEMENTFLAG_HOVER) || + unitTarget->HasExtraUnitMovementFlag2(MOVEMENTFLAG3_ADV_FLYING))) + return SPELL_FAILED_TARGET_NOT_GROUNDED; } // corpse specific target checks else if (Corpse const* corpseTarget = target->ToCorpse()) |
