mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-16 07:30:42 +01:00
Core/Spells: Implemented SPELL_ATTR9_TARGET_MUST_BE_GROUNDED
This commit is contained in:
@@ -769,7 +769,7 @@ enum SpellAttr9 : uint32
|
||||
SPELL_ATTR9_DO_NOT_ADD_TO_UNLEARN_LIST = 0x00000080, /* NYI - unlearn list not maintained SMSG_SEND_UNLEARN_SPELLS always empty */ // TITLE Do Not Add to Unlearn List
|
||||
SPELL_ATTR9_COOLDOWN_IGNORES_RANGED_WEAPON = 0x00000100, // TITLE Cooldown Ignores Ranged Weapon
|
||||
SPELL_ATTR9_NOT_IN_ARENA = 0x00000200, // TITLE Not In Arena
|
||||
SPELL_ATTR9_UNK10 = 0x00000400, // TITLE Unknown attribute 10@Attr9
|
||||
SPELL_ATTR9_TARGET_MUST_BE_GROUNDED = 0x00000400, // TITLE Target Must Be Grounded
|
||||
SPELL_ATTR9_UNK11 = 0x00000800, // TITLE Unknown attribute 11@Attr9
|
||||
SPELL_ATTR9_UNK12 = 0x00001000, // TITLE Unknown attribute 12@Attr9
|
||||
SPELL_ATTR9_SLAM = 0x00002000, // TITLE Haste Affects Melee Ability Casttime
|
||||
|
||||
@@ -1445,7 +1445,7 @@ TC_API_EXPORT EnumText EnumUtils<SpellAttr9>::ToString(SpellAttr9 value)
|
||||
case SPELL_ATTR9_DO_NOT_ADD_TO_UNLEARN_LIST: return { "SPELL_ATTR9_DO_NOT_ADD_TO_UNLEARN_LIST", "Do Not Add to Unlearn List", "" };
|
||||
case SPELL_ATTR9_COOLDOWN_IGNORES_RANGED_WEAPON: return { "SPELL_ATTR9_COOLDOWN_IGNORES_RANGED_WEAPON", "Cooldown Ignores Ranged Weapon", "" };
|
||||
case SPELL_ATTR9_NOT_IN_ARENA: return { "SPELL_ATTR9_NOT_IN_ARENA", "Not In Arena", "" };
|
||||
case SPELL_ATTR9_UNK10: return { "SPELL_ATTR9_UNK10", "Unknown attribute 10@Attr9", "" };
|
||||
case SPELL_ATTR9_TARGET_MUST_BE_GROUNDED: return { "SPELL_ATTR9_TARGET_MUST_BE_GROUNDED", "Target Must Be Grounded", "" };
|
||||
case SPELL_ATTR9_UNK11: return { "SPELL_ATTR9_UNK11", "Unknown attribute 11@Attr9", "" };
|
||||
case SPELL_ATTR9_UNK12: return { "SPELL_ATTR9_UNK12", "Unknown attribute 12@Attr9", "" };
|
||||
case SPELL_ATTR9_SLAM: return { "SPELL_ATTR9_SLAM", "Haste Affects Melee Ability Casttime", "" };
|
||||
@@ -1489,7 +1489,7 @@ TC_API_EXPORT SpellAttr9 EnumUtils<SpellAttr9>::FromIndex(size_t index)
|
||||
case 7: return SPELL_ATTR9_DO_NOT_ADD_TO_UNLEARN_LIST;
|
||||
case 8: return SPELL_ATTR9_COOLDOWN_IGNORES_RANGED_WEAPON;
|
||||
case 9: return SPELL_ATTR9_NOT_IN_ARENA;
|
||||
case 10: return SPELL_ATTR9_UNK10;
|
||||
case 10: return SPELL_ATTR9_TARGET_MUST_BE_GROUNDED;
|
||||
case 11: return SPELL_ATTR9_UNK11;
|
||||
case 12: return SPELL_ATTR9_UNK12;
|
||||
case 13: return SPELL_ATTR9_SLAM;
|
||||
@@ -1530,7 +1530,7 @@ TC_API_EXPORT size_t EnumUtils<SpellAttr9>::ToIndex(SpellAttr9 value)
|
||||
case SPELL_ATTR9_DO_NOT_ADD_TO_UNLEARN_LIST: return 7;
|
||||
case SPELL_ATTR9_COOLDOWN_IGNORES_RANGED_WEAPON: return 8;
|
||||
case SPELL_ATTR9_NOT_IN_ARENA: return 9;
|
||||
case SPELL_ATTR9_UNK10: return 10;
|
||||
case SPELL_ATTR9_TARGET_MUST_BE_GROUNDED: return 10;
|
||||
case SPELL_ATTR9_UNK11: return 11;
|
||||
case SPELL_ATTR9_UNK12: return 12;
|
||||
case SPELL_ATTR9_SLAM: return 13;
|
||||
|
||||
@@ -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())
|
||||
|
||||
Reference in New Issue
Block a user