mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-15 23:20:36 +01:00
Core/Spells: Implemented target 116 TARGET_UNIT_AND_DEST_LAST_ENEMY
This commit is contained in:
@@ -2614,7 +2614,7 @@ enum Targets
|
||||
TARGET_UNK_113 = 113,
|
||||
TARGET_UNK_114 = 114,
|
||||
TARGET_UNK_115 = 115,
|
||||
TARGET_UNK_116 = 116,
|
||||
TARGET_UNIT_AND_DEST_LAST_ENEMY = 116,
|
||||
TARGET_UNK_117 = 117,
|
||||
TARGET_UNIT_TARGET_ALLY_OR_RAID = 118, // If target is in your party or raid, all party and raid members will be affected
|
||||
TARGET_CORPSE_SRC_AREA_RAID = 119,
|
||||
|
||||
@@ -1207,6 +1207,8 @@ void Spell::SelectImplicitAreaTargets(SpellEffectInfo const& spellEffectInfo, Sp
|
||||
break;
|
||||
case TARGET_REFERENCE_TYPE_LAST:
|
||||
{
|
||||
referer = m_caster;
|
||||
|
||||
// find last added target for this effect
|
||||
for (auto ihit = m_UniqueTargetInfo.rbegin(); ihit != m_UniqueTargetInfo.rend(); ++ihit)
|
||||
{
|
||||
@@ -1275,6 +1277,15 @@ void Spell::SelectImplicitAreaTargets(SpellEffectInfo const& spellEffectInfo, Sp
|
||||
break;
|
||||
}
|
||||
|
||||
if (targetType.GetObjectType() == TARGET_OBJECT_TYPE_UNIT_AND_DEST)
|
||||
{
|
||||
SpellDestination dest(*referer);
|
||||
|
||||
CallScriptDestinationTargetSelectHandlers(dest, spellEffectInfo.EffectIndex, targetType);
|
||||
|
||||
m_targets.ModDst(dest);
|
||||
}
|
||||
|
||||
CallScriptObjectAreaTargetSelectHandlers(targets, spellEffectInfo.EffectIndex, targetType);
|
||||
|
||||
if (!targets.empty())
|
||||
|
||||
@@ -334,7 +334,7 @@ SpellImplicitTargetInfo::StaticData SpellImplicitTargetInfo::_data[TOTAL_SPELL_T
|
||||
{TARGET_OBJECT_TYPE_NONE, TARGET_REFERENCE_TYPE_NONE, TARGET_SELECT_CATEGORY_NYI, TARGET_CHECK_DEFAULT, TARGET_DIR_NONE}, // 113
|
||||
{TARGET_OBJECT_TYPE_NONE, TARGET_REFERENCE_TYPE_NONE, TARGET_SELECT_CATEGORY_NYI, TARGET_CHECK_DEFAULT, TARGET_DIR_NONE}, // 114
|
||||
{TARGET_OBJECT_TYPE_NONE, TARGET_REFERENCE_TYPE_NONE, TARGET_SELECT_CATEGORY_NYI, TARGET_CHECK_DEFAULT, TARGET_DIR_NONE}, // 115
|
||||
{TARGET_OBJECT_TYPE_NONE, TARGET_REFERENCE_TYPE_NONE, TARGET_SELECT_CATEGORY_NYI, TARGET_CHECK_DEFAULT, TARGET_DIR_NONE}, // 116
|
||||
{TARGET_OBJECT_TYPE_UNIT_AND_DEST, TARGET_REFERENCE_TYPE_LAST, TARGET_SELECT_CATEGORY_AREA, TARGET_CHECK_ENEMY, TARGET_DIR_NONE}, // 116 TARGET_UNIT_AND_DEST_LAST_ENEMY
|
||||
{TARGET_OBJECT_TYPE_NONE, TARGET_REFERENCE_TYPE_NONE, TARGET_SELECT_CATEGORY_NYI, TARGET_CHECK_DEFAULT, TARGET_DIR_NONE}, // 117
|
||||
{TARGET_OBJECT_TYPE_UNIT, TARGET_REFERENCE_TYPE_CASTER, TARGET_SELECT_CATEGORY_AREA, TARGET_CHECK_RAID, TARGET_DIR_NONE}, // 118 TARGET_UNIT_TARGET_ALLY_OR_RAID
|
||||
{TARGET_OBJECT_TYPE_CORPSE, TARGET_REFERENCE_TYPE_CASTER, TARGET_SELECT_CATEGORY_AREA, TARGET_CHECK_RAID, TARGET_DIR_NONE}, // 119 TARGET_CORPSE_SRC_AREA_RAID
|
||||
|
||||
@@ -273,9 +273,12 @@ bool SpellScript::TargetHook::CheckEffect(SpellInfo const* spellEntry, uint8 eff
|
||||
case TARGET_SELECT_CATEGORY_NEARBY: // BOTH
|
||||
return true;
|
||||
case TARGET_SELECT_CATEGORY_CONE: // AREA
|
||||
case TARGET_SELECT_CATEGORY_AREA: // AREA
|
||||
case TARGET_SELECT_CATEGORY_LINE: // AREA
|
||||
return area;
|
||||
case TARGET_SELECT_CATEGORY_AREA: // AREA
|
||||
if (targetInfo.GetObjectType() == TARGET_OBJECT_TYPE_UNIT_AND_DEST)
|
||||
return area || dest;
|
||||
return area;
|
||||
case TARGET_SELECT_CATEGORY_DEFAULT:
|
||||
switch (targetInfo.GetObjectType())
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user