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; }
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; }
// 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; } } }
public ConditionBase(ObserverAborts aborts = ObserverAborts.NONE, float checkInterval = .1f) : base("Condition") { m_checkInterval = checkInterval; m_abortType = aborts; }