(:types EquipmentClass Equipment) (:constants EC_PositioningUnit - EquipmentClass EC_TransportationNode - EquipmentClass EC_Shuttle - EquipmentClass ) (:predicates (EquipmentClassed ?E - Equipment ?C - EquipmentClass) (TransportationNodeOccupied ?E - Equipment) (PositioningUnitLocked ?E - Equipment) (TransportationNodeConnection ?F ?T - Equipment) (EquipmentLocation ?E ?R - Equipment) ) (:functions (total-cost) (shuttle-time ?FROM ?TO - Equipment) ) (:action MoveShuttle :parameters (?SHUTTLE ?FROM ?TO - Equipment) :precondition (and (EquipmentClassed ?SHUTTLE EC_Shuttle) (or (EquipmentClassed ?FROM EC_PositioningUnit) (EquipmentClassed ?FROM EC_TransportationNode) ) (imply (EquipmentClassed ?FROM EC_PositioningUnit) (not (PositioningUnitLocked ?FROM)) ) (imply (EquipmentClassed ?FROM EC_TransportationNode) (TransportationNodeOccupied ?FROM) ) (or (EquipmentClassed ?TO EC_PositioningUnit) (EquipmentClassed ?TO EC_TransportationNode) ) (imply (EquipmentClassed ?TO EC_PositioningUnit) (not (PositioningUnitLocked ?TO)) ) (imply (EquipmentClassed ?TO EC_TransportationNode) (not (TransportationNodeOccupied ?TO)) ) (TransportationNodeConnection ?FROM ?TO) (EquipmentLocation ?SHUTTLE ?FROM) (not (EquipmentLocation ?SHUTTLE ?TO)) ) :effect (and (not (TransportationNodeOccupied ?FROM)) (TransportationNodeOccupied ?TO) (increase (total-cost) (shuttle-time ?FROM ?TO)) (not (EquipmentLocation ?SHUTTLE ?FROM)) (EquipmentLocation ?SHUTTLE ?TO) ) )