diff --git a/Projects/UOContent/Spells/Base/Spell.cs b/Projects/UOContent/Spells/Base/Spell.cs index 4be93b9b3..85c8c4ceb 100644 --- a/Projects/UOContent/Spells/Base/Spell.cs +++ b/Projects/UOContent/Spells/Base/Spell.cs @@ -377,20 +377,19 @@ namespace Server.Spells return; } + if (!firstCircle && !Core.AOS && (this as MagerySpell)?.Circle == SpellCircle.First) + { + return; + } + + State = SpellState.None; + Caster.Spell = null; + if (State == SpellState.Casting) { - if (!firstCircle && !Core.AOS && this is MagerySpell && ((MagerySpell)this).Circle == SpellCircle.First) - { - return; - } - - State = SpellState.None; - Caster.Spell = null; - OnDisturb(type, true); m_CastTimer?.Stop(); - m_AnimTimer?.Stop(); if (Core.AOS && Caster.Player && type == DisturbType.Hurt) @@ -402,14 +401,6 @@ namespace Server.Spells } else if (State == SpellState.Sequencing) { - if (!firstCircle && !Core.AOS && this is MagerySpell && ((MagerySpell)this).Circle == SpellCircle.First) - { - return; - } - - State = SpellState.None; - Caster.Spell = null; - OnDisturb(type, false); Target.Cancel(Caster); diff --git a/Projects/UOContent/Spells/Eighth/EnergyVortex.cs b/Projects/UOContent/Spells/Eighth/EnergyVortex.cs index 812f67bf0..f2d917b61 100644 --- a/Projects/UOContent/Spells/Eighth/EnergyVortex.cs +++ b/Projects/UOContent/Spells/Eighth/EnergyVortex.cs @@ -70,7 +70,7 @@ namespace Server.Spells.Eighth public override void OnCast() { - Caster.Target = new SpellTargetPoint3D(this); + Caster.Target = new SpellTargetPoint3D(this, retryOnLOS: true); } } } diff --git a/Projects/UOContent/Spells/Fifth/BladeSpirits.cs b/Projects/UOContent/Spells/Fifth/BladeSpirits.cs index 296752d60..6bf8cf6a0 100644 --- a/Projects/UOContent/Spells/Fifth/BladeSpirits.cs +++ b/Projects/UOContent/Spells/Fifth/BladeSpirits.cs @@ -79,7 +79,7 @@ namespace Server.Spells.Fifth public override void OnCast() { - Caster.Target = new SpellTargetPoint3D(this); + Caster.Target = new SpellTargetPoint3D(this, retryOnLOS: true); } } } diff --git a/Projects/UOContent/Spells/Fifth/DispelField.cs b/Projects/UOContent/Spells/Fifth/DispelField.cs index cd7c3240c..ff0241410 100644 --- a/Projects/UOContent/Spells/Fifth/DispelField.cs +++ b/Projects/UOContent/Spells/Fifth/DispelField.cs @@ -54,7 +54,7 @@ namespace Server.Spells.Fifth public override void OnCast() { - Caster.Target = new SpellTargetItem(this, TargetFlags.None, Core.ML ? 10 : 12); + Caster.Target = new SpellTargetItem(this, range: Core.ML ? 10 : 12); } } } diff --git a/Projects/UOContent/Spells/Fifth/PoisonField.cs b/Projects/UOContent/Spells/Fifth/PoisonField.cs index 1c7ceb92a..bbc26fb85 100644 --- a/Projects/UOContent/Spells/Fifth/PoisonField.cs +++ b/Projects/UOContent/Spells/Fifth/PoisonField.cs @@ -55,7 +55,7 @@ namespace Server.Spells.Fifth public override void OnCast() { - Caster.Target = new SpellTargetPoint3D(this, TargetFlags.None, Core.ML ? 10 : 12, false); + Caster.Target = new SpellTargetPoint3D(this, range: Core.ML ? 10 : 12); } [DispellableField] diff --git a/Projects/UOContent/Spells/Fourth/ArchCure.cs b/Projects/UOContent/Spells/Fourth/ArchCure.cs index 9b618138f..f7be3f3e9 100644 --- a/Projects/UOContent/Spells/Fourth/ArchCure.cs +++ b/Projects/UOContent/Spells/Fourth/ArchCure.cs @@ -100,7 +100,7 @@ namespace Server.Spells.Fourth public override void OnCast() { - Caster.Target = new SpellTargetPoint3D(this, TargetFlags.None, Core.ML ? 10 : 12); + Caster.Target = new SpellTargetPoint3D(this, range: Core.ML ? 10 : 12); } private bool AreaCanTarget(Mobile target, bool feluccaRules) diff --git a/Projects/UOContent/Spells/Fourth/ArchProtection.cs b/Projects/UOContent/Spells/Fourth/ArchProtection.cs index a9ae7f7bb..a798ad83b 100644 --- a/Projects/UOContent/Spells/Fourth/ArchProtection.cs +++ b/Projects/UOContent/Spells/Fourth/ArchProtection.cs @@ -103,7 +103,7 @@ namespace Server.Spells.Fourth public override void OnCast() { - Caster.Target = new SpellTargetPoint3D(this, TargetFlags.None, Core.ML ? 10 : 12); + Caster.Target = new SpellTargetPoint3D(this, range: Core.ML ? 10 : 12); } 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 c06739a78..e685fd6c0 100644 --- a/Projects/UOContent/Spells/Fourth/FireField.cs +++ b/Projects/UOContent/Spells/Fourth/FireField.cs @@ -64,7 +64,7 @@ namespace Server.Spells.Fourth public override void OnCast() { - Caster.Target = new SpellTargetPoint3D(this, TargetFlags.None, Core.ML ? 10 : 12); + Caster.Target = new SpellTargetPoint3D(this, range: Core.ML ? 10 : 12); } [DispellableField] diff --git a/Projects/UOContent/Spells/Necromancy/AnimateDeadSpell.cs b/Projects/UOContent/Spells/Necromancy/AnimateDeadSpell.cs index dc2740166..47448544b 100644 --- a/Projects/UOContent/Spells/Necromancy/AnimateDeadSpell.cs +++ b/Projects/UOContent/Spells/Necromancy/AnimateDeadSpell.cs @@ -206,7 +206,7 @@ namespace Server.Spells.Necromancy public override void OnCast() { - Caster.Target = new SpellTargetItem(this, TargetFlags.None, Core.ML ? 10 : 12); + Caster.Target = new SpellTargetItem(this, range: Core.ML ? 10 : 12); Caster.SendLocalizedMessage(1061083); // Animate what corpse? } diff --git a/Projects/UOContent/Spells/Second/MagicTrap.cs b/Projects/UOContent/Spells/Second/MagicTrap.cs index 259cfcad0..13200240f 100644 --- a/Projects/UOContent/Spells/Second/MagicTrap.cs +++ b/Projects/UOContent/Spells/Second/MagicTrap.cs @@ -85,7 +85,7 @@ namespace Server.Spells.Second public override void OnCast() { - Caster.Target = new SpellTargetItem(this, TargetFlags.None, Core.ML ? 10 : 12); + Caster.Target = new SpellTargetItem(this, range: Core.ML ? 10 : 12); } } } diff --git a/Projects/UOContent/Spells/Second/RemoveTrap.cs b/Projects/UOContent/Spells/Second/RemoveTrap.cs index c684e603c..3850205c0 100644 --- a/Projects/UOContent/Spells/Second/RemoveTrap.cs +++ b/Projects/UOContent/Spells/Second/RemoveTrap.cs @@ -55,7 +55,7 @@ namespace Server.Spells.Second public override void OnCast() { - Caster.Target = new SpellTargetItem(this, TargetFlags.None, Core.ML ? 10 : 12); + Caster.Target = new SpellTargetItem(this, range: Core.ML ? 10 : 12); Caster.SendMessage("What do you wish to untrap?"); // TODO: Localization? } } diff --git a/Projects/UOContent/Spells/Seventh/ChainLightning.cs b/Projects/UOContent/Spells/Seventh/ChainLightning.cs index 7251597aa..0286729fe 100644 --- a/Projects/UOContent/Spells/Seventh/ChainLightning.cs +++ b/Projects/UOContent/Spells/Seventh/ChainLightning.cs @@ -119,7 +119,7 @@ namespace Server.Spells.Seventh public override void OnCast() { - Caster.Target = new SpellTargetPoint3D(this, TargetFlags.None, Core.ML ? 10 : 12); + Caster.Target = new SpellTargetPoint3D(this, range: Core.ML ? 10 : 12); } } } diff --git a/Projects/UOContent/Spells/Seventh/EnergyField.cs b/Projects/UOContent/Spells/Seventh/EnergyField.cs index 8e6489779..98177d63f 100644 --- a/Projects/UOContent/Spells/Seventh/EnergyField.cs +++ b/Projects/UOContent/Spells/Seventh/EnergyField.cs @@ -82,7 +82,7 @@ namespace Server.Spells.Seventh public override void OnCast() { - Caster.Target = new SpellTargetPoint3D(this, TargetFlags.None, Core.ML ? 10 : 12); + Caster.Target = new SpellTargetPoint3D(this, range: Core.ML ? 10 : 12); } [DispellableField] diff --git a/Projects/UOContent/Spells/Seventh/MassDispel.cs b/Projects/UOContent/Spells/Seventh/MassDispel.cs index fad116d3d..8a1b3b164 100644 --- a/Projects/UOContent/Spells/Seventh/MassDispel.cs +++ b/Projects/UOContent/Spells/Seventh/MassDispel.cs @@ -77,7 +77,7 @@ namespace Server.Spells.Seventh public override void OnCast() { - Caster.Target = new SpellTargetPoint3D(this, TargetFlags.None, Core.ML ? 10 : 12); + Caster.Target = new SpellTargetPoint3D(this, range: Core.ML ? 10 : 12); } } } diff --git a/Projects/UOContent/Spells/Seventh/MeteorSwarm.cs b/Projects/UOContent/Spells/Seventh/MeteorSwarm.cs index 10e3d5530..1d6e56825 100644 --- a/Projects/UOContent/Spells/Seventh/MeteorSwarm.cs +++ b/Projects/UOContent/Spells/Seventh/MeteorSwarm.cs @@ -119,7 +119,7 @@ namespace Server.Spells.Seventh public override void OnCast() { - Caster.Target = new SpellTargetPoint3D(this, TargetFlags.None, Core.ML ? 10 : 12); + Caster.Target = new SpellTargetPoint3D(this, range: Core.ML ? 10 : 12); } } } diff --git a/Projects/UOContent/Spells/Sixth/Mark.cs b/Projects/UOContent/Spells/Sixth/Mark.cs index 7a4fb4e36..0f8d7d6a1 100644 --- a/Projects/UOContent/Spells/Sixth/Mark.cs +++ b/Projects/UOContent/Spells/Sixth/Mark.cs @@ -61,7 +61,7 @@ namespace Server.Spells.Sixth public override void OnCast() { - Caster.Target = new SpellTargetItem(this, TargetFlags.None, Core.ML ? 10 : 12); + Caster.Target = new SpellTargetItem(this, range: Core.ML ? 10 : 12); } public override bool CheckCast() => base.CheckCast() && SpellHelper.CheckTravel(Caster, TravelCheckType.Mark); diff --git a/Projects/UOContent/Spells/Sixth/MassCurse.cs b/Projects/UOContent/Spells/Sixth/MassCurse.cs index ee2e8ba38..bbd7e183e 100644 --- a/Projects/UOContent/Spells/Sixth/MassCurse.cs +++ b/Projects/UOContent/Spells/Sixth/MassCurse.cs @@ -67,7 +67,7 @@ namespace Server.Spells.Sixth public override void OnCast() { - Caster.Target = new SpellTargetPoint3D(this, TargetFlags.None, Core.ML ? 10 : 12); + Caster.Target = new SpellTargetPoint3D(this, range: Core.ML ? 10 : 12); } } } diff --git a/Projects/UOContent/Spells/Sixth/ParalyzeField.cs b/Projects/UOContent/Spells/Sixth/ParalyzeField.cs index 0cff8699c..475bc4406 100644 --- a/Projects/UOContent/Spells/Sixth/ParalyzeField.cs +++ b/Projects/UOContent/Spells/Sixth/ParalyzeField.cs @@ -68,7 +68,7 @@ namespace Server.Spells.Sixth public override void OnCast() { - Caster.Target = new SpellTargetPoint3D(this, TargetFlags.None, Core.ML ? 10 : 12); + Caster.Target = new SpellTargetPoint3D(this, range: Core.ML ? 10 : 12); } [DispellableField] diff --git a/Projects/UOContent/Spells/Sixth/Reveal.cs b/Projects/UOContent/Spells/Sixth/Reveal.cs index c95539c77..653594d25 100644 --- a/Projects/UOContent/Spells/Sixth/Reveal.cs +++ b/Projects/UOContent/Spells/Sixth/Reveal.cs @@ -60,7 +60,7 @@ namespace Server.Spells.Sixth public override void OnCast() { - Caster.Target = new SpellTargetPoint3D(this, TargetFlags.None, Core.ML ? 10 : 12); + Caster.Target = new SpellTargetPoint3D(this, range: Core.ML ? 10 : 12); } // Reveal uses magery and detect hidden vs. hide and stealth diff --git a/Projects/UOContent/Spells/Targeting/RecallSpellTarget.cs b/Projects/UOContent/Spells/Targeting/RecallSpellTarget.cs index 2a43e6ea4..4e6b61090 100644 --- a/Projects/UOContent/Spells/Targeting/RecallSpellTarget.cs +++ b/Projects/UOContent/Spells/Targeting/RecallSpellTarget.cs @@ -7,14 +7,14 @@ namespace Server.Spells { public class RecallSpellTarget : Target { - private readonly IRecallSpell m_Spell; + private readonly IRecallSpell _spell; private readonly bool m_ToBoat; public RecallSpellTarget(IRecallSpell spell, bool toBoat = true) : base(Core.ML ? 10 : 12, false, TargetFlags.None) { - m_Spell = spell; + _spell = spell; m_ToBoat = toBoat; - m_Spell.Caster.LocalOverheadMessage(MessageType.Regular, 0x3B2, 501029); // Select Marked item. + _spell.Caster.LocalOverheadMessage(MessageType.Regular, 0x3B2, 501029); // Select Marked item. } protected override void OnTarget(Mobile from, object o) @@ -23,7 +23,7 @@ namespace Server.Spells { if (rune.Marked) { - m_Spell.Effect(rune.Target, rune.TargetMap, true); + _spell.Effect(rune.Target, rune.TargetMap, true); } else { @@ -36,7 +36,7 @@ namespace Server.Spells if (e != null) { - m_Spell.Effect(e.Location, e.Map, true); + _spell.Effect(e.Location, e.Map, true); } else { @@ -47,7 +47,7 @@ namespace Server.Spells { if (!boat.Deleted && boat.CheckKey(key.KeyValue)) { - m_Spell.Effect(boat.GetMarkedLocation(), boat.Map, false); + _spell.Effect(boat.GetMarkedLocation(), boat.Map, false); } else { @@ -64,7 +64,7 @@ namespace Server.Spells } else if (o is HouseRaffleDeed deed && deed.ValidLocation()) { - m_Spell.Effect(deed.PlotLocation, deed.PlotFacet, true); + _spell.Effect(deed.PlotLocation, deed.PlotFacet, true); } else { @@ -86,7 +86,7 @@ namespace Server.Spells protected override void OnTargetFinish(Mobile from) { - m_Spell?.FinishSequence(); + _spell?.FinishSequence(); } } } diff --git a/Projects/UOContent/Spells/Targeting/SpellTargetItem.cs b/Projects/UOContent/Spells/Targeting/SpellTargetItem.cs index 0130beda4..0bab04b1d 100644 --- a/Projects/UOContent/Spells/Targeting/SpellTargetItem.cs +++ b/Projects/UOContent/Spells/Targeting/SpellTargetItem.cs @@ -9,24 +9,24 @@ namespace Server.Spells public class SpellTargetItem : Target, ISpellTarget { - private readonly ISpellTargetingItem m_Spell; + private readonly ISpellTargetingItem _spell; - public SpellTargetItem(ISpellTargetingItem spell, TargetFlags flags, int range = 12) : base(range, false, flags) => - m_Spell = spell; + public SpellTargetItem(ISpellTargetingItem spell, TargetFlags flags = TargetFlags.None, int range = 12) + : base(range, false, flags) => _spell = spell; - public ISpell Spell => m_Spell; + public ISpell Spell => _spell; protected override void OnTarget(Mobile from, object o) { if (o is Item item) { - m_Spell.Target(item); + _spell.Target(item); } } protected override void OnTargetFinish(Mobile from) { - m_Spell?.FinishSequence(); + _spell?.FinishSequence(); } } } diff --git a/Projects/UOContent/Spells/Targeting/SpellTargetMobile.cs b/Projects/UOContent/Spells/Targeting/SpellTargetMobile.cs index e5758e734..b8e245cf7 100644 --- a/Projects/UOContent/Spells/Targeting/SpellTargetMobile.cs +++ b/Projects/UOContent/Spells/Targeting/SpellTargetMobile.cs @@ -9,21 +9,21 @@ namespace Server.Spells public class SpellTargetMobile : Target, ISpellTarget { - private readonly ISpellTargetingMobile m_Spell; + private readonly ISpellTargetingMobile _spell; public SpellTargetMobile(ISpellTargetingMobile spell, TargetFlags flags, int range = 12) : - base(range, false, flags) => m_Spell = spell; + base(range, false, flags) => _spell = spell; - public ISpell Spell => m_Spell; + public ISpell Spell => _spell; protected override void OnTarget(Mobile from, object o) { - m_Spell.Target(o as Mobile); + _spell.Target(o as Mobile); } protected override void OnTargetFinish(Mobile from) { - m_Spell?.FinishSequence(); + _spell?.FinishSequence(); } } } diff --git a/Projects/UOContent/Spells/Targeting/SpellTargetPoint3D.cs b/Projects/UOContent/Spells/Targeting/SpellTargetPoint3D.cs index 8c9a03283..40da7d383 100644 --- a/Projects/UOContent/Spells/Targeting/SpellTargetPoint3D.cs +++ b/Projects/UOContent/Spells/Targeting/SpellTargetPoint3D.cs @@ -9,43 +9,43 @@ namespace Server.Spells public class SpellTargetPoint3D : Target, ISpellTarget { - private readonly bool m_CheckLOS; - private ISpellTargetingPoint3D m_Spell; + private readonly bool _retryOnLos; + private ISpellTargetingPoint3D _spell; public SpellTargetPoint3D( - ISpellTargetingPoint3D spell, TargetFlags flags = TargetFlags.None, int range = 12, bool checkLOS = true + ISpellTargetingPoint3D spell, TargetFlags flags = TargetFlags.None, int range = 12, bool retryOnLOS = false ) : base(range, true, flags) { - m_Spell = spell; - m_CheckLOS = checkLOS; + _spell = spell; + _retryOnLos = retryOnLOS; } - public ISpell Spell => m_Spell; + public ISpell Spell => _spell; protected override void OnTarget(Mobile from, object o) { if (o is IPoint3D p) { - m_Spell.Target(p); + _spell.Target(p); } } protected override void OnTargetOutOfLOS(Mobile from, object o) { - if (!m_CheckLOS) + if (!_retryOnLos) { return; } from.SendLocalizedMessage(501943); // Target cannot be seen. Try again. - from.Target = new SpellTargetPoint3D(m_Spell); + from.Target = new SpellTargetPoint3D(_spell); from.Target.BeginTimeout(from, TimeoutTime - Core.TickCount); - m_Spell = null; // Needed? + _spell = null; // Needed? } protected override void OnTargetFinish(Mobile from) { - m_Spell?.FinishSequence(); + _spell?.FinishSequence(); } } } diff --git a/Projects/UOContent/Spells/Third/MagicLock.cs b/Projects/UOContent/Spells/Third/MagicLock.cs index 040976001..55da042cc 100644 --- a/Projects/UOContent/Spells/Third/MagicLock.cs +++ b/Projects/UOContent/Spells/Third/MagicLock.cs @@ -69,7 +69,7 @@ namespace Server.Spells.Third public override void OnCast() { - Caster.Target = new SpellTargetItem(this, TargetFlags.None, Core.ML ? 10 : 12); + Caster.Target = new SpellTargetItem(this, range: Core.ML ? 10 : 12); } } } diff --git a/Projects/UOContent/Spells/Third/Telekinesis.cs b/Projects/UOContent/Spells/Third/Telekinesis.cs index 37d92c4d9..f41be5a7f 100644 --- a/Projects/UOContent/Spells/Third/Telekinesis.cs +++ b/Projects/UOContent/Spells/Third/Telekinesis.cs @@ -75,7 +75,7 @@ namespace Server.Spells.Third public override void OnCast() { - Caster.Target = new SpellTargetItem(this, TargetFlags.None, Core.ML ? 10 : 12); + Caster.Target = new SpellTargetItem(this, range: Core.ML ? 10 : 12); } } } diff --git a/Projects/UOContent/Spells/Third/Teleport.cs b/Projects/UOContent/Spells/Third/Teleport.cs index 2e1981525..c2797f9f4 100644 --- a/Projects/UOContent/Spells/Third/Teleport.cs +++ b/Projects/UOContent/Spells/Third/Teleport.cs @@ -131,7 +131,7 @@ namespace Server.Spells.Third public override void OnCast() { - Caster.Target = new SpellTargetPoint3D(this, TargetFlags.None, Core.ML ? 10 : 12); + Caster.Target = new SpellTargetPoint3D(this, range: Core.ML ? 10 : 12); } } } diff --git a/Projects/UOContent/Spells/Third/Unlock.cs b/Projects/UOContent/Spells/Third/Unlock.cs index d303b3151..6476bd0c7 100644 --- a/Projects/UOContent/Spells/Third/Unlock.cs +++ b/Projects/UOContent/Spells/Third/Unlock.cs @@ -96,7 +96,7 @@ namespace Server.Spells.Third public override void OnCast() { - Caster.Target = new SpellTargetPoint3D(this, TargetFlags.None, Core.ML ? 10 : 12); + Caster.Target = new SpellTargetPoint3D(this, range: Core.ML ? 10 : 12); } } } diff --git a/Projects/UOContent/Spells/Third/WallOfStone.cs b/Projects/UOContent/Spells/Third/WallOfStone.cs index 271455d05..fd4bd0b2d 100644 --- a/Projects/UOContent/Spells/Third/WallOfStone.cs +++ b/Projects/UOContent/Spells/Third/WallOfStone.cs @@ -60,7 +60,7 @@ namespace Server.Spells.Third public override void OnCast() { - Caster.Target = new SpellTargetPoint3D(this, TargetFlags.None, Core.ML ? 10 : 12); + Caster.Target = new SpellTargetPoint3D(this, range: Core.ML ? 10 : 12); } [DispellableField]