DSPK V04.00 Furcadia
-----------
DREAM ENTRY
-----------
(0:9) When a furre arrives in the dream,
(5:15) move the triggering furre to (12,10), or to someplace nearby if it's occupied.
-----------------
STARTUP PROCEDURE
-----------------
(0:100) When 1 seconds have passed, offset by 0,
(1:206) and variable %Startup is not equal to 1,
(5:384) set variable %NW to the x,y position (8,12).
(5:384) set variable %NewNW to the x,y position (10,13).
(5:384) set variable %SE to the x,y position (12,16).
(5:384) set variable %NewSE to the x,y position (14,17).
(5:384) set variable %Signal to the x,y position (12,17).
(5:300) set variable %Move to the value 0.
(5:300) set variable %Enable to the value 0.
(5:210) set entrytext to {Welcome to Raeburn's multi-stop train system. Special thanks to the Helper Beekins and Unix for testing. #SO}
-----------------------
STOP COMMAND AND SIGNAL
-----------------------
(0:31) When a furre says {Stop},
(5:300) set variable %Move to the value 0.
(5:300) set variable %Enable to the value 0.
-------------
COMMAND ERROR (WHEN MOVE IS NOT ZERO)
-------------
(0:31) When a furre says {Forward},
(1:206) and variable %Move is not equal to 0,
(5:200) emit message {Are you trying to damage the train!? Use 'Stop' before changing directions} to the triggering furre.
(0:31) When a furre says {Reverse},
(1:206) and variable %Move is not equal to 0,
(5:200) emit message {Are you trying to damage the train!? Use 'Stop' before changing directions} to the triggering furre.
----------
SE COMMAND
----------
(0:31) When a furre says {Forward},
(1:200) and variable %Move is equal to 0,
(5:384) set variable %NewSE to the x,y position (%SE).
(5:353) move the position in variable %NewSE southeast (down and right) 1 step(s).
(5:384) set variable %NewNW to the x,y position (%NW).
(5:353) move the position in variable %NewNW southeast (down and right) 1 step(s).
(5:384) set variable %Signal to the x,y position (%SE).
(5:354) move the position in variable %Signal southwest (down and left) 1 step(s).
(5:300) set variable %Move to the value 1 .
(5:200){FORWARD STEAM!}
----------
NW COMMAND
----------
(0:31) When a furre says {Reverse},
(1:200) and variable %Move is equal to 0,
(5:384) set variable %NewSE to the x,y position (%SE).
(5:355) move the position in variable %NewSE northwest (up and left) 1 step(s).
(5:384) set variable %NewNW to the x,y position (%NW).
(5:355) move the position in variable %NewNW northwest (up and left) 1 step(s).
(5:384) set variable %Signal to the x,y position (%NW).
(5:354) move the position in variable %Signal southwest (down and left) 1 step(s)
(5:300) set variable %Move to the value 2 .
(5:200){REVERSE STEAM!}
---------------------------
ALL ABOARD! (TRAIN STARTUP)
---------------------------
(0:31) When a furre says {Last Call!},
(1:200) and variable %Enable is equal to 0,
(5:50) set countdown timer 1 to go off in 4 seconds.
(0:50) When countdown timer 1 goes off,
(5:300) set variable %Enable to the value 1.
(5:202) emit message {Stand clear of the tracks!} to every furre who can see (%SE).
--------------------
THROW STATION SIGNAL
--------------------
(0:2) When somebody moves into floor type 178,
(1:15) and the triggering furre is facing southwest (down and left),
(3:6) where the triggering furre moved into,
(5:6) swap object types 163 and 164.
(3:11) 2 step(s) in front of the triggering furre,
(5:3) swap floor types 180 and 183.
-------
SE MOVE
-------
(0:100) When 1 seconds have passed, offset by 0,
(1:200) and variable %Move is equal to 1,
(1:1012) and position (%Signal) is not floor type 180,
(4:1) only where the floor is type 177,
(3:2) at position (%NewSE) on the map,
(5:23) swap the object with the object at (%SE).
(3:2) at position (%SE) on the map,
(5:23) swap the object with the object at (%NewNW).
(3:2) at position (%NW) on the map,
(5:23) swap the object with the object at (%NewNW).
(3:17) in a line starting at (%SE) and going 4 more spaces northwest.
(5:81) move any furre present 1 step(s) southeast (down and right) if there's nobody already there.
(5:354) move the position in variable %NW southwest (down and left) 1 step(s).
(5:354) move the position in variable %SE southwest (down and left) 1 step(s).
(5:354) move the position in variable %NewNW southwest (down and left) 1 step(s).
(5:354) move the position in variable %NewSE southwest (down and left) 1 step(s).
(5:354) move the position in variable %Signal southwest (down and left) 1 step(s).
-------
NW MOVE
-------
(0:100) When 1 seconds have passed, offset by 0,
(1:200) and variable %Move is equal to 2,
(1:200) and variable %Enable is equal to 1,
(1:1012) and position (%Signal) is not floor type 180,
(4:1) only where the floor is type 177,
*Endtriggers* 8888 *Endtriggers*