diff --git a/Projects/UOContent/Spells/Base/SpellHelper.cs b/Projects/UOContent/Spells/Base/SpellHelper.cs index 341134029..54f258c8c 100644 --- a/Projects/UOContent/Spells/Base/SpellHelper.cs +++ b/Projects/UOContent/Spells/Base/SpellHelper.cs @@ -220,7 +220,7 @@ namespace Server.Spells } } - if (Core.Expansion == Expansion.AOS) + if (Core.AOS) { for (var i = 0; i < m.Aggressors.Count; ++i) { @@ -257,6 +257,17 @@ namespace Server.Spells return false; } + + public static bool GetEastToWest(IPoint3D from,IPoint3D target) + { + var dx = from.X - target.X; + var dy = from.Y - target.Y; + var rx = (dx - dy) * 44; + var ry = (dx + dy) * 44; + + return (rx >= 0 && ry < 0) || (ry >= 0 && rx < 0); + } + public static bool CanRevealCaster(Mobile m) => m is BaseCreature { Controlled: false }; public static void GetSurfaceTop(ref IPoint3D p) diff --git a/Projects/UOContent/Spells/Fifth/PoisonField.cs b/Projects/UOContent/Spells/Fifth/PoisonField.cs index 9f63b90be..4d4216a20 100644 --- a/Projects/UOContent/Spells/Fifth/PoisonField.cs +++ b/Projects/UOContent/Spells/Fifth/PoisonField.cs @@ -38,12 +38,7 @@ namespace Server.Spells.Fifth SpellHelper.GetSurfaceTop(ref p); - var dx = Caster.Location.X - p.X; - var dy = Caster.Location.Y - p.Y; - var rx = (dx - dy) * 44; - var ry = (dx + dy) * 44; - - bool eastToWest = rx == 0 && ry >= 0 || rx >= 0 && ry == 0; + var eastToWest = SpellHelper.GetEastToWest(Caster.Location, p); Effects.PlaySound(new Point3D(p), Caster.Map, 0x20B); diff --git a/Projects/UOContent/Spells/Fourth/FireField.cs b/Projects/UOContent/Spells/Fourth/FireField.cs index 1123b1476..df1ea840c 100644 --- a/Projects/UOContent/Spells/Fourth/FireField.cs +++ b/Projects/UOContent/Spells/Fourth/FireField.cs @@ -38,12 +38,7 @@ namespace Server.Spells.Fourth SpellHelper.GetSurfaceTop(ref p); - var dx = Caster.Location.X - p.X; - var dy = Caster.Location.Y - p.Y; - var rx = (dx - dy) * 44; - var ry = (dx + dy) * 44; - - bool eastToWest = rx == 0 && ry >= 0 || rx >= 0 && ry == 0; + var eastToWest = SpellHelper.GetEastToWest(Caster.Location, p); Effects.PlaySound(new Point3D(p), Caster.Map, 0x20C); diff --git a/Projects/UOContent/Spells/Seventh/EnergyField.cs b/Projects/UOContent/Spells/Seventh/EnergyField.cs index 8e7fa4d85..0562fd4b0 100644 --- a/Projects/UOContent/Spells/Seventh/EnergyField.cs +++ b/Projects/UOContent/Spells/Seventh/EnergyField.cs @@ -38,13 +38,7 @@ namespace Server.Spells.Seventh SpellHelper.GetSurfaceTop(ref p); - var dx = Caster.Location.X - p.X; - var dy = Caster.Location.Y - p.Y; - var rx = (dx - dy) * 44; - var ry = (dx + dy) * 44; - - bool eastToWest = rx == 0 && ry >= 0 || rx >= 0 && ry == 0; - + var eastToWest = SpellHelper.GetEastToWest(Caster.Location, p); Effects.PlaySound(new Point3D(p), Caster.Map, 0x20B); diff --git a/Projects/UOContent/Spells/Sixth/ParalyzeField.cs b/Projects/UOContent/Spells/Sixth/ParalyzeField.cs index f75edd8de..73110b457 100644 --- a/Projects/UOContent/Spells/Sixth/ParalyzeField.cs +++ b/Projects/UOContent/Spells/Sixth/ParalyzeField.cs @@ -37,12 +37,7 @@ namespace Server.Spells.Sixth SpellHelper.GetSurfaceTop(ref p); - var dx = Caster.Location.X - p.X; - var dy = Caster.Location.Y - p.Y; - var rx = (dx - dy) * 44; - var ry = (dx + dy) * 44; - - bool eastToWest = rx == 0 && ry >= 0 || rx >= 0 && ry == 0; + var eastToWest = SpellHelper.GetEastToWest(Caster.Location, p); Effects.PlaySound(new Point3D(p), Caster.Map, 0x20B); diff --git a/Projects/UOContent/Spells/Third/WallOfStone.cs b/Projects/UOContent/Spells/Third/WallOfStone.cs index 0169fb479..c03f403e5 100644 --- a/Projects/UOContent/Spells/Third/WallOfStone.cs +++ b/Projects/UOContent/Spells/Third/WallOfStone.cs @@ -35,12 +35,7 @@ namespace Server.Spells.Third SpellHelper.GetSurfaceTop(ref p); - var dx = Caster.Location.X - p.X; - var dy = Caster.Location.Y - p.Y; - var rx = (dx - dy) * 44; - var ry = (dx + dy) * 44; - - bool eastToWest = rx == 0 && ry >= 0 || rx >= 0 && ry == 0; + var eastToWest = SpellHelper.GetEastToWest(Caster.Location, p); Effects.PlaySound(new Point3D(p), Caster.Map, 0x1F6);