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*