fix: Fixes travel restriction messages (#1263)

- [X] `BaseRegion.CheckTravel` now properly cascades through parent regions
- [X] `SpellHelper.CheckTravel` now returns a failure message instead of sending one internally.
- [X] Consolidates travel restriction messages so they aren't duplicated.
This commit is contained in:
Kamron Batman 2022-11-22 16:57:42 -08:00 • committed by GitHub
parent 2057fe74a2
commit 1d8e8ec0a8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
13 changed files with 121 additions and 69 deletions

View file

@ -43,11 +43,13 @@ namespace Server.Spells.Third
{
Caster.SendLocalizedMessage(502359, "", 0x22); // Thou art too encumbered to move.
}
else if (!SpellHelper.CheckTravel(Caster, TravelCheckType.TeleportFrom))
else if (!SpellHelper.CheckTravel(Caster, TravelCheckType.TeleportFrom, out var failureMessage))
{
failureMessage.SendMessageTo(Caster);
}
else if (!SpellHelper.CheckTravel(Caster, map, to, TravelCheckType.TeleportTo))
else if (!SpellHelper.CheckTravel(Caster, map, to, TravelCheckType.TeleportTo, out failureMessage))
{
failureMessage.SendMessageTo(Caster);
}
else if (map?.CanSpawnMobile(p.X, p.Y, p.Z) != true)
{
@ -125,7 +127,13 @@ namespace Server.Spells.Third
return false;
}
return SpellHelper.CheckTravel(Caster, TravelCheckType.TeleportFrom);
if (!SpellHelper.CheckTravel(Caster, TravelCheckType.TeleportFrom, out var failureMessage))
{
failureMessage.SendMessageTo(Caster);
return false;
}
return true;
}
public override void OnCast()