Core/AreaTriggers: Implement missing functionality

* Scale curves are now taken into account when searching for units inside
* Implemented SpellModOp::Radius for areatrigger radius
* Implemented OverrideMoveCurve updatefields - overrides areatrigger position
* Implemented FacingCurve and AREATRIGGER_FLAG_HAS_ABSOLUTE_ORIENTATION
* Implemented ***Target fields for all shape types
* Fixed facing calculation for areatriggers with spline movement
Port From (https://github.com/TrinityCore/TrinityCore/commit/c676d1477239aec4d0b235a410e5627a7070a86e)
This commit is contained in:
hondacrx
2024-01-30 21:14:55 -05:00
parent 804bc30581
commit 5e46dd951b
6 changed files with 344 additions and 101 deletions
+3 -8
View File
@@ -108,7 +108,8 @@ namespace Game.Entities
ASSERT(m_ownedAuras.empty());
ASSERT(m_removedAuras.empty());
ASSERT(m_gameObj.empty());
ASSERT(m_dynObj.empty());*/
ASSERT(m_dynObj.empty());
ASSERT(m_areaTrigger.empty());*/
base.Dispose();
}
@@ -813,9 +814,6 @@ namespace Game.Entities
public void RemoveAreaTrigger(uint spellId)
{
if (m_areaTrigger.Empty())
return;
for (var i = 0; i < m_areaTrigger.Count; ++i)
{
AreaTrigger areaTrigger = m_areaTrigger[i];
@@ -826,9 +824,6 @@ namespace Game.Entities
public void RemoveAreaTrigger(AuraEffect aurEff)
{
if (m_areaTrigger.Empty())
return;
foreach (AreaTrigger areaTrigger in m_areaTrigger)
{
if (areaTrigger.GetAuraEffect() == aurEff)
@@ -842,7 +837,7 @@ namespace Game.Entities
public void RemoveAllAreaTriggers()
{
while (!m_areaTrigger.Empty())
m_areaTrigger[0].Remove();
m_areaTrigger.Last()?.Remove();
}
public NPCFlags GetNpcFlags() { return (NPCFlags)m_unitData.NpcFlags[0]; }