ModernUO/Projects/UOContent/Engines/Ethics/Evil/Ethic.cs
Kamron Batman 20596e52fa
fix: Converts ethics system to generic entity persistence (#1824)
### 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.
2024-06-16 10:26:09 -07:00

44 lines
937 B
C#

using ModernUO.Serialization;
using Server.Factions;
namespace Server.Ethics.Evil;
[SerializationGenerator(0, false)]
public sealed partial class EvilEthic : Ethic
{
public override EthicDefinition Definition => new(
0x455,
"Evil",
"(Evil)",
"I am evil incarnate",
[
new UnholySense(),
new UnholyItem(),
new SummonFamiliar(),
new VileBlade(),
new Blight(),
new UnholyShield(),
new UnholySteed(),
new UnholyWord()
]
);
public EvilEthic()
{
if (!RegisterEthic(this))
{
Delete();
}
}
public override bool IsEligible(Mobile mob) => Faction.Find(mob) is Minax or Shadowlords;
[AfterDeserialization]
private void AfterDeserialization()
{
if (!RegisterEthic(this))
{
Delete();
}
}
}