It was bugging me that the torus roaches weren't facing the way they wanted to move like normal roaches, so I worked out a fix for that. You basically need to change each Move command to "
before each one. Makes it a little easier to see when the roach switches direction while moving down a one-width corridor. Updated script secreted just in case someone wants to make Torus 2 (Tworus?) at some point.
× If ...
Wait for clean room
Go to End script
If End
Imperative 27
Imperative 7
Imperative 3
Label Loop
Set var ".XDif" = _MyX-_X
Set var ".YDif" = _MyY-_Y
If ...
Wait until var ".XDif" <= -18
If ...
Wait until var ".YDif" <= -15
If ...
Wait until var "_MyX" = 1
Set var "_MyX" = 37
Else If
Wait until var "_MyY" = 1
Set var "_MyY" = 31
Else
Set var "_MyO" = 0
Move -1,-1,1,1
If End
Else If
Wait until var ".YDif" > 15
If ...
Wait until var "_MyX" = 1
Set var "_MyX" = 37
Else If
Wait until var "_MyY" = 30
Set var "_MyY" = 0
Else
Set var "_MyO" = 6
Move -1,1,1,1
If End
Else If
Wait until var ".YDif" < 0
If ...
Wait until var "_MyX" = 1
Set var "_MyX" = 37
Else
Set var "_MyO" = 6
Move -1,1,1,1
If End
Else If
Wait until var ".YDif" > 0
If ...
Wait until var "_MyX" = 1
Set var "_MyX" = 37
Else
Set var "_MyO" = 0
Move -1,-1,1,1
If End
Else
If ...
Wait until var "_MyX" = 1
Set var "_MyX" = 37
Else
Set var "_MyO" = 3
Move -1,0,1,1
If End
If End
Else If
Wait until var ".XDif" > 18
If ...
Wait until var ".YDif" <= -15
If ...
Wait until var "_MyX" = 36
Set var "_MyX" = 0
Else If
Wait until var "_MyY" = 1
Set var "_MyY" = 31
Else
Set var "_MyO" = 2
Move 1,-1,1,1
If End
Else If
Wait until var ".YDif" > 15
If ...
Wait until var "_MyX" = 36
Set var "_MyX" = 0
Else If
Wait until var "_MyY" = 30
Set var "_MyY" = 0
Else
Set var "_MyO" = 8
Move 1,1,1,1
If End
Else If
Wait until var ".YDif" < 0
If ...
Wait until var "_MyX" = 36
Set var "_MyX" = 0
Else
Set var "_MyO" = 8
Move 1,1,1,1
If End
Else If
Wait until var ".YDif" > 0
If ...
Wait until var "_MyX" = 36
Set var "_MyX" = 0
Else
Set var "_MyO" = 2
Move 1,-1,1,1
If End
Else
If ...
Wait until var "_MyX" = 36
Set var "_MyX" = 0
Else
Set var "_MyO" = 5
Move 1,0,1,1
If End
If End
Else If
Wait until var ".XDif" < 0
If ...
Wait until var ".YDif" <= -15
If ...
Wait until var "_MyY" = 1
Set var "_MyY" = 31
Else
Set var "_MyO" = 2
Move 1,-1,1,1
If End
Else If
Wait until var ".YDif" > 15
If ...
Wait until var "_MyY" = 30
Set var "_MyY" = 0
Else
Set var "_MyO" = 8
Move 1,1,1,1
If End
Else If
Wait until var ".YDif" < 0
Set var "_MyO" = 8
Move 1,1,1,1
Else If
Wait until var ".YDif" > 0
Set var "_MyO" = 2
Move 1,-1,1,1
Else
Set var "_MyO" = 5
Move 1,0,1,1
If End
Else If
Wait until var ".XDif" > 0
If ...
Wait until var ".YDif" <= -15
If ...
Wait until var "_MyY" = 1
Set var "_MyY" = 31
Else
Set var "_MyO" = 0
Move -1,-1,1,1
If End
Else If
Wait until var ".YDif" > 15
If ...
Wait until var "_MyY" = 30
Set var "_MyY" = 0
Else
Set var "_MyO" = 6
Move -1,1,1,1
If End
Else If
Wait until var ".YDif" < 0
Set var "_MyO" = 6
Move -1,1,1,1
Else If
Wait until var ".YDif" > 0
Set var "_MyO" = 0
Move -1,-1,1,1
Else
Set var "_MyO" = 3
Move -1,0,1,1
If End
Else
If ...
Wait until var ".YDif" <= -15
If ...
Wait until var "_MyY" = 1
Set var "_MyY" = 31
Else
Set var "_MyO" = 1
Move 0,-1,1,1
If End
Else If
Wait until var ".YDif" > 15
If ...
Wait until var "_MyY" = 30
Set var "_MyY" = 0
Else
Set var "_MyO" = 7
Move 0,1,1,1
If End
Else If
Wait until var ".YDif" < 0
Set var "_MyO" = 7
Move 0,1,1,1
Else If
Wait until var ".YDif" > 0
Set var "_MyO" = 1
Move 0,-1,1,1
Else
Move 0,0,1,1
If End
If End
Set var ".XDif" = -9999
Set var ".YDif" = -9999
Go to Loop
Label End script
Disappear
It's also bugging me that one of the trapdoors in the final room is different but I can't do much about that.