void Act() { if (Character.Available) { Timer.RunTimerOnce(AI_ACTION_DELAY, () => { if (!AITemplate.ConsiderCastingAbility(Character)) { Character.UnlistenToAvailable(Act); onCompleteAction.Invoke(); } }); } }