DSPK V03.00 Furcadia
-----------------
STARTUP AND ENTRY
-----------------
(0:9) When a furre arrives in the dream,
(5:15) move the triggering furre to (14,13), or to someplace nearby if it's occupied.
(0:0) When everything is starting up,
(5:384) set variable %End to the x,y position (8,14).
(5:384) set variable %Front to the x,y position (12,18).
(5:300) set variable %Start to the value 0.
(5:384) set variable %NewEnd to the x,y position (14,19).
(5:384) set variable %NewFront to the x,y position (10,15).
(5:301) copy the value of variable %Front into variable %Signal.
(5:354) move the position in variable %Signal southwest (down and left) 1 step(s).
(5:300) set variable %BackOn to the value 0.
------------------------------------
REMOVE FURRES ON TRACKS NOT ON TRAIN
------------------------------------
-----------
TRAIN START
-----------
(0:31) When a furre says {Last Call!},
(1:1012) and position (%Signal) is not floor type 180,
(5:50) set countdown timer 1 to go off in 4 seconds.
(5:203) emit message {Last chance to board the train!} to every furre who can see the triggering furre.
(0:50) When countdown timer 1 goes off,
(1:1012) and position (%Signal) is not floor type 180,
(5:301) copy the value of variable %Direction into variable %Start.
(5:202) emit message {Stand clear of the tracks!} to every furre who can see (%Front).
(5:10) play sound 13 to every furre who can see (%Front).
-------------------------
CHOOSE DIRECTION AND STOP
-------------------------
(0:31) When a furre says {SE},
(1:200) and variable %Start is equal to 0,
(5:300) set variable %Direction to the value 1.
(5:301) copy the value of variable %Front into variable %Signal.
(5:354) move the position in variable %Signal southwest (down and left) 1 step(s).
(0:31) When a furre says {NW},
(1:200) and variable %Start is equal to 0,
(5:300) set variable %Direction to the value 2.
(5:301) copy the value of variable %End into variable %Signal.
(5:354) move the position in variable %Signal southwest (down and left) 1 step(s).
(0:31) When a furre says {Stop},
(1:201) and variable %Start is greater than 0,
(5:300) set variable %Start to the value 0.
-----------------
NW to SE MOVEMENT
-----------------
(0:100) When 1 seconds have passed, offset by 0,
(1:200) and variable %Start 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 (%Front) on the map,
(5:23) swap the object with the object at (%NewFront).
(3:2) at position (%Front) on the map,
(5:4) place object type 413.
(3:2) at position (%End) on the map,
(5:4) place object type 0.
(3:2) at position (%NewEnd) on the map,
(5:4) place object type 40.
(5:353) move the position in variable %Signal southeast (down and right) 1 step(s).
(5:353) move the position in variable %Front southeast (down and right) 1 step(s).
(5:353) move the position in variable %End southeast (down and right) 1 step(s).
(5:353) move the position in variable %NewFront southeast (down and right) 1 step(s).
(5:353) move the position in variable %NewEnd southeast (down and right) 1 step(s).
(3:17) in a line starting at (%Front) 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.
(4:0) clear all filtering,
-----------------
SE TO NW MOVEMENT
-----------------
(0:100) When 1 seconds have passed, offset by 0,
(1:200) and variable %Start is equal to 2,
(1:1012) and position (%Signal) is not floor type 180,
(4:1) only where the floor is type 177,
(5:355) move the position in variable %Signal northwest (down and right) 1 step(s).
(5:355) move the position in variable %Front northwest (down and right) 1 step(s).
(5:355) move the position in variable %End northwest (down and right) 1 step(s).
(5:355) move the position in variable %NewFront northwest (down and right) 1 step(s).
(5:355) move the position in variable %NewEnd northwest (down and right) 1 step(s).
(3:2) at position (%End) on the map,
(5:4) place object type 413.
(3:2) at position (%NewEnd) on the map,
(5:4) place object type 40.
(3:2) at position (%Front) on the map,
(5:4) place object type 413.
(3:2) at position (%NewFront) on the map,
(5:4) place object type 413.
(4:0) clear all filtering,
(3:15) in a line starting at (%End) and going 4 more spaces southeast.
(5:83) move any furre present 1 step(s) northwest (down and right) if there's nobody already there.
(4:0) clear all filtering,
-------------------
MANUAL SIGNAL THROW
-------------------
(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.
*Endtriggers* 8888 *Endtriggers*