Core/Spells: Rename TARGET_UNIT_CONE_ENEMY_104 to TARGET_UNIT_CONE_CASTER_TO_DEST_ENEMY
Port From (https://github.com/TrinityCore/TrinityCore/commit/70f1eaac4867cac94fb1a19f5bbf5096366f6281)
This commit is contained in:
@@ -2678,7 +2678,7 @@ namespace Framework.Constants
|
|||||||
UnitPassenger5 = 101,
|
UnitPassenger5 = 101,
|
||||||
UnitPassenger6 = 102,
|
UnitPassenger6 = 102,
|
||||||
UnitPassenger7 = 103,
|
UnitPassenger7 = 103,
|
||||||
UnitConeEnemy104 = 104,
|
UnitConeCasterToDestEnemy = 104,
|
||||||
UnitUnk105 = 105, // 1 Spell
|
UnitUnk105 = 105, // 1 Spell
|
||||||
DestChannelCaster = 106,
|
DestChannelCaster = 106,
|
||||||
UnkDestAreaUnk107 = 107, // Not Enough Info - Only Generic Spells Avalible
|
UnkDestAreaUnk107 = 107, // Not Enough Info - Only Generic Spells Avalible
|
||||||
|
|||||||
@@ -645,11 +645,19 @@ namespace Game.Spells
|
|||||||
|
|
||||||
void SelectImplicitConeTargets(SpellEffectInfo spellEffectInfo, SpellImplicitTargetInfo targetType, uint effMask)
|
void SelectImplicitConeTargets(SpellEffectInfo spellEffectInfo, SpellImplicitTargetInfo targetType, uint effMask)
|
||||||
{
|
{
|
||||||
if (targetType.GetReferenceType() != SpellTargetReferenceTypes.Caster)
|
Position coneSrc = new(m_caster);
|
||||||
|
switch (targetType.GetReferenceType())
|
||||||
{
|
{
|
||||||
Cypher.Assert(false, "Spell.SelectImplicitConeTargets: received not implemented target reference type");
|
case SpellTargetReferenceTypes.Caster:
|
||||||
return;
|
break;
|
||||||
|
case SpellTargetReferenceTypes.Dest:
|
||||||
|
if (m_caster.GetExactDist2d(m_targets.GetDstPos()) > 0.1f)
|
||||||
|
coneSrc.SetOrientation(m_caster.GetAbsoluteAngle(m_targets.GetDstPos()));
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
List<WorldObject> targets = new();
|
List<WorldObject> targets = new();
|
||||||
SpellTargetObjectTypes objectType = targetType.GetObjectType();
|
SpellTargetObjectTypes objectType = targetType.GetObjectType();
|
||||||
SpellTargetCheckTypes selectionType = targetType.GetCheckType();
|
SpellTargetCheckTypes selectionType = targetType.GetCheckType();
|
||||||
@@ -660,7 +668,7 @@ namespace Game.Spells
|
|||||||
GridMapTypeMask containerTypeMask = GetSearcherTypeMask(objectType, condList);
|
GridMapTypeMask containerTypeMask = GetSearcherTypeMask(objectType, condList);
|
||||||
if (containerTypeMask != 0)
|
if (containerTypeMask != 0)
|
||||||
{
|
{
|
||||||
var spellCone = new WorldObjectSpellConeTargetCheck(MathFunctions.DegToRad(m_spellInfo.ConeAngle), m_spellInfo.Width != 0 ? m_spellInfo.Width : m_caster.GetCombatReach(), radius, m_caster, m_spellInfo, selectionType, condList, objectType);
|
var spellCone = new WorldObjectSpellConeTargetCheck(coneSrc, MathFunctions.DegToRad(m_spellInfo.ConeAngle), m_spellInfo.Width != 0 ? m_spellInfo.Width : m_caster.GetCombatReach(), radius, m_caster, m_spellInfo, selectionType, condList, objectType);
|
||||||
var searcher = new WorldObjectListSearcher(m_caster, targets, spellCone, containerTypeMask);
|
var searcher = new WorldObjectListSearcher(m_caster, targets, spellCone, containerTypeMask);
|
||||||
SearchTargets(searcher, containerTypeMask, m_caster, m_caster.GetPosition(), radius);
|
SearchTargets(searcher, containerTypeMask, m_caster, m_caster.GetPosition(), radius);
|
||||||
|
|
||||||
@@ -8515,12 +8523,14 @@ namespace Game.Spells
|
|||||||
|
|
||||||
public class WorldObjectSpellConeTargetCheck : WorldObjectSpellAreaTargetCheck
|
public class WorldObjectSpellConeTargetCheck : WorldObjectSpellAreaTargetCheck
|
||||||
{
|
{
|
||||||
|
Position _coneSrc;
|
||||||
float _coneAngle;
|
float _coneAngle;
|
||||||
float _lineWidth;
|
float _lineWidth;
|
||||||
|
|
||||||
public WorldObjectSpellConeTargetCheck(float coneAngle, float lineWidth, float range, WorldObject caster, SpellInfo spellInfo, SpellTargetCheckTypes selectionType, List<Condition> condList, SpellTargetObjectTypes objectType)
|
public WorldObjectSpellConeTargetCheck(Position coneSrc, float coneAngle, float lineWidth, float range, WorldObject caster, SpellInfo spellInfo, SpellTargetCheckTypes selectionType, List<Condition> condList, SpellTargetObjectTypes objectType)
|
||||||
: base(range, caster.GetPosition(), caster, caster, spellInfo, selectionType, condList, objectType)
|
: base(range, caster.GetPosition(), caster, caster, spellInfo, selectionType, condList, objectType)
|
||||||
{
|
{
|
||||||
|
_coneSrc = coneSrc;
|
||||||
_coneAngle = coneAngle;
|
_coneAngle = coneAngle;
|
||||||
_lineWidth = lineWidth;
|
_lineWidth = lineWidth;
|
||||||
}
|
}
|
||||||
@@ -8529,12 +8539,12 @@ namespace Game.Spells
|
|||||||
{
|
{
|
||||||
if (_spellInfo.HasAttribute(SpellCustomAttributes.ConeBack))
|
if (_spellInfo.HasAttribute(SpellCustomAttributes.ConeBack))
|
||||||
{
|
{
|
||||||
if (!_caster.IsInBack(target, _coneAngle))
|
if (_coneSrc.HasInArc(-Math.Abs(_coneAngle), target))
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
else if (_spellInfo.HasAttribute(SpellCustomAttributes.ConeLine))
|
else if (_spellInfo.HasAttribute(SpellCustomAttributes.ConeLine))
|
||||||
{
|
{
|
||||||
if (!_caster.HasInLine(target, target.GetCombatReach(), _lineWidth))
|
if (!_coneSrc.HasInLine(target, target.GetCombatReach(), _lineWidth))
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -8542,7 +8552,7 @@ namespace Game.Spells
|
|||||||
if (!_caster.IsUnit() || !_caster.ToUnit().IsWithinBoundaryRadius(target.ToUnit()))
|
if (!_caster.IsUnit() || !_caster.ToUnit().IsWithinBoundaryRadius(target.ToUnit()))
|
||||||
// ConeAngle > 0 . select targets in front
|
// ConeAngle > 0 . select targets in front
|
||||||
// ConeAngle < 0 . select targets in back
|
// ConeAngle < 0 . select targets in back
|
||||||
if (_caster.HasInArc(_coneAngle, target) != MathFunctions.fuzzyGe(_coneAngle, 0.0f))
|
if (_coneSrc.HasInArc(_coneAngle, target) != MathFunctions.fuzzyGe(_coneAngle, 0.0f))
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return base.Invoke(target);
|
return base.Invoke(target);
|
||||||
|
|||||||
@@ -5027,7 +5027,7 @@ namespace Game.Spells
|
|||||||
new StaticData(SpellTargetObjectTypes.Unit, SpellTargetReferenceTypes.Caster, SpellTargetSelectionCategories.Default, SpellTargetCheckTypes.Default, SpellTargetDirectionTypes.None), // 101 TARGET_UNIT_PASSENGER_5
|
new StaticData(SpellTargetObjectTypes.Unit, SpellTargetReferenceTypes.Caster, SpellTargetSelectionCategories.Default, SpellTargetCheckTypes.Default, SpellTargetDirectionTypes.None), // 101 TARGET_UNIT_PASSENGER_5
|
||||||
new StaticData(SpellTargetObjectTypes.Unit, SpellTargetReferenceTypes.Caster, SpellTargetSelectionCategories.Default, SpellTargetCheckTypes.Default, SpellTargetDirectionTypes.None), // 102 TARGET_UNIT_PASSENGER_6
|
new StaticData(SpellTargetObjectTypes.Unit, SpellTargetReferenceTypes.Caster, SpellTargetSelectionCategories.Default, SpellTargetCheckTypes.Default, SpellTargetDirectionTypes.None), // 102 TARGET_UNIT_PASSENGER_6
|
||||||
new StaticData(SpellTargetObjectTypes.Unit, SpellTargetReferenceTypes.Caster, SpellTargetSelectionCategories.Default, SpellTargetCheckTypes.Default, SpellTargetDirectionTypes.None), // 103 TARGET_UNIT_PASSENGER_7
|
new StaticData(SpellTargetObjectTypes.Unit, SpellTargetReferenceTypes.Caster, SpellTargetSelectionCategories.Default, SpellTargetCheckTypes.Default, SpellTargetDirectionTypes.None), // 103 TARGET_UNIT_PASSENGER_7
|
||||||
new StaticData(SpellTargetObjectTypes.Unit, SpellTargetReferenceTypes.Caster, SpellTargetSelectionCategories.Cone, SpellTargetCheckTypes.Enemy, SpellTargetDirectionTypes.Front), // 104 TARGET_UNIT_CONE_ENEMY_104
|
new StaticData(SpellTargetObjectTypes.Unit, SpellTargetReferenceTypes.Dest, SpellTargetSelectionCategories.Cone, SpellTargetCheckTypes.Enemy, SpellTargetDirectionTypes.Front), // 104 TARGET_UNIT_CONE_CASTER_TO_DEST_ENEMY
|
||||||
new StaticData(SpellTargetObjectTypes.Unit, SpellTargetReferenceTypes.None, SpellTargetSelectionCategories.Nyi, SpellTargetCheckTypes.Default, SpellTargetDirectionTypes.None), // 105 TARGET_UNIT_UNK_105
|
new StaticData(SpellTargetObjectTypes.Unit, SpellTargetReferenceTypes.None, SpellTargetSelectionCategories.Nyi, SpellTargetCheckTypes.Default, SpellTargetDirectionTypes.None), // 105 TARGET_UNIT_UNK_105
|
||||||
new StaticData(SpellTargetObjectTypes.Dest, SpellTargetReferenceTypes.Caster, SpellTargetSelectionCategories.Channel, SpellTargetCheckTypes.Default, SpellTargetDirectionTypes.None), // 106 TARGET_DEST_CHANNEL_CASTER
|
new StaticData(SpellTargetObjectTypes.Dest, SpellTargetReferenceTypes.Caster, SpellTargetSelectionCategories.Channel, SpellTargetCheckTypes.Default, SpellTargetDirectionTypes.None), // 106 TARGET_DEST_CHANNEL_CASTER
|
||||||
new StaticData(SpellTargetObjectTypes.None, SpellTargetReferenceTypes.Dest, SpellTargetSelectionCategories.Nyi, SpellTargetCheckTypes.Default, SpellTargetDirectionTypes.None), // 107 TARGET_UNK_DEST_AREA_UNK_107
|
new StaticData(SpellTargetObjectTypes.None, SpellTargetReferenceTypes.Dest, SpellTargetSelectionCategories.Nyi, SpellTargetCheckTypes.Default, SpellTargetDirectionTypes.None), // 107 TARGET_UNK_DEST_AREA_UNK_107
|
||||||
|
|||||||
@@ -286,7 +286,7 @@ namespace Scripts.Spells.Shaman
|
|||||||
|
|
||||||
public override void Register()
|
public override void Register()
|
||||||
{
|
{
|
||||||
OnObjectAreaTargetSelect.Add(new ObjectAreaTargetSelectHandler(CountTargets, 0, Targets.UnitConeEnemy104));
|
OnObjectAreaTargetSelect.Add(new ObjectAreaTargetSelectHandler(CountTargets, 0, Targets.UnitConeCasterToDestEnemy));
|
||||||
AfterCast.Add(new CastHandler(TriggerCleaveBuff));
|
AfterCast.Add(new CastHandler(TriggerCleaveBuff));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user