Core/Spells: Implemented target type TARGET_DEST_DEST_TARGET_TOWARDS_CASTER (#29085)

This commit is contained in:
ModoX
2023-06-24 01:16:00 +02:00
committed by GitHub
parent 8ffc4c1034
commit 80e22230c3
3 changed files with 14 additions and 2 deletions
@@ -2753,7 +2753,7 @@ enum Targets
TARGET_UNK_145 = 145,
TARGET_UNK_146 = 146,
TARGET_UNK_147 = 147,
TARGET_UNK_148 = 148,
TARGET_DEST_DEST_TARGET_TOWARDS_CASTER = 148,
TARGET_UNK_149 = 149,
TARGET_UNIT_OWN_CRITTER = 150, // own battle pet from UNIT_FIELD_CRITTER
TARGET_UNK_151 = 151,
+12
View File
@@ -1674,6 +1674,18 @@ void Spell::SelectImplicitDestDestTargets(SpellEffectInfo const& spellEffectInfo
case TARGET_DEST_DEST_GROUND:
dest._position.m_positionZ = m_caster->GetMapHeight(dest._position.GetPositionX(), dest._position.GetPositionY(), dest._position.GetPositionZ());
break;
case TARGET_DEST_DEST_TARGET_TOWARDS_CASTER:
{
float dist = spellEffectInfo.CalcRadius(m_caster);
Position pos = dest._position;
float angle = pos.GetAbsoluteAngle(m_caster) - m_caster->GetOrientation();
m_caster->MovePositionToFirstCollision(pos, dist, angle);
pos.SetOrientation(m_caster->GetAbsoluteAngle(dest._position));
dest.Relocate(pos);
break;
}
default:
{
float angle = targetType.CalcDirectionAngle();
+1 -1
View File
@@ -388,7 +388,7 @@ std::array<SpellImplicitTargetInfo::StaticData, TOTAL_SPELL_TARGETS> SpellImplic
{TARGET_OBJECT_TYPE_NONE, TARGET_REFERENCE_TYPE_NONE, TARGET_SELECT_CATEGORY_NYI, TARGET_CHECK_DEFAULT, TARGET_DIR_NONE}, // 145
{TARGET_OBJECT_TYPE_NONE, TARGET_REFERENCE_TYPE_NONE, TARGET_SELECT_CATEGORY_NYI, TARGET_CHECK_DEFAULT, TARGET_DIR_NONE}, // 146
{TARGET_OBJECT_TYPE_NONE, TARGET_REFERENCE_TYPE_NONE, TARGET_SELECT_CATEGORY_NYI, TARGET_CHECK_DEFAULT, TARGET_DIR_NONE}, // 147
{TARGET_OBJECT_TYPE_NONE, TARGET_REFERENCE_TYPE_NONE, TARGET_SELECT_CATEGORY_NYI, TARGET_CHECK_DEFAULT, TARGET_DIR_NONE}, // 148
{TARGET_OBJECT_TYPE_DEST, TARGET_REFERENCE_TYPE_DEST, TARGET_SELECT_CATEGORY_DEFAULT, TARGET_CHECK_DEFAULT, TARGET_DIR_NONE}, // 148 TARGET_DEST_DEST_TARGET_TOWARDS_CASTER
{TARGET_OBJECT_TYPE_DEST, TARGET_REFERENCE_TYPE_CASTER, TARGET_SELECT_CATEGORY_DEFAULT, TARGET_CHECK_DEFAULT, TARGET_DIR_RANDOM}, // 149
{TARGET_OBJECT_TYPE_UNIT, TARGET_REFERENCE_TYPE_CASTER, TARGET_SELECT_CATEGORY_DEFAULT, TARGET_CHECK_DEFAULT, TARGET_DIR_NONE}, // 150 TARGET_UNIT_OWN_CRITTER
{TARGET_OBJECT_TYPE_UNIT, TARGET_REFERENCE_TYPE_CASTER, TARGET_SELECT_CATEGORY_AREA, TARGET_CHECK_ENEMY, TARGET_DIR_NONE}, // 151