### 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
962 B
C#
44 lines
962 B
C#
using ModernUO.Serialization;
|
|
using Server.Factions;
|
|
|
|
namespace Server.Ethics.Hero;
|
|
|
|
[SerializationGenerator(0, false)]
|
|
public sealed partial class HeroEthic : Ethic
|
|
{
|
|
public override EthicDefinition Definition => new(
|
|
0x482,
|
|
"Hero",
|
|
"(Hero)",
|
|
"I will defend the virtues",
|
|
[
|
|
new HolySense(),
|
|
new HolyItem(),
|
|
new SummonFamiliar(),
|
|
new HolyBlade(),
|
|
new Bless(),
|
|
new HolyShield(),
|
|
new HolySteed(),
|
|
new HolyWord()
|
|
]
|
|
);
|
|
|
|
public HeroEthic()
|
|
{
|
|
if (!RegisterEthic(this))
|
|
{
|
|
Delete();
|
|
}
|
|
}
|
|
|
|
public override bool IsEligible(Mobile mob) => mob.Kills < 5 && Faction.Find(mob) is TrueBritannians or CouncilOfMages;
|
|
|
|
[AfterDeserialization]
|
|
private void AfterDeserialization()
|
|
{
|
|
if (!RegisterEthic(this))
|
|
{
|
|
Delete();
|
|
}
|
|
}
|
|
}
|