public void onexit_action(Agent pAgent, EBTStatus status) { this.onexit(pAgent, status); if (this.m_node != null) { Effector.EPhase phase = Effector.EPhase.E_SUCCESS; if (status == EBTStatus.BT_FAILURE) { phase = Effector.EPhase.E_FAILURE; } else { Debug.Check(status == EBTStatus.BT_SUCCESS); } this.m_node.ApplyEffects(pAgent, phase); } #if !BEHAVIAC_RELEASE if (Config.IsLoggingOrSocketing) { //BEHAVIAC_PROFILE_DEBUGBLOCK("Debug", true); if (status == EBTStatus.BT_SUCCESS) { BehaviorTask.CHECK_BREAKPOINT(pAgent, this.m_node, "exit", EActionResult.EAR_success); } else { BehaviorTask.CHECK_BREAKPOINT(pAgent, this.m_node, "exit", EActionResult.EAR_failure); } } #endif }
public override void ApplyEffects(Agent pAgent, Effector.EPhase phase) { for (int i = 0; i < this.m_effectors.Count; ++i) { Effector.EffectorConfig effector = this.m_effectors[i]; effector.Execute(pAgent); } }