mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-15 23:20:36 +01:00
Core/Spells: Fixed TARGET_UNIT_AREA_THREAT_LIST and TARGET_UNIT_AREA_TAP_LIST
This commit is contained in:
@@ -1428,6 +1428,18 @@ void Spell::SelectImplicitAreaTargets(SpellEffectInfo const& spellEffectInfo, Sp
|
||||
SearchAreaTargets(targets, spellEffectInfo, radius, center, referer, targetType.GetObjectType(), targetType.GetCheckType(),
|
||||
spellEffectInfo.ImplicitTargetConditions.get(), Trinity::WorldObjectSpellAreaTargetSearchReason::Area);
|
||||
break;
|
||||
case TARGET_UNIT_AREA_THREAT_LIST:
|
||||
if (Unit* unit = m_caster->ToUnit())
|
||||
for (ThreatReference const* threatRef : unit->GetThreatManager().GetUnsortedThreatList())
|
||||
if (Unit* threateningUnit = threatRef->GetVictim())
|
||||
targets.push_back(threateningUnit);
|
||||
break;
|
||||
case TARGET_UNIT_AREA_TAP_LIST:
|
||||
if (Creature* creature = m_caster->ToCreature())
|
||||
for (ObjectGuid const& tapperGuid : creature->GetTapList())
|
||||
if (Player* tapper = ObjectAccessor::GetPlayer(*m_caster, tapperGuid))
|
||||
targets.push_back(tapper);
|
||||
break;
|
||||
default:
|
||||
SearchAreaTargets(targets, spellEffectInfo, radius, center, referer, targetType.GetObjectType(), targetType.GetCheckType(),
|
||||
spellEffectInfo.ImplicitTargetConditions.get(), Trinity::WorldObjectSpellAreaTargetSearchReason::Area);
|
||||
@@ -9162,16 +9174,6 @@ bool WorldObjectSpellTargetCheck::operator()(WorldObject* target) const
|
||||
if (unitTarget->ToTempSummon()->GetSummonerGUID() != _caster->GetGUID())
|
||||
return false;
|
||||
break;
|
||||
case TARGET_CHECK_THREAT:
|
||||
if (!_referer->IsUnit() || _referer->ToUnit()->GetThreatManager().GetThreat(unitTarget, true) <= 0.0f)
|
||||
return false;
|
||||
break;
|
||||
case TARGET_CHECK_TAP:
|
||||
if (_referer->GetTypeId() != TYPEID_UNIT || unitTarget->GetTypeId() != TYPEID_PLAYER)
|
||||
return false;
|
||||
if (!_referer->ToCreature()->isTappedBy(unitTarget->ToPlayer()))
|
||||
return false;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -363,8 +363,8 @@ std::array<SpellImplicitTargetInfo::StaticData, TOTAL_SPELL_TARGETS> SpellImplic
|
||||
{TARGET_OBJECT_TYPE_CORPSE, TARGET_REFERENCE_TYPE_CASTER, TARGET_SELECT_CATEGORY_AREA, TARGET_CHECK_RAID, TARGET_DIR_NONE}, // 119 TARGET_CORPSE_SRC_AREA_RAID
|
||||
{TARGET_OBJECT_TYPE_UNIT, TARGET_REFERENCE_TYPE_CASTER, TARGET_SELECT_CATEGORY_AREA, TARGET_CHECK_SUMMONED, TARGET_DIR_NONE}, // 120 TARGET_UNIT_SELF_AND_SUMMONS
|
||||
{TARGET_OBJECT_TYPE_CORPSE, TARGET_REFERENCE_TYPE_TARGET, TARGET_SELECT_CATEGORY_DEFAULT, TARGET_CHECK_ALLY, TARGET_DIR_NONE}, // 121 TARGET_CORPSE_TARGET_ALLY
|
||||
{TARGET_OBJECT_TYPE_UNIT, TARGET_REFERENCE_TYPE_CASTER, TARGET_SELECT_CATEGORY_AREA, TARGET_CHECK_THREAT, TARGET_DIR_NONE}, // 122 TARGET_UNIT_AREA_THREAT_LIST
|
||||
{TARGET_OBJECT_TYPE_UNIT, TARGET_REFERENCE_TYPE_CASTER, TARGET_SELECT_CATEGORY_AREA, TARGET_CHECK_TAP, TARGET_DIR_NONE}, // 123 TARGET_UNIT_AREA_TAP_LIST
|
||||
{TARGET_OBJECT_TYPE_UNIT, TARGET_REFERENCE_TYPE_CASTER, TARGET_SELECT_CATEGORY_AREA, TARGET_CHECK_DEFAULT, TARGET_DIR_NONE}, // 122 TARGET_UNIT_AREA_THREAT_LIST
|
||||
{TARGET_OBJECT_TYPE_UNIT, TARGET_REFERENCE_TYPE_CASTER, TARGET_SELECT_CATEGORY_AREA, TARGET_CHECK_DEFAULT, TARGET_DIR_NONE}, // 123 TARGET_UNIT_AREA_TAP_LIST
|
||||
{TARGET_OBJECT_TYPE_UNIT, TARGET_REFERENCE_TYPE_CASTER, TARGET_SELECT_CATEGORY_DEFAULT, TARGET_CHECK_DEFAULT, TARGET_DIR_NONE}, // 124 TARGET_UNIT_TARGET_TAP_LIST
|
||||
{TARGET_OBJECT_TYPE_DEST, TARGET_REFERENCE_TYPE_CASTER, TARGET_SELECT_CATEGORY_DEFAULT, TARGET_CHECK_DEFAULT, TARGET_DIR_NONE}, // 125 TARGET_DEST_CASTER_GROUND_2
|
||||
{TARGET_OBJECT_TYPE_UNIT, TARGET_REFERENCE_TYPE_NONE, TARGET_SELECT_CATEGORY_NYI, TARGET_CHECK_DEFAULT, TARGET_DIR_NONE}, // 126 TARGET_UNIT_CASTER_AREA_ENEMY_CLUMP
|
||||
|
||||
@@ -87,9 +87,7 @@ enum SpellTargetCheckTypes : uint8
|
||||
TARGET_CHECK_RAID,
|
||||
TARGET_CHECK_RAID_CLASS,
|
||||
TARGET_CHECK_PASSENGER,
|
||||
TARGET_CHECK_SUMMONED,
|
||||
TARGET_CHECK_THREAT,
|
||||
TARGET_CHECK_TAP
|
||||
TARGET_CHECK_SUMMONED
|
||||
};
|
||||
|
||||
enum SpellTargetDirectionTypes
|
||||
|
||||
Reference in New Issue
Block a user