When the planner runs, each time it cycle through a set of nodes to find the possible actions in the chain. An effect of the previous action is added so the planner can see if the current state can meet the precondition of the next action. This current state can be access when you override Action.ProceduralEffect.

You may want to do this is you want the effect of an action to be calculate dynamically at runtime.

See below:

public class FooAction : Action
{
	public override void ProceduralEffect(Dictionary<string, float> currentState) 
	{ 
			if(currentState.Contains("DeadlyAttack")
			{
				currentState.Add("CanDoCombo25");
			}else
			{
				currentState.Add("CannotDoCombo25");
			}
	}
}