Example #1
0
        public BlackboardCondition(string key, Operator op, T value = default, ObserverAborts aborts = ObserverAborts.NONE) : base("BlackboardCondition")
        {
            m_op    = op;
            m_key   = key;
            m_value = value;

            m_abortType = aborts;
        }
Example #2
0
        public Cooldown(float cooldownTime, ObserverAborts aborts = ObserverAborts.NONE) : base("Cooldown")
        {
            Assert.IsTrue(cooldownTime > 0f, "cooldownTime has to be set");

            m_cooldownTime = cooldownTime;
            m_startTime    = -cooldownTime;

            m_abortType = aborts;
            m_abortSelf = false;
        }
Example #3
0
        // TODO
        public void UpdateAbortsType()
        {
            // get parent composite node
            Container parentNode = ParentContainerNode;

            m_chidrenOfComposite = this;
            while (parentNode != null && !(parentNode is Composite))
            {
                m_chidrenOfComposite = parentNode;
                parentNode           = parentNode.ParentContainerNode;
            }

            Assert.IsNotNull(parentNode, "ObservingDecorator is only valid when attached to a parent composite");
            Assert.IsNotNull(m_chidrenOfComposite);

            m_parentCompositeNode = parentNode as Composite;

            // update constraint
            if (m_parentCompositeNode == null)
            {
                m_abortType = ObserverAborts.NONE;
                return;
            }

            if (!m_parentCompositeNode.CanAbortSelf || !m_abortSelf)
            {
                if (m_abortType == ObserverAborts.BOTH)
                {
                    m_abortType = m_parentCompositeNode.CanAbortLowerPriority ? ObserverAborts.LOWER_PRIORITY : ObserverAborts.NONE;
                }
                else if (m_abortType == ObserverAborts.SELF)
                {
                    m_abortType = ObserverAborts.NONE;
                }
            }

            if (!m_parentCompositeNode.CanAbortLowerPriority || !m_abortLowerPriority)
            {
                if (m_abortType == ObserverAborts.BOTH)
                {
                    m_abortType = m_parentCompositeNode.CanAbortSelf ? ObserverAborts.SELF : ObserverAborts.NONE;
                }
                else if (m_abortType == ObserverAborts.LOWER_PRIORITY)
                {
                    m_abortType = ObserverAborts.NONE;
                }
            }
        }
Example #4
0
        public ConditionBase(ObserverAborts aborts = ObserverAborts.NONE, float checkInterval = .1f) : base("Condition")
        {
            m_checkInterval = checkInterval;

            m_abortType = aborts;
        }