Core/Spells: fix wrong distance calculations in AoE spells

Port From (https://github.com/TrinityCore/TrinityCore/commit/5d076cfe291980bc5be9d44ffbae887e3dd5ad59)
This commit is contained in:
hondacrx
2020-05-06 14:34:20 -04:00
parent 95cca081de
commit ba885908b7
29 changed files with 202 additions and 118 deletions
+28
View File
@@ -4598,6 +4598,34 @@ namespace Game.Spells
return GetSelectionCategory() == SpellTargetSelectionCategories.Area || GetSelectionCategory() == SpellTargetSelectionCategories.Cone;
}
public bool IsProximityBasedAoe()
{
switch (_target)
{
case Targets.UnitSrcAreaEntry:
case Targets.UnitSrcAreaEnemy:
case Targets.UnitCasterAreaParty:
case Targets.UnitSrcAreaAlly:
case Targets.UnitSrcAreaParty:
case Targets.UnitLastAreaParty:
case Targets.GameobjectSrcArea:
case Targets.UnitCasterAreaRaid:
case Targets.CorpseSrcAreaEnemy:
return true;
case Targets.UnitDestAreaEntry:
case Targets.UnitDestAreaEnemy:
case Targets.UnitDestAreaAlly:
case Targets.UnitDestAreaParty:
case Targets.GameobjectDestArea:
case Targets.UnitAreaRaidClass:
return false;
default:
Log.outWarn(LogFilter.Spells, "SpellImplicitTargetInfo.IsProximityBasedAoe called a non-aoe spell");
return false;
}
}
public SpellTargetSelectionCategories GetSelectionCategory()
{
return _data[(int)_target].SelectionCategory;