public void UnlockActionType(GameInfo.ActionType actionType, byte priority) { if (_actionLocks[(int)actionType] <= priority) { _actionLocks[(int)actionType] = 0; } }
public void LockActionType(GameInfo.ActionType actionType, byte priority = 1) { if (_actionLocks[(int)actionType] < priority) { _actionLocks[(int)actionType] = priority; OnInterrupt?.Invoke(this, actionType, priority); } }
public bool CanExecuteActionOfType(GameInfo.ActionType actionType, byte priority = 0) { if (priority == 0) { return(_actionLocks[(int)actionType] == 0); } return(_actionLocks[(int)actionType] < priority); }