// VIRTUALS

    public virtual int DoTransitions(float i_DeltaTime)
    {
        int targetStateId = Hash.s_NULL;

        for (int transitionIndex = 0; transitionIndex < m_Transitions.Count; ++transitionIndex)
        {
            FSMTransition transition = m_Transitions[transitionIndex];

            if (transition == null)
            {
                continue;
            }

            bool verified = transition.Evaluate(i_DeltaTime);

            if (verified)
            {
                targetStateId = transition.targetStateHashId;
            }
        }

        return(targetStateId);
    }