Exemplo n.º 1
0
        // La bandera ha sido cogida, con lo que se desactivan los comportamientos de cuando NO está cogida y se activan los otros
        public bool flagTaken()
        {
            // ¡Devuelve falso rápidamente si comprobamos que en realidad la bandera ya estaba cogida de antes!
            if (isFlagTaken)
            {
                return(false);
            }

            // Desactiva los comportamientos de cuando la bandera NO está cogida
            for (int i = 0; i < flagNotTakenBehaviors.Count; ++i)
            {
                if (behaviorManager.IsBehaviorEnabled(flagNotTakenBehaviors[i]))
                {
                    flagNotTakenBehaviors[i].DisableBehavior();
                }
            }

            // Activa los comportamientos de cuando la bandera está cogida
            for (int i = 0; i < flagTakenBehaviors.Count; ++i)
            {
                flagTakenBehaviors[i].EnableBehavior();
            }

            // La bandera se marca como cogida
            isFlagTaken = true;
            return(true);
        }