From 35342e296efdd42f8320d93baa63949caeaec67e Mon Sep 17 00:00:00 2001 From: Kamron Batman <3953314+kamronbatman@users.noreply.github.com> Date: Tue, 20 Aug 2024 15:51:33 -0700 Subject: [PATCH] fix: Fixes targeting ground with spells (#1937) --- Projects/UOContent/Spells/Eighth/EnergyVortex.cs | 2 +- Projects/UOContent/Spells/Fifth/BladeSpirits.cs | 2 +- Projects/UOContent/Spells/Fifth/PoisonField.cs | 2 +- Projects/UOContent/Spells/Fourth/ArchCure.cs | 2 +- Projects/UOContent/Spells/Fourth/ArchProtection.cs | 2 +- Projects/UOContent/Spells/Fourth/FireField.cs | 2 +- .../UOContent/Spells/Mysticism/AnimatedWeaponSpell.cs | 2 +- Projects/UOContent/Spells/Mysticism/HailStormSpell.cs | 2 +- .../UOContent/Spells/Mysticism/NetherCycloneSpell.cs | 2 +- Projects/UOContent/Spells/Ninjitsu/ShadowJump.cs | 2 +- Projects/UOContent/Spells/Seventh/ChainLightning.cs | 2 +- Projects/UOContent/Spells/Seventh/EnergyField.cs | 2 +- Projects/UOContent/Spells/Seventh/MassDispel.cs | 2 +- Projects/UOContent/Spells/Seventh/MeteorSwarm.cs | 2 +- Projects/UOContent/Spells/Sixth/MassCurse.cs | 2 +- Projects/UOContent/Spells/Sixth/ParalyzeField.cs | 2 +- Projects/UOContent/Spells/Sixth/Reveal.cs | 2 +- Projects/UOContent/Spells/Spellweaving/NatureFury.cs | 2 +- Projects/UOContent/Spells/Targeting/SpellTarget.cs | 10 +++++++--- Projects/UOContent/Spells/Third/Teleport.cs | 2 +- Projects/UOContent/Spells/Third/WallOfStone.cs | 2 +- 21 files changed, 27 insertions(+), 23 deletions(-) diff --git a/Projects/UOContent/Spells/Eighth/EnergyVortex.cs b/Projects/UOContent/Spells/Eighth/EnergyVortex.cs index bd5ee1c6c..2269e471e 100644 --- a/Projects/UOContent/Spells/Eighth/EnergyVortex.cs +++ b/Projects/UOContent/Spells/Eighth/EnergyVortex.cs @@ -60,7 +60,7 @@ namespace Server.Spells.Eighth public override void OnCast() { - Caster.Target = new SpellTarget(this, retryOnLos: true); + Caster.Target = new SpellTarget(this, allowGround: true, retryOnLos: true); } } } diff --git a/Projects/UOContent/Spells/Fifth/BladeSpirits.cs b/Projects/UOContent/Spells/Fifth/BladeSpirits.cs index f0b3e56cc..d44d1668f 100644 --- a/Projects/UOContent/Spells/Fifth/BladeSpirits.cs +++ b/Projects/UOContent/Spells/Fifth/BladeSpirits.cs @@ -78,7 +78,7 @@ namespace Server.Spells.Fifth public override void OnCast() { - Caster.Target = new SpellTarget(this, retryOnLos: true); + Caster.Target = new SpellTarget(this, allowGround: true, retryOnLos: true); } } } diff --git a/Projects/UOContent/Spells/Fifth/PoisonField.cs b/Projects/UOContent/Spells/Fifth/PoisonField.cs index 6c550ef6d..7f38c677f 100644 --- a/Projects/UOContent/Spells/Fifth/PoisonField.cs +++ b/Projects/UOContent/Spells/Fifth/PoisonField.cs @@ -57,7 +57,7 @@ public class PoisonFieldSpell : MagerySpell, ITargetingSpell public override void OnCast() { - Caster.Target = new SpellTarget(this); + Caster.Target = new SpellTarget(this, allowGround: true); } } diff --git a/Projects/UOContent/Spells/Fourth/ArchCure.cs b/Projects/UOContent/Spells/Fourth/ArchCure.cs index 9531903c1..ed5307df3 100644 --- a/Projects/UOContent/Spells/Fourth/ArchCure.cs +++ b/Projects/UOContent/Spells/Fourth/ArchCure.cs @@ -95,7 +95,7 @@ namespace Server.Spells.Fourth public override void OnCast() { - Caster.Target = new SpellTarget(this); + Caster.Target = new SpellTarget(this, allowGround: true); } private bool AreaCanTarget(Mobile target, bool feluccaRules) diff --git a/Projects/UOContent/Spells/Fourth/ArchProtection.cs b/Projects/UOContent/Spells/Fourth/ArchProtection.cs index cb156635d..18e2ab58b 100644 --- a/Projects/UOContent/Spells/Fourth/ArchProtection.cs +++ b/Projects/UOContent/Spells/Fourth/ArchProtection.cs @@ -94,7 +94,7 @@ namespace Server.Spells.Fourth public override void OnCast() { - Caster.Target = new SpellTarget(this); + Caster.Target = new SpellTarget(this, allowGround: true); } private static void AddEntry(Mobile m, int v) diff --git a/Projects/UOContent/Spells/Fourth/FireField.cs b/Projects/UOContent/Spells/Fourth/FireField.cs index 4632edd1a..004a43b57 100644 --- a/Projects/UOContent/Spells/Fourth/FireField.cs +++ b/Projects/UOContent/Spells/Fourth/FireField.cs @@ -60,7 +60,7 @@ public class FireFieldSpell : MagerySpell, ITargetingSpell public override void OnCast() { - Caster.Target = new SpellTarget(this); + Caster.Target = new SpellTarget(this, allowGround: true); } } diff --git a/Projects/UOContent/Spells/Mysticism/AnimatedWeaponSpell.cs b/Projects/UOContent/Spells/Mysticism/AnimatedWeaponSpell.cs index 6b5ed7bdb..6775ef8ea 100644 --- a/Projects/UOContent/Spells/Mysticism/AnimatedWeaponSpell.cs +++ b/Projects/UOContent/Spells/Mysticism/AnimatedWeaponSpell.cs @@ -55,6 +55,6 @@ public class AnimatedWeaponSpell : MysticSpell, ITargetingSpell public override void OnCast() { - Caster.Target = new SpellTarget(this); + Caster.Target = new SpellTarget(this, allowGround: true); } } diff --git a/Projects/UOContent/Spells/Mysticism/HailStormSpell.cs b/Projects/UOContent/Spells/Mysticism/HailStormSpell.cs index febd11f0b..cf21bd750 100644 --- a/Projects/UOContent/Spells/Mysticism/HailStormSpell.cs +++ b/Projects/UOContent/Spells/Mysticism/HailStormSpell.cs @@ -73,7 +73,7 @@ public class HailStormSpell : MysticSpell, ITargetingSpell public override void OnCast() { - Caster.Target = new SpellTarget(this); + Caster.Target = new SpellTarget(this, allowGround: true); } private static void PlayEffect(Point3D p, Map map) diff --git a/Projects/UOContent/Spells/Mysticism/NetherCycloneSpell.cs b/Projects/UOContent/Spells/Mysticism/NetherCycloneSpell.cs index 71ac15a96..04e7a316a 100644 --- a/Projects/UOContent/Spells/Mysticism/NetherCycloneSpell.cs +++ b/Projects/UOContent/Spells/Mysticism/NetherCycloneSpell.cs @@ -89,7 +89,7 @@ public class NetherCycloneSpell : MysticSpell, ITargetingSpell public override void OnCast() { - Caster.Target = new SpellTarget(this); + Caster.Target = new SpellTarget(this, allowGround: true); } private static void PlayEffect(Point3D p, Map map) diff --git a/Projects/UOContent/Spells/Ninjitsu/ShadowJump.cs b/Projects/UOContent/Spells/Ninjitsu/ShadowJump.cs index c281e1299..65fe52893 100644 --- a/Projects/UOContent/Spells/Ninjitsu/ShadowJump.cs +++ b/Projects/UOContent/Spells/Ninjitsu/ShadowJump.cs @@ -112,6 +112,6 @@ public class Shadowjump : NinjaSpell, ITargetingSpell public override void OnCast() { Caster.SendLocalizedMessage(1063088); // You prepare to perform a Shadowjump. - Caster.Target = new SpellTarget(this); + Caster.Target = new SpellTarget(this, allowGround: true); } } diff --git a/Projects/UOContent/Spells/Seventh/ChainLightning.cs b/Projects/UOContent/Spells/Seventh/ChainLightning.cs index e033d6890..cb8fe203e 100644 --- a/Projects/UOContent/Spells/Seventh/ChainLightning.cs +++ b/Projects/UOContent/Spells/Seventh/ChainLightning.cs @@ -99,7 +99,7 @@ namespace Server.Spells.Seventh public override void OnCast() { - Caster.Target = new SpellTarget(this); + Caster.Target = new SpellTarget(this, allowGround: true); } } } diff --git a/Projects/UOContent/Spells/Seventh/EnergyField.cs b/Projects/UOContent/Spells/Seventh/EnergyField.cs index 9d079f5ab..87dedeaf7 100644 --- a/Projects/UOContent/Spells/Seventh/EnergyField.cs +++ b/Projects/UOContent/Spells/Seventh/EnergyField.cs @@ -71,7 +71,7 @@ public class EnergyFieldSpell : MagerySpell, ITargetingSpell public override void OnCast() { - Caster.Target = new SpellTarget(this); + Caster.Target = new SpellTarget(this, allowGround: true); } } diff --git a/Projects/UOContent/Spells/Seventh/MassDispel.cs b/Projects/UOContent/Spells/Seventh/MassDispel.cs index 3f1b0c8e5..bd5113e08 100644 --- a/Projects/UOContent/Spells/Seventh/MassDispel.cs +++ b/Projects/UOContent/Spells/Seventh/MassDispel.cs @@ -76,7 +76,7 @@ namespace Server.Spells.Seventh public override void OnCast() { - Caster.Target = new SpellTarget(this); + Caster.Target = new SpellTarget(this, allowGround: true); } } } diff --git a/Projects/UOContent/Spells/Seventh/MeteorSwarm.cs b/Projects/UOContent/Spells/Seventh/MeteorSwarm.cs index fd1ba6282..adb35a827 100644 --- a/Projects/UOContent/Spells/Seventh/MeteorSwarm.cs +++ b/Projects/UOContent/Spells/Seventh/MeteorSwarm.cs @@ -104,7 +104,7 @@ namespace Server.Spells.Seventh public override void OnCast() { - Caster.Target = new SpellTarget(this); + Caster.Target = new SpellTarget(this, allowGround: true); } } } diff --git a/Projects/UOContent/Spells/Sixth/MassCurse.cs b/Projects/UOContent/Spells/Sixth/MassCurse.cs index 5f38e7547..a0466ddba 100644 --- a/Projects/UOContent/Spells/Sixth/MassCurse.cs +++ b/Projects/UOContent/Spells/Sixth/MassCurse.cs @@ -58,7 +58,7 @@ namespace Server.Spells.Sixth public override void OnCast() { - Caster.Target = new SpellTarget(this); + Caster.Target = new SpellTarget(this, allowGround: true); } } } diff --git a/Projects/UOContent/Spells/Sixth/ParalyzeField.cs b/Projects/UOContent/Spells/Sixth/ParalyzeField.cs index e05009dea..ce2ec48f0 100644 --- a/Projects/UOContent/Spells/Sixth/ParalyzeField.cs +++ b/Projects/UOContent/Spells/Sixth/ParalyzeField.cs @@ -71,7 +71,7 @@ public class ParalyzeFieldSpell : MagerySpell, ITargetingSpell public override void OnCast() { - Caster.Target = new SpellTarget(this); + Caster.Target = new SpellTarget(this, allowGround: true); } } diff --git a/Projects/UOContent/Spells/Sixth/Reveal.cs b/Projects/UOContent/Spells/Sixth/Reveal.cs index 73a9ce296..d4db755d6 100644 --- a/Projects/UOContent/Spells/Sixth/Reveal.cs +++ b/Projects/UOContent/Spells/Sixth/Reveal.cs @@ -55,7 +55,7 @@ namespace Server.Spells.Sixth public override void OnCast() { - Caster.Target = new SpellTarget(this); + Caster.Target = new SpellTarget(this, allowGround: true); } // Reveal uses magery and detect hidden vs. hide and stealth diff --git a/Projects/UOContent/Spells/Spellweaving/NatureFury.cs b/Projects/UOContent/Spells/Spellweaving/NatureFury.cs index 2527d2a93..144e3b735 100644 --- a/Projects/UOContent/Spells/Spellweaving/NatureFury.cs +++ b/Projects/UOContent/Spells/Spellweaving/NatureFury.cs @@ -70,7 +70,7 @@ namespace Server.Spells.Spellweaving public override void OnCast() { - Caster.Target = new SpellTarget(this); + Caster.Target = new SpellTarget(this, allowGround: true); } private class InternalTimer : Timer diff --git a/Projects/UOContent/Spells/Targeting/SpellTarget.cs b/Projects/UOContent/Spells/Targeting/SpellTarget.cs index 056fed472..74a12d8c1 100644 --- a/Projects/UOContent/Spells/Targeting/SpellTarget.cs +++ b/Projects/UOContent/Spells/Targeting/SpellTarget.cs @@ -13,14 +13,18 @@ public class SpellTarget : Target, ISpellTarget where T : class, IPoint3D public SpellTarget( ITargetingSpell spell, - TargetFlags flags = TargetFlags.None, + TargetFlags flags, bool retryOnLos = false ) : this(spell, false, flags, retryOnLos) { } - public SpellTarget(ITargetingSpell spell, bool allowGround, TargetFlags flags = TargetFlags.None, bool retryOnLos = false) - : base(spell.TargetRange, allowGround, flags) + public SpellTarget( + ITargetingSpell spell, + bool allowGround = false, + TargetFlags flags = TargetFlags.None, + bool retryOnLos = false + ) : base(spell.TargetRange, allowGround, flags) { _spell = spell; _retryOnLos = retryOnLos; diff --git a/Projects/UOContent/Spells/Third/Teleport.cs b/Projects/UOContent/Spells/Third/Teleport.cs index 7bcbb6fa9..4b8aad856 100644 --- a/Projects/UOContent/Spells/Third/Teleport.cs +++ b/Projects/UOContent/Spells/Third/Teleport.cs @@ -139,7 +139,7 @@ namespace Server.Spells.Third public override void OnCast() { - Caster.Target = new SpellTarget(this); + Caster.Target = new SpellTarget(this, allowGround: true); } } } diff --git a/Projects/UOContent/Spells/Third/WallOfStone.cs b/Projects/UOContent/Spells/Third/WallOfStone.cs index 8b2e5621e..f1c94c6fd 100644 --- a/Projects/UOContent/Spells/Third/WallOfStone.cs +++ b/Projects/UOContent/Spells/Third/WallOfStone.cs @@ -56,7 +56,7 @@ public class WallOfStoneSpell : MagerySpell, ITargetingSpell public override void OnCast() { - Caster.Target = new SpellTarget(this); + Caster.Target = new SpellTarget(this, allowGround: true); } }