feat: Adds Mobile.Murderer virtual property, consolidates kill-threshold checks (#2355)
## 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)
This commit is contained in:
parent
192f092ee7
commit
6745cf2075
31 changed files with 200 additions and 43 deletions
|
|
@ -135,7 +135,7 @@ public class GuardedRegion : BaseRegion
|
|||
}
|
||||
|
||||
public virtual bool CheckVendorAccess(BaseVendor vendor, Mobile from) =>
|
||||
from.AccessLevel >= AccessLevel.GameMaster || IsDisabled() || from.Kills < 5;
|
||||
from.AccessLevel >= AccessLevel.GameMaster || IsDisabled() || !from.Murderer;
|
||||
|
||||
public override bool OnBeginSpellCast(Mobile m, ISpell s)
|
||||
{
|
||||
|
|
@ -171,7 +171,7 @@ public class GuardedRegion : BaseRegion
|
|||
return;
|
||||
}
|
||||
|
||||
if (!AllowReds && (m.Kills >= 5 || m is BaseCreature { AlwaysMurderer: true }))
|
||||
if (!AllowReds && m.Murderer)
|
||||
{
|
||||
CheckGuardCandidate(m);
|
||||
}
|
||||
|
|
@ -334,7 +334,7 @@ public class GuardedRegion : BaseRegion
|
|||
return false;
|
||||
}
|
||||
|
||||
return !AllowReds && (m.Kills >= 5 || bc?.AlwaysMurderer == true) || m.Criminal;
|
||||
return !AllowReds && m.Murderer || m.Criminal;
|
||||
}
|
||||
|
||||
private class GuardTimer : Timer
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue