You can check any conditions you want in the Exit
block - like
if (TargetVessel==2) {
PrepareLoading.take(agent);
}
However what happens to the agents that cannot be taken? You'd need some sort of control logic - most likely, you should only take from storage the agents that CAN be sent to the exit block. Thus, you are ensuring all agents that are finished storing.