Files
VOIDRPG/Assets/90 - Scripts/Generic/Objects/Unit/Actions/LeaveTurnAction.cs
T
2026-07-09 21:33:33 +02:00

46 lines
1.2 KiB
C#

using VOID.Generic.Objects.Unit.Actions.Exceptions;
namespace VOID.Generic.Objects.Unit.Actions
{
public class LeaveTurnAction : AbstractAction
{
private readonly UnitObject _unit;
public LeaveTurnAction(UnitObject unit)
{
_unit = unit;
}
public override bool IsInRange() => true;
public override bool CanSkipQueue() => true;
protected override void OnEndIt()
{
}
protected override void OnCancelIt()
{
}
public override void CanDoIt()
{
Check(
state == ActionState.Ready,
UnitActionErrorType.ActionStateIsNotReady);
Check(
_unit.basicState.turnManager,
UnitActionErrorType.UnitNotInTurnManager);
Check(
_unit.unitState.isSelfTurn,
UnitActionErrorType.UnitSelfTurnNotActive);
Check(
_unit.basicState.turnManager.CanObjectExit(_unit),
UnitActionErrorType.EnemiesAreTooClose);
}
protected override void OnDoIt()
{
_unit.basicState.turnManager.ObjectExit(_unit);
}
}
}