I wouldn’t even use route-finding here, depending on the details of your game. Route-finding pushes the player toward the Warehouse no matter where they are–so if they’re on a north-south path to the warehouse and they manage to go east, the conveyor belt will drag them back onto the path (or maybe some other way?) even though there’s no conveyor belt in the area. It acts more like a magnet than a conveyor belt, if you see what I mean.
One approach would be to explicitly list the conveyor belt’s route in a table:
[code]Every turn during Conveyor Belt Action:
if the location is an origin room listed in the Table of Conveyor Belt Places:
let the place be the destination room entry;
say “The conveyor belt continues to turn, pulling you inexorably into the…”;
move the player to the place.
Table of Conveyor Belt Places
origin room destination room
Hopper Egress Shuntery
Shuntery Widget Blopper
Widget Blopper Inspectatorium
Inspectatorium Warehouse[/code]
There might be some fancy way to do it all in one column, but I couldn’t quite figure out how to do “Find a row and then look at the next row.”
Here’s a working example:
[code]Hopper Egress is a room. Shuntery is south of Hopper Egress. Widget Blopper is south of Shuntery. “There seems to be an alcove to the east.” Inspectatorium is south of Widget Blopper. Warehouse is south of Inspectatorium. Alcove is east of Widget Blopper. “The Widget Blopper is back to the west.”
Conveyor Belt Action is a scene. Conveyor Belt Action begins when the location is the Hopper Egress. When Conveyor Belt Action begins: say “The conveyor belt begins to turn, dragging you along!”
Conveyor Belt Action ends when the location is the Warehouse. When Conveyor Belt Action ends: say “Having deposited you in the Warehouse, the conveyor belt stops.”
Every turn during Conveyor Belt Action:
if the location is an origin room listed in the Table of Conveyor Belt Places:
let the place be the destination room entry;
say “The conveyor belt continues to turn, pulling you inexorably into the…”;
move the player to the place.
Table of Conveyor Belt Places
origin room destination room
Hopper Egress Shuntery
Shuntery Widget Blopper
Widget Blopper Inspectatorium
Inspectatorium Warehouse
Definition: A room is belty if it is an origin room listed in the Table of Conveyor Belt Places.
Definition: A room is non-belty if it is not belty.
Report going from a belty room to a non-belty room during Conveyor Belt Action: say “You scramble off the belt.”
After looking in a belty room: say “There is a conveyor belt here, leading south.”
Hopper Mouth is above Hopper Egress. “There is an inviting chute leading down here.” The player is in Hopper Mouth.[/code]