fix: Adjusts spell ranges to match OSI (#2171)

### Summary

Adjusts spell ranges according to OSI. Specifically, the [April 14, 1999 patch](https://uo.com/wiki/ultima-online-wiki/technical/previous-publishes/1999-2/1999-06-14th-april/) changed spell ranges to 10 tiles, and 15 tiles for fields.
This commit is contained in:
Kamron Batman 2025-05-01 20:03:56 -07:00 committed by GitHub
parent 5cb97cc6de
commit 6d43f2549c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 14 additions and 1 deletions

View file

@ -22,6 +22,8 @@ namespace Server.Spells.Fifth
public override SpellCircle Circle => SpellCircle.Fifth;
public int TargetRange => Core.T2A ? 15 : 18;
public void Target(Item item)
{
if (!item.GetType().IsDefined(typeof(DispellableFieldAttribute), false))

View file

@ -26,6 +26,8 @@ public class PoisonFieldSpell : MagerySpell, ITargetingSpell<IPoint3D>
public override SpellCircle Circle => SpellCircle.Fifth;
public int TargetRange => Core.T2A ? 15 : 18;
public void Target(IPoint3D p)
{
if (SpellHelper.CheckTown(p, Caster) && CheckSequence())

View file

@ -26,6 +26,8 @@ public class FireFieldSpell : MagerySpell, ITargetingSpell<IPoint3D>
public override SpellCircle Circle => SpellCircle.Fourth;
public int TargetRange => Core.T2A ? 15 : 18;
public void Target(IPoint3D p)
{
if (SpellHelper.CheckTown(p, Caster) && CheckSequence())

View file

@ -26,6 +26,8 @@ public class EnergyFieldSpell : MagerySpell, ITargetingSpell<IPoint3D>
public override SpellCircle Circle => SpellCircle.Seventh;
public int TargetRange => Core.T2A ? 15 : 18;
public void Target(IPoint3D p)
{
if (SpellHelper.CheckTown(p, Caster) && CheckSequence())

View file

@ -25,6 +25,8 @@ public class ParalyzeFieldSpell : MagerySpell, ITargetingSpell<IPoint3D>
public override SpellCircle Circle => SpellCircle.Sixth;
public int TargetRange => Core.T2A ? 15 : 18;
public void Target(IPoint3D p)
{
if (SpellHelper.CheckTown(p, Caster) && CheckSequence())

View file

@ -4,7 +4,8 @@ public interface IRangedSpell
{
Mobile Caster { get; }
int TargetRange => Core.ML ? 10 : 12;
// https://uo.com/wiki/ultima-online-wiki/technical/previous-publishes/1999-2/1999-06-14th-april/
int TargetRange => Core.T2A ? 10 : 12;
void FinishSequence();
}

View file

@ -23,6 +23,8 @@ public class WallOfStoneSpell : MagerySpell, ITargetingSpell<IPoint3D>
public override SpellCircle Circle => SpellCircle.Third;
public int TargetRange => Core.T2A ? 15 : 18;
public void Target(IPoint3D p)
{
if (SpellHelper.CheckTown(p, Caster) && CheckSequence())