fix: Fixes targeting ground with spells (#1937)

This commit is contained in:
Kamron Batman 2024-08-20 15:51:33 -07:00 committed by GitHub
parent 4c5947e654
commit 35342e296e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
21 changed files with 27 additions and 23 deletions

View file

@ -60,7 +60,7 @@ namespace Server.Spells.Eighth
public override void OnCast()
{
Caster.Target = new SpellTarget<IPoint3D>(this, retryOnLos: true);
Caster.Target = new SpellTarget<IPoint3D>(this, allowGround: true, retryOnLos: true);
}
}
}

View file

@ -78,7 +78,7 @@ namespace Server.Spells.Fifth
public override void OnCast()
{
Caster.Target = new SpellTarget<IPoint3D>(this, retryOnLos: true);
Caster.Target = new SpellTarget<IPoint3D>(this, allowGround: true, retryOnLos: true);
}
}
}

View file

@ -57,7 +57,7 @@ public class PoisonFieldSpell : MagerySpell, ITargetingSpell<IPoint3D>
public override void OnCast()
{
Caster.Target = new SpellTarget<IPoint3D>(this);
Caster.Target = new SpellTarget<IPoint3D>(this, allowGround: true);
}
}

View file

@ -95,7 +95,7 @@ namespace Server.Spells.Fourth
public override void OnCast()
{
Caster.Target = new SpellTarget<IPoint3D>(this);
Caster.Target = new SpellTarget<IPoint3D>(this, allowGround: true);
}
private bool AreaCanTarget(Mobile target, bool feluccaRules)

View file

@ -94,7 +94,7 @@ namespace Server.Spells.Fourth
public override void OnCast()
{
Caster.Target = new SpellTarget<IPoint3D>(this);
Caster.Target = new SpellTarget<IPoint3D>(this, allowGround: true);
}
private static void AddEntry(Mobile m, int v)

View file

@ -60,7 +60,7 @@ public class FireFieldSpell : MagerySpell, ITargetingSpell<IPoint3D>
public override void OnCast()
{
Caster.Target = new SpellTarget<IPoint3D>(this);
Caster.Target = new SpellTarget<IPoint3D>(this, allowGround: true);
}
}

View file

@ -55,6 +55,6 @@ public class AnimatedWeaponSpell : MysticSpell, ITargetingSpell<IPoint3D>
public override void OnCast()
{
Caster.Target = new SpellTarget<IPoint3D>(this);
Caster.Target = new SpellTarget<IPoint3D>(this, allowGround: true);
}
}

View file

@ -73,7 +73,7 @@ public class HailStormSpell : MysticSpell, ITargetingSpell<IPoint3D>
public override void OnCast()
{
Caster.Target = new SpellTarget<IPoint3D>(this);
Caster.Target = new SpellTarget<IPoint3D>(this, allowGround: true);
}
private static void PlayEffect(Point3D p, Map map)

View file

@ -89,7 +89,7 @@ public class NetherCycloneSpell : MysticSpell, ITargetingSpell<IPoint3D>
public override void OnCast()
{
Caster.Target = new SpellTarget<IPoint3D>(this);
Caster.Target = new SpellTarget<IPoint3D>(this, allowGround: true);
}
private static void PlayEffect(Point3D p, Map map)

View file

@ -112,6 +112,6 @@ public class Shadowjump : NinjaSpell, ITargetingSpell<IPoint3D>
public override void OnCast()
{
Caster.SendLocalizedMessage(1063088); // You prepare to perform a Shadowjump.
Caster.Target = new SpellTarget<IPoint3D>(this);
Caster.Target = new SpellTarget<IPoint3D>(this, allowGround: true);
}
}

View file

@ -99,7 +99,7 @@ namespace Server.Spells.Seventh
public override void OnCast()
{
Caster.Target = new SpellTarget<IPoint3D>(this);
Caster.Target = new SpellTarget<IPoint3D>(this, allowGround: true);
}
}
}

View file

@ -71,7 +71,7 @@ public class EnergyFieldSpell : MagerySpell, ITargetingSpell<IPoint3D>
public override void OnCast()
{
Caster.Target = new SpellTarget<IPoint3D>(this);
Caster.Target = new SpellTarget<IPoint3D>(this, allowGround: true);
}
}

View file

@ -76,7 +76,7 @@ namespace Server.Spells.Seventh
public override void OnCast()
{
Caster.Target = new SpellTarget<IPoint3D>(this);
Caster.Target = new SpellTarget<IPoint3D>(this, allowGround: true);
}
}
}

View file

@ -104,7 +104,7 @@ namespace Server.Spells.Seventh
public override void OnCast()
{
Caster.Target = new SpellTarget<IPoint3D>(this);
Caster.Target = new SpellTarget<IPoint3D>(this, allowGround: true);
}
}
}

View file

@ -58,7 +58,7 @@ namespace Server.Spells.Sixth
public override void OnCast()
{
Caster.Target = new SpellTarget<IPoint3D>(this);
Caster.Target = new SpellTarget<IPoint3D>(this, allowGround: true);
}
}
}

View file

@ -71,7 +71,7 @@ public class ParalyzeFieldSpell : MagerySpell, ITargetingSpell<IPoint3D>
public override void OnCast()
{
Caster.Target = new SpellTarget<IPoint3D>(this);
Caster.Target = new SpellTarget<IPoint3D>(this, allowGround: true);
}
}

View file

@ -55,7 +55,7 @@ namespace Server.Spells.Sixth
public override void OnCast()
{
Caster.Target = new SpellTarget<IPoint3D>(this);
Caster.Target = new SpellTarget<IPoint3D>(this, allowGround: true);
}
// Reveal uses magery and detect hidden vs. hide and stealth

View file

@ -70,7 +70,7 @@ namespace Server.Spells.Spellweaving
public override void OnCast()
{
Caster.Target = new SpellTarget<IPoint3D>(this);
Caster.Target = new SpellTarget<IPoint3D>(this, allowGround: true);
}
private class InternalTimer : Timer

View file

@ -13,14 +13,18 @@ public class SpellTarget<T> : Target, ISpellTarget<T> where T : class, IPoint3D
public SpellTarget(
ITargetingSpell<T> spell,
TargetFlags flags = TargetFlags.None,
TargetFlags flags,
bool retryOnLos = false
) : this(spell, false, flags, retryOnLos)
{
}
public SpellTarget(ITargetingSpell<T> spell, bool allowGround, TargetFlags flags = TargetFlags.None, bool retryOnLos = false)
: base(spell.TargetRange, allowGround, flags)
public SpellTarget(
ITargetingSpell<T> spell,
bool allowGround = false,
TargetFlags flags = TargetFlags.None,
bool retryOnLos = false
) : base(spell.TargetRange, allowGround, flags)
{
_spell = spell;
_retryOnLos = retryOnLos;

View file

@ -139,7 +139,7 @@ namespace Server.Spells.Third
public override void OnCast()
{
Caster.Target = new SpellTarget<IPoint3D>(this);
Caster.Target = new SpellTarget<IPoint3D>(this, allowGround: true);
}
}
}

View file

@ -56,7 +56,7 @@ public class WallOfStoneSpell : MagerySpell, ITargetingSpell<IPoint3D>
public override void OnCast()
{
Caster.Target = new SpellTarget<IPoint3D>(this);
Caster.Target = new SpellTarget<IPoint3D>(this, allowGround: true);
}
}