### 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.
31 lines
722 B
C#
31 lines
722 B
C#
namespace Server.Ethics;
|
|
|
|
public abstract class Power
|
|
{
|
|
public PowerDefinition Definition { get; protected set; }
|
|
|
|
public virtual bool CheckInvoke(Player from)
|
|
{
|
|
if (!from.Mobile.CheckAlive())
|
|
{
|
|
return false;
|
|
}
|
|
|
|
if (from.Power < Definition.Power)
|
|
{
|
|
from.Mobile.LocalOverheadMessage(
|
|
MessageType.Regular,
|
|
0x3B2,
|
|
false,
|
|
"You lack the power to invoke this ability."
|
|
);
|
|
return false;
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
public abstract void BeginInvoke(Player from);
|
|
|
|
public virtual void FinishInvoke(Player from) => from.Power -= Definition.Power;
|
|
}
|