Для проверки завершения определенных действий или возможностей с помощью конечного автомата можно использовать состояние, которое будет изменяться при выполнении определенного действия. Когда все требуемые действия будут завершены, состояние конечного автомата изменится на конечное состояние, указывающее на успешное завершение.
Для установки кулдауна для состояния `Dodge` у врага можно добавить дополнительное состояние, которое будет отвечать за отслеживание времени, прошедшего с момента последнего отскока. В момент активации состояния `Dodge`, проверяем время последнего отскока. Если прошло менее 2 секунд с момента последнего отскока, то враг не сможет отскочить. После успешного отскока обновляем время последнего отскока и переходим в другое состояние.
Примерно такой псевдокод может быть использован для управления кулдауном:
```python
state EnemyState:
state Dodge:
on Enter:
if currentTime - lastDodgeTime < 2 seconds:
changeState(Idle)
else:
lastDodgeTime = currentTime
changeState(DoDodge)
state DoDodge:
on Enter:
// выполнение отскока
on Exit:
changeState(Idle)
state Idle:
on Enter:
// другие действия
var lastDodgeTime = currentTime
```
Таким образом, враг будет иметь возможность отскокнуть только раз в 2 секунды, независимо от текущего состояния.