protected override EBTStatus decorate(EBTStatus status) { if (this.m_n > 0) { this.m_n--; } if (this.m_n == 0) { return(EBTStatus.BT_SUCCESS); } Debug.Check(this.GetNode() is DecoratorLoopUntil); DecoratorLoopUntil pDecoratorLoopUntil = (DecoratorLoopUntil)(this.GetNode()); if (pDecoratorLoopUntil.m_until) { if (status == EBTStatus.BT_SUCCESS) { return(EBTStatus.BT_SUCCESS); } } else { if (status == EBTStatus.BT_FAILURE) { return(EBTStatus.BT_FAILURE); } } return(EBTStatus.BT_RUNNING); }
protected override EBTStatus decorate(EBTStatus status) { if (base.m_n > 0) { base.m_n--; } if (base.m_n == 0) { return(EBTStatus.BT_SUCCESS); } DecoratorLoopUntil node = (DecoratorLoopUntil)base.GetNode(); if (node.m_until) { if (status == EBTStatus.BT_SUCCESS) { return(EBTStatus.BT_SUCCESS); } } else if (status == EBTStatus.BT_FAILURE) { return(EBTStatus.BT_FAILURE); } return(EBTStatus.BT_RUNNING); }
protected override EBTStatus decorate(EBTStatus status) { if (this.m_n > 0) { this.m_n--; } if (this.m_n == 0) { return EBTStatus.BT_SUCCESS; } DecoratorLoopUntil decoratorLoopUntil = (DecoratorLoopUntil)base.GetNode(); if (decoratorLoopUntil.m_until) { if (status == EBTStatus.BT_SUCCESS) { return EBTStatus.BT_SUCCESS; } } else if (status == EBTStatus.BT_FAILURE) { return EBTStatus.BT_FAILURE; } return EBTStatus.BT_RUNNING; }