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.
This commit is contained in:
parent
f87c8f73ab
commit
20596e52fa
36 changed files with 1327 additions and 1338 deletions
|
|
@ -1,37 +1,31 @@
|
|||
namespace Server.Ethics
|
||||
namespace Server.Ethics;
|
||||
|
||||
public abstract class Power
|
||||
{
|
||||
public abstract class Power
|
||||
public PowerDefinition Definition { get; protected set; }
|
||||
|
||||
public virtual bool CheckInvoke(Player from)
|
||||
{
|
||||
protected PowerDefinition m_Definition;
|
||||
|
||||
public PowerDefinition Definition => m_Definition;
|
||||
|
||||
public virtual bool CheckInvoke(Player from)
|
||||
if (!from.Mobile.CheckAlive())
|
||||
{
|
||||
if (!from.Mobile.CheckAlive())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (from.Power < m_Definition.Power)
|
||||
{
|
||||
from.Mobile.LocalOverheadMessage(
|
||||
MessageType.Regular,
|
||||
0x3B2,
|
||||
false,
|
||||
"You lack the power to invoke this ability."
|
||||
);
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
public abstract void BeginInvoke(Player from);
|
||||
|
||||
public virtual void FinishInvoke(Player from)
|
||||
if (from.Power < Definition.Power)
|
||||
{
|
||||
from.Power -= m_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;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue