Core/Spells: Implemented target 137 TARGET_DEST_CASTER_MOVEMENT_DIRECTION
Port From (https://github.com/TrinityCore/TrinityCore/commit/f515424217b6470b73269c7671a3086ff19c2359)
This commit is contained in:
@@ -2711,7 +2711,7 @@ namespace Framework.Constants
|
|||||||
UnitLineCasterToDestEnemy = 134,
|
UnitLineCasterToDestEnemy = 134,
|
||||||
UnitLineCasterToDest = 135,
|
UnitLineCasterToDest = 135,
|
||||||
Unk136 = 136,
|
Unk136 = 136,
|
||||||
Unk137 = 137,
|
DestCasterMovementDirection = 137,
|
||||||
DestDestGround = 138,
|
DestDestGround = 138,
|
||||||
Unk139 = 139,
|
Unk139 = 139,
|
||||||
Unk140 = 140,
|
Unk140 = 140,
|
||||||
|
|||||||
@@ -3591,13 +3591,13 @@ namespace Game.Entities
|
|||||||
public void SetMovementFlags(MovementFlag f) { flags = f; }
|
public void SetMovementFlags(MovementFlag f) { flags = f; }
|
||||||
public void AddMovementFlag(MovementFlag f) { flags |= f; }
|
public void AddMovementFlag(MovementFlag f) { flags |= f; }
|
||||||
public void RemoveMovementFlag(MovementFlag f) { flags &= ~f; }
|
public void RemoveMovementFlag(MovementFlag f) { flags &= ~f; }
|
||||||
public bool HasMovementFlag(MovementFlag f) { return Convert.ToBoolean(flags & f); }
|
public bool HasMovementFlag(MovementFlag f) { return (flags & f) != 0; }
|
||||||
|
|
||||||
public MovementFlag2 GetMovementFlags2() { return flags2; }
|
public MovementFlag2 GetMovementFlags2() { return flags2; }
|
||||||
public void SetMovementFlags2(MovementFlag2 f) { flags2 = f; }
|
public void SetMovementFlags2(MovementFlag2 f) { flags2 = f; }
|
||||||
public void AddMovementFlag2(MovementFlag2 f) { flags2 |= f; }
|
public void AddMovementFlag2(MovementFlag2 f) { flags2 |= f; }
|
||||||
public void RemoveMovementFlag2(MovementFlag2 f) { flags2 &= ~f; }
|
public void RemoveMovementFlag2(MovementFlag2 f) { flags2 &= ~f; }
|
||||||
public bool HasMovementFlag2(MovementFlag2 f) { return Convert.ToBoolean(flags2 & f); }
|
public bool HasMovementFlag2(MovementFlag2 f) { return (flags2 & f) != 0; }
|
||||||
|
|
||||||
public void SetFallTime(uint time) { jump.fallTime = time; }
|
public void SetFallTime(uint time) { jump.fallTime = time; }
|
||||||
|
|
||||||
|
|||||||
@@ -876,6 +876,7 @@ namespace Game.Spells
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case Targets.DestCasterFrontLeap:
|
case Targets.DestCasterFrontLeap:
|
||||||
|
case Targets.DestCasterMovementDirection:
|
||||||
{
|
{
|
||||||
Unit unitCaster = m_caster.ToUnit();
|
Unit unitCaster = m_caster.ToUnit();
|
||||||
if (unitCaster == null)
|
if (unitCaster == null)
|
||||||
@@ -883,6 +884,47 @@ namespace Game.Spells
|
|||||||
|
|
||||||
float dist = spellEffectInfo.CalcRadius(unitCaster);
|
float dist = spellEffectInfo.CalcRadius(unitCaster);
|
||||||
float angle = targetType.CalcDirectionAngle();
|
float angle = targetType.CalcDirectionAngle();
|
||||||
|
if (targetType.GetTarget() == Targets.DestCasterMovementDirection)
|
||||||
|
{
|
||||||
|
switch (m_caster.m_movementInfo.GetMovementFlags() & (MovementFlag.Forward | MovementFlag.Backward | MovementFlag.StrafeLeft | MovementFlag.StrafeRight))
|
||||||
|
{
|
||||||
|
case MovementFlag.None:
|
||||||
|
case MovementFlag.Forward:
|
||||||
|
case MovementFlag.Forward | MovementFlag.Backward:
|
||||||
|
case MovementFlag.StrafeLeft | MovementFlag.StrafeRight:
|
||||||
|
case MovementFlag.Forward | MovementFlag.StrafeLeft | MovementFlag.StrafeRight:
|
||||||
|
case MovementFlag.Forward | MovementFlag.Backward | MovementFlag.StrafeLeft | MovementFlag.StrafeRight:
|
||||||
|
angle = 0.0f;
|
||||||
|
break;
|
||||||
|
case MovementFlag.Backward:
|
||||||
|
case MovementFlag.Backward | MovementFlag.StrafeLeft | MovementFlag.StrafeRight:
|
||||||
|
angle = MathF.PI;
|
||||||
|
break;
|
||||||
|
case MovementFlag.StrafeLeft:
|
||||||
|
case MovementFlag.Forward | MovementFlag.Backward | MovementFlag.StrafeLeft:
|
||||||
|
angle = (MathF.PI / 2);
|
||||||
|
break;
|
||||||
|
case MovementFlag.Forward | MovementFlag.StrafeLeft:
|
||||||
|
angle = (MathF.PI / 4);
|
||||||
|
break;
|
||||||
|
case MovementFlag.Backward | MovementFlag.StrafeLeft:
|
||||||
|
angle = (3 * MathF.PI / 4);
|
||||||
|
break;
|
||||||
|
case MovementFlag.StrafeRight:
|
||||||
|
case MovementFlag.Forward | MovementFlag.Backward | MovementFlag.StrafeRight:
|
||||||
|
angle = (-MathF.PI / 2);
|
||||||
|
break;
|
||||||
|
case MovementFlag.Forward | MovementFlag.StrafeRight:
|
||||||
|
angle = (-MathF.PI / 4);
|
||||||
|
break;
|
||||||
|
case MovementFlag.Backward | MovementFlag.StrafeRight:
|
||||||
|
angle = (-3 * MathF.PI / 4);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
angle = 0.0f;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Position pos = new(dest.Position);
|
Position pos = new(dest.Position);
|
||||||
|
|
||||||
|
|||||||
@@ -5060,7 +5060,7 @@ namespace Game.Spells
|
|||||||
new StaticData(SpellTargetObjectTypes.Unit, SpellTargetReferenceTypes.Dest, SpellTargetSelectionCategories.Line, SpellTargetCheckTypes.Enemy, SpellTargetDirectionTypes.None), // 134 TARGET_UNIT_LINE_CASTER_TO_DEST_ENEMY
|
new StaticData(SpellTargetObjectTypes.Unit, SpellTargetReferenceTypes.Dest, SpellTargetSelectionCategories.Line, SpellTargetCheckTypes.Enemy, SpellTargetDirectionTypes.None), // 134 TARGET_UNIT_LINE_CASTER_TO_DEST_ENEMY
|
||||||
new StaticData(SpellTargetObjectTypes.Unit, SpellTargetReferenceTypes.Dest, SpellTargetSelectionCategories.Line, SpellTargetCheckTypes.Default, SpellTargetDirectionTypes.None), // 135 TARGET_UNIT_LINE_CASTER_TO_DEST
|
new StaticData(SpellTargetObjectTypes.Unit, SpellTargetReferenceTypes.Dest, SpellTargetSelectionCategories.Line, SpellTargetCheckTypes.Default, SpellTargetDirectionTypes.None), // 135 TARGET_UNIT_LINE_CASTER_TO_DEST
|
||||||
new StaticData(SpellTargetObjectTypes.None, SpellTargetReferenceTypes.None, SpellTargetSelectionCategories.Nyi, SpellTargetCheckTypes.Default, SpellTargetDirectionTypes.None), // 136
|
new StaticData(SpellTargetObjectTypes.None, SpellTargetReferenceTypes.None, SpellTargetSelectionCategories.Nyi, SpellTargetCheckTypes.Default, SpellTargetDirectionTypes.None), // 136
|
||||||
new StaticData(SpellTargetObjectTypes.None, SpellTargetReferenceTypes.None, SpellTargetSelectionCategories.Nyi, SpellTargetCheckTypes.Default, SpellTargetDirectionTypes.None), // 137
|
new StaticData(SpellTargetObjectTypes.Dest, SpellTargetReferenceTypes.Caster, SpellTargetSelectionCategories.Default, SpellTargetCheckTypes.Default, SpellTargetDirectionTypes.None), // 137 TARGET_DEST_CASTER_MOVEMENT_DIRECTION
|
||||||
new StaticData(SpellTargetObjectTypes.Dest, SpellTargetReferenceTypes.Dest, SpellTargetSelectionCategories.Default, SpellTargetCheckTypes.Default, SpellTargetDirectionTypes.None), // 138 TARGET_DEST_DEST_GROUND
|
new StaticData(SpellTargetObjectTypes.Dest, SpellTargetReferenceTypes.Dest, SpellTargetSelectionCategories.Default, SpellTargetCheckTypes.Default, SpellTargetDirectionTypes.None), // 138 TARGET_DEST_DEST_GROUND
|
||||||
new StaticData(SpellTargetObjectTypes.None, SpellTargetReferenceTypes.None, SpellTargetSelectionCategories.Nyi, SpellTargetCheckTypes.Default, SpellTargetDirectionTypes.None), // 139
|
new StaticData(SpellTargetObjectTypes.None, SpellTargetReferenceTypes.None, SpellTargetSelectionCategories.Nyi, SpellTargetCheckTypes.Default, SpellTargetDirectionTypes.None), // 139
|
||||||
new StaticData(SpellTargetObjectTypes.None, SpellTargetReferenceTypes.None, SpellTargetSelectionCategories.Nyi, SpellTargetCheckTypes.Default, SpellTargetDirectionTypes.None), // 140
|
new StaticData(SpellTargetObjectTypes.None, SpellTargetReferenceTypes.None, SpellTargetSelectionCategories.Nyi, SpellTargetCheckTypes.Default, SpellTargetDirectionTypes.None), // 140
|
||||||
|
|||||||
Reference in New Issue
Block a user