Esempio n. 1
0
    private bool CompetenceElementsHandler(CompetenceElement competenceElement)
    {
        int numSensesNeeded = 0;

        foreach (Sense sense in competenceElement.Senses)
        {
            numSensesNeeded = CheckSense(numSensesNeeded, sense);
        }
        if (numSensesNeeded == competenceElement.Senses.Count)
        {
            ABOD3_Bridge.GetInstance().AletForElement(botNumber, competenceElement.Name, "CE");

            PlanElement elementToBeTriggered = competenceElement.TriggerableElement;
            if (elementToBeTriggered is Competence)
            {
                CompetenceHandler((Competence)elementToBeTriggered);
            }
            else if (elementToBeTriggered is ActionPattern)
            {
                ActionPatternHandler((ActionPattern)elementToBeTriggered);
            }
            else
            {
                TriggerAction((Action)elementToBeTriggered);
            }
            return(true);
        }
        else
        {
            return(false);
        }
    }
Esempio n. 2
0
        /// <summary>
        /// Initialises the competence priority element.
        /// 
        /// The log domain is set to [AgentName].CP.[competence_name]
        /// </summary>
        /// <param name="agent">The element's agent.</param>
        /// <param name="CompetenceName">The name of the competence.</param>
        /// <param name="elements">The set of competence elements of the
        ///         priority element.</param>
        public CompetencePriorityElement(Agent agent, string competenceName, CompetenceElement[] elements)
            : base(string.Format("CP.{0}",competenceName),agent)
        {
            this.name = competenceName;
            if (elements.Length > 0)
                this.elements = new List<CompetenceElement>(elements);
            else
                this.elements = new List<CompetenceElement>();

            log.Debug("Created");
        }