Sometimes, you want your actions to be considered failed and tell the planner to make a new plan.

Like before, you want to return a new type of EActionStatus, in this case, EActionStatus.Failed.

Once we return EActionStatus.Failed in the Perform method, the planner will hear back from the action that it has failed and make new plans based on the current situation.

This is very useful for AI to dynamic and smart decisions.

using SGOAP;

public class FooAction : Action
{
	public override bool PrePerform(){}

	public override EActionStatus Perform()
  {
		return EActionStatus.Failed;
  }

  public override bool PostPerform(){}
}