## Summary - Adds `public virtual bool Murderer => Kills >= 5` property to `Mobile`, replacing ~30 scattered `Kills >= 5` / `Kills < 5` magic-number checks across the codebase - `BaseCreature` overrides `Murderer` to also return `true` when `AlwaysMurderer` is set - Updates `Corpse` serialization to v15, storing `_murderer` as a `bool` field (migrated from `int Kills >= 5` in earlier versions)
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.Murderer && Faction.Find(mob) is TrueBritannians or CouncilOfMages;
|
|
|
|
[AfterDeserialization]
|
|
private void AfterDeserialization()
|
|
{
|
|
if (!RegisterEthic(this))
|
|
{
|
|
Delete();
|
|
}
|
|
}
|
|
}
|