fix: Fixes targeting ground with spells (#1937)
This commit is contained in:
parent
4c5947e654
commit
35342e296e
21 changed files with 27 additions and 23 deletions
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue