### Summary Converts ethics system to entity persistence and removes the persistence item. ### TODO 1. The enable/disable toggle doesn't propagate to all code that does Ethics checks (notoriety, pvp, etc). 2. We need commands to remove them from an ethic.
44 lines
No EOL
1.1 KiB
C#
44 lines
No EOL
1.1 KiB
C#
using System;
|
|
using Server.Mobiles;
|
|
|
|
namespace Server.Ethics.Hero;
|
|
|
|
public sealed class HolySteed : Power
|
|
{
|
|
public HolySteed() =>
|
|
Definition = new PowerDefinition(
|
|
30,
|
|
"Holy Steed",
|
|
"Trubechs Yeliab",
|
|
""
|
|
);
|
|
|
|
public override void BeginInvoke(Player from)
|
|
{
|
|
if (from.Steed?.Deleted == true)
|
|
{
|
|
from.Steed = null;
|
|
}
|
|
|
|
if (from.Steed != null)
|
|
{
|
|
from.Mobile.LocalOverheadMessage(MessageType.Regular, 0x3B2, false, "You already have a holy steed.");
|
|
return;
|
|
}
|
|
|
|
if (from.Mobile.Followers + 1 > from.Mobile.FollowersMax)
|
|
{
|
|
from.Mobile.SendLocalizedMessage(1049645); // You have too many followers to summon that creature.
|
|
return;
|
|
}
|
|
|
|
var steed = new Mobiles.HolySteed();
|
|
|
|
if (BaseCreature.Summon(steed, from.Mobile, from.Mobile.Location, 0x217, TimeSpan.FromHours(1.0)))
|
|
{
|
|
from.Steed = steed;
|
|
|
|
FinishInvoke(from);
|
|
}
|
|
}
|
|
} |