// Called when planning, to simulate the effects of the action to the world public override StateList Simulate(StateList world) { StateList applied = world.Copy(); postconditions.SaveCache(); // check each property in the state, and change it from precondition to postcondition foreach (State postcondition in postconditions.states) { applied.SetState(postcondition.Name, postcondition.Value); } return(applied); }