var testdata = [
	[
		"sokoban no win condition",
		["(\nSimple block pushing example, simplified\n)\n\n========\nOBJECTS\n========\n\nBackground\nBlack\n\nTarget \nYELLOW\n\nPlayer \nPINK \n\nCrate\nRED\n\nWall \nBROWN DARKBROWN \n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=========\nSOUNDS\n=========\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES \n====== \n\n[ > Player | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\n======= \nLEVELS\n=======\n\n#########\n#.......#\n#.....@.#\n#.P.*.O.#\n#.......#\n#.......#\n#########\n\n#########\n#.....@.#\n#.P.*.O.#\n#.......#\n#########\n\n#########\n#.....@.#\n#.P.*.O.# \n#.......#\n#########",[0,0,3,3,3,3,3,2,1,0,1,2,1,1,2,3,3,2,3,0,1,0,3,0,3,2,1,2,3,1,2,3],"background wall:0,0,0,0,0,0,0,0,background:1,\n1,1,1,1,0,0,1,1,1,\n1,1,0,0,1,1,1,1,1,\n0,0,1,1,1,1,1,0,0,\n1,1,background player:2,1,1,0,0,1,background crate target:3,\n3,1,1,0,0,1,1,1,1,\n1,0,0,0,0,0,0,0,0,\n"]
	],
	[
		"sokoban with win condition",
		["(\nSimple block pushing example, simplified\n)\n\n========\nOBJECTS\n========\n\nBackground\nBlack\n\nTarget \nYELLOW\n\nPlayer \nPINK \n\nCrate\nRED\n\nWall \nBROWN DARKBROWN \n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=========\nSOUNDS\n=========\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES \n====== \n\n[ > Player | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\nall crate on target\n\n======= \nLEVELS\n=======\n\n#########\n#.......#\n#.....@.#\n#.P.*.O.#\n#.......#\n#.......#\n#########\n\n#########\n#.....@.#\n#.P.*.O.#\n#.......#\n#########\n\n#########\n#.....@.#\n#.P.*.O.# \n#.......#\n#########",[0,0,3,3,3,3,3,2,1,0,1,1,2,3,1,1,2,3,3],"background wall:0,0,0,0,0,0,background:1,1,1,\n0,0,1,background player:2,1,0,0,1,1,\n1,0,0,1,background crate:3,1,0,0,1,\n1,1,0,0,background crate target:4,background target:5,1,0,0,\n1,1,1,0,0,0,0,0,0,\n"]
	],
	[
		"block faker no win condition",
		["========\nOBJECTS\n========\n\nBackground\nWhite\n\nGrille\ngray\n0...0\n.0.0.\n..0..\n.0.0.\n0...0\n\nEndPoint\nGreen\n\nPlayer \nBlack \n00000\n00000\n0.0.0\n00000\n00000\n\nWall\nGray\n\nBlueBlock\nBlue\n00000\n00.00\n0.0.0\n00.00\n00000\n\nGreenBlock\nLightGreen\n00000\n00000\n00.00\n00000\n00000\n\nPinkBlock\nRed\n00000\n00.00\n0...0\n00.00\n00000\n\nPurpleBlock\nPurple\n00000\n0...0\n0.0.0\n0...0\n00000\n\nOrangeBlock\nOrange\n00000\n0.0.0\n00000\n0.0.0\n00000\n\n\n=======\nLEGEND\n=======\n\nBlock = PinkBlock or BlueBlock or PurpleBlock or OrangeBlock or GreenBlock\nMoveable = Player or Block\nPlayerObstacle = Block or Wall\nBlockObstacle = Player or Wall or Grille or Block or EndPoint\n. = Background\n# = Wall\nP = Player\nB = BlueBlock\nG = GreenBLock\nK = PinkBlock\nR = PurpleBlock\nO = OrangeBlock\nE = EndPoint\nx = Grille\nH = Grille and Player\n\n\n=========\nSOUNDS\n=========\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nEndPoint\nGrille\nPlayer, Wall, PinkBlock, BlueBlock, PurpleBlock, OrangeBlock, GreenBlock\n\n======\nRULES \n====== \n\n[ > Moveable | Moveable ] -> [ > Moveable | > Moveable ]\n\nlate [ PinkBlock | PinkBlock | PinkBlock ] -> [ | | ]\nlate [ BlueBlock | BlueBlock | BlueBlock ] -> [ | | ]\nlate [ PurpleBlock | PurpleBlock | PurpleBlock ] -> [ | | ]\nlate [ OrangeBlock | OrangeBlock | OrangeBlock ] -> [ | | ]\nlate [ GreenBlock | GreenBlock | GreenBlock ] -> [ | | ]\n\n==============\nWINCONDITIONS\n==============\n\n======= \nLEVELS\n=======\n\n##########\n####...###\n#x....#x##\n#xO#O.OxE#\n#Hx##.#xx#\n#####.####\n#####.####\nO#########\n\n......#######...\n.....##P.#####..\n....###....####.\n..#####O...#B..#\n..#####.#.##BB.#\n##EBB..O.O.....#\n..#####.#.#....#\n..######..#..###\n....####..#.OOx.\n.....###GGG.#x..\n......#######...\n\n######xx######\n######GG######\n##xx#...#xEx##\n##..O...#x..##\n##..#...##O###\n#..##.......##\nxG....##....Gx\nxG....##....Gx\n##.......GG###\n###G##...#xx##\n##x..#...O.x##\n##.P.#...#xx##\n######GG######\n######xx######\n\n......##......\n....######....\n..##########..\n..#.OG..kk.#..\n.##OPO..Gkk##.\n.##GOG..GGk##.\n###...##...###\n###...##...###\n.##kkG##ROR##.\n.##Gkk..OEO##.\n..#.Gk..RO.#..\n..##########..\n....######....\n......##......",[3,0,1,0,3,3,3,0,3,2,2,3,3,3],"background wall:0,0,0,0,0,0,0,background orangeblock:1,0,0,\nbackground grille:2,2,2,0,0,0,0,0,background:3,3,\n2,0,0,0,0,0,3,0,0,0,\n0,0,0,3,3,3,0,0,0,0,\n0,3,3,3,3,3,3,0,0,3,\n0,3,0,0,0,0,0,0,2,2,\n2,0,0,0,0,0,0,background endpoint player:4,2,0,\n0,0,0,0,0,0,0,0,0,0,\n"]
	],
	[
		"block faker with win condition",
		["========\nOBJECTS\n========\n\nBackground\nWhite\n\nGrille\ngray\n0...0\n.0.0.\n..0..\n.0.0.\n0...0\n\nEndPoint\nGreen\n\nPlayer \nBlack \n00000\n00000\n0.0.0\n00000\n00000\n\nWall\nGray\n\nBlueBlock\nBlue\n00000\n00.00\n0.0.0\n00.00\n00000\n\nGreenBlock\nLightGreen\n00000\n00000\n00.00\n00000\n00000\n\nPinkBlock\nRed\n00000\n00.00\n0...0\n00.00\n00000\n\nPurpleBlock\nPurple\n00000\n0...0\n0.0.0\n0...0\n00000\n\nOrangeBlock\nOrange\n00000\n0.0.0\n00000\n0.0.0\n00000\n\n\n=======\nLEGEND\n=======\n\nBlock = PinkBlock or BlueBlock or PurpleBlock or OrangeBlock or GreenBlock\nMoveable = Player or Block\nPlayerObstacle = Block or Wall\nBlockObstacle = Player or Wall or Grille or Block or EndPoint\n. = Background\n# = Wall\nP = Player\nB = BlueBlock\nG = GreenBLock\nK = PinkBlock\nR = PurpleBlock\nO = OrangeBlock\nE = EndPoint\nx = Grille\nH = Grille and Player\n\n\n=========\nSOUNDS\n=========\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nEndPoint\nGrille\nPlayer, Wall, PinkBlock, BlueBlock, PurpleBlock, OrangeBlock, GreenBlock\n\n======\nRULES \n====== \n\n[ > Moveable | Moveable ] -> [ > Moveable | > Moveable ]\n\nlate [ PinkBlock | PinkBlock | PinkBlock ] -> [ | | ]\nlate [ BlueBlock | BlueBlock | BlueBlock ] -> [ | | ]\nlate [ PurpleBlock | PurpleBlock | PurpleBlock ] -> [ | | ]\nlate [ OrangeBlock | OrangeBlock | OrangeBlock ] -> [ | | ]\nlate [ GreenBlock | GreenBlock | GreenBlock ] -> [ | | ]\n\n==============\nWINCONDITIONS\n==============\n\nall player on endpoint \n\n======= \nLEVELS\n=======\n\n##########\n####...###\n#x....#x##\n#xO#O.OxE#\n#Hx##.#xx#\n#####.####\n#####.####\nO#########\n\n......#######...\n.....##P.#####..\n....###....####.\n..#####O...#B..#\n..#####.#.##BB.#\n##EBB..O.O.....#\n..#####.#.#....#\n..######..#..###\n....####..#.OOx.\n.....###GGG.#x..\n......#######...\n\n######xx######\n######GG######\n##xx#...#xEx##\n##..O...#x..##\n##..#...##O###\n#..##.......##\nxG....##....Gx\nxG....##....Gx\n##.......GG###\n###G##...#xx##\n##x..#...O.x##\n##.P.#...#xx##\n######GG######\n######xx######\n\n......##......\n....######....\n..##########..\n..#.OG..kk.#..\n.##OPO..Gkk##.\n.##GOG..GGk##.\n###...##...###\n###...##...###\n.##kkG##ROR##.\n.##Gkk..OEO##.\n..#.Gk..RO.#..\n..##########..\n....######....\n......##......",[3,0,1,0,3,3,3,0,3,2,2,3,3,3,3,2,3,2,2,2,1,1,3,3,0,0,0,1,1,2,2,0,3,3,2,2,3,2,3,3,2,1,2,2,2,1,1,0,0,0,2,2,2,3,3,0,0,0,0,1,1,1,3,3,3,3,3,3,0,0,1,2,2,3,2,1,1,2,1,0,3,0,1,1,1,1,1,1,1,1,1,1],"background wall:0,0,0,0,0,0,background grille:1,1,0,0,0,0,0,0,\n0,0,0,0,0,background:2,background greenblock:3,3,0,0,0,0,0,0,\n0,0,1,2,2,2,2,2,2,0,1,2,0,0,\n0,0,1,2,2,0,2,2,2,3,2,background player:4,0,0,\n0,0,0,background orangeblock:5,0,0,2,2,2,0,2,2,0,0,\n0,0,2,2,2,2,2,2,2,0,0,0,0,0,\n1,3,2,2,2,2,0,0,2,2,2,2,3,1,\n1,3,2,2,2,2,0,0,2,2,2,2,3,1,\n0,0,0,0,0,2,2,2,2,2,2,2,0,0,\n0,0,1,1,0,2,2,2,3,0,5,0,0,0,\n0,0,background endpoint:6,2,5,2,2,2,3,1,2,1,0,0,\n0,0,1,2,0,2,2,2,0,1,1,1,0,0,\n0,0,0,0,0,0,3,3,0,0,0,0,0,0,\n0,0,0,0,0,0,1,1,0,0,0,0,0,0,\n"]
	],
	[
		"by your side",
		["title By Your Side\nauthor Alan Hazelden\nhomepage www.draknek.org\n\nrequire_player_movement\nkey_repeat_interval 0.12\n\n========\nOBJECTS\n========\n\n(Ojects in all scenes)\nGrass .\ndarkgreen green\n00000\n01000\n00000\n00010\n00000\n\nPlayer_Casual P\nblack pink gray\n..0..\n..1..\n.222.\n..2..\n.2.2.\n\nTargetMain T\nyellow\n00000\n0...0\n0...0\n0...0\n00000\n\n(Initial Scenes)\n\nGirlFriend G\nPink red\n..0..\n.010.\n..1..\n.111.\n.0.0.\n\nTree #\ndarkbrown lightgreen\n.111.\n11111\n.111.\n..0..\n..0..\n\n(Wedding Scene)\n\nPlayer_Formal Q\nblack pink white\n..0..\n..1..\n.020.\n..0..\n.0.0.\n\nWoodenFloor ,\nbrown\n00000\n00000\n00000\n00000\n00000\n\nChurchWall H\ndarkbrown brown\n11101\n00000\n10111\n00000\n11101\n\nChair C\ndarkbrown brown\n11111\n11101\n11101\n00001\n01101\n\nAltar A\ngray\n.....\n00000\n.000.\n.000.\n.000.\n\n\nSpectator1 B\nblack pink white\n..0..\n..1..\n.020.\n..0..\n.0.0.\n\nSpectator2 D\npurple pink white\n..0..\n..1..\n10001\n.000.\n00000\n\nWife_Wedding W\nWhite Pink\n..1..\n.000.\n.101.\n.000.\n00000\n\n(Post Wedding Scene)\nhouse @\nblack grey red\n..0..\n.000.\n00000\n.111.\n.121.\n\npavement `\ndarkblue\n\n\nRoad '\ngray white\n00000\n00000\n01110\n00000\n00000\n\nWife_Repulsed X\nWhite Pink\n..1..\n.000.\n.101.\n.000.\n00000\n\n(grave scene)\n\ngravedirt ~\ngreen brown\n01001\n10000\n00100\n00001\n01000\n\ngrave R\nlightgray darkgray grey\n.111.\n10201\n12221\n10201\n10001\n\ncoffin F\ndarkbrown brown black\n.000.\n01210\n02220\n01210\n02220\n\n(final scene)\nWife_Dying Y\nWhite Pink\n..1..\n.000.\n.101.\n.000.\n00000\n\nWife_Coffin\ndarkbrown brown black\n.000.\n01210\n02220\n01210\n02220\n\n=======\nLEGEND\n=======\nTarget = TargetMain or Road\nPlayer = Player_Casual or Player_Formal\nBackground = Grass or WoodenFloor or Road or Pavement or GraveDirt\nSpectator = Spectator1 or Spectator2\nObstacle = House or Spectator or Chair or Tree or Altar or Grave or Coffin or Wife_Coffin or ChurchWall\nWife_Attracted = Girlfriend or Wife_Wedding or Wife_Dying\nWife = Wife_Attracted or Wife_Repulsed or Wife_Coffin\nPerson = Player or Wife\nGrassyTarget = Grass and TargetMain\nE = GrassyTarget\n\n=========\nSOUNDS\n=========\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nObstacle, Person\n\n======\nRULES \n====== \n\n[ > Player ] [ Wife_Attracted ] -> [ > Player ] [ > Wife_Attracted ]\n[ > Player ] [ Wife_Repulsed ] -> [ > Player ] [ < Wife_Repulsed ]\n\n\nlate [ Wife_Dying ] -> [ Wife_Coffin ]\nlate [ Player | Wife_Coffin ] -> [ Player | Wife_Dying ]\n\n==============\nWINCONDITIONS\n==============\n\nall person on target\n\n======= \nLEVELS\n=======\n\n....#################\n...###...#....#######\n..##.........##.....#\n.##...#######.......#\n##....#....###......#\n#...###.............#\n#...#...#...#..######\n#...#...#..##.P.....#\n#....####.T##..######\n##......#...#.......#\n###..##..#...#...##.#\n#.##..#..##..#...#..#\n#..#..#....###...#..#\n#..##........#......#\n#...##...##...##....#\n#.......##.....######\n.##############......\n\n\n\n....#################\n...###...#....#######\n..##.........##.....#\n.##...#######.......#\n##....#....###......#\n#...###.............#\n#...#...#...#..######\n#...#...#..##..T...T#\n#....####.P##G.######\n##......#...#.......#\n###..##..#...#...##.#\n#.##..#..##..#...#..#\n#..#..#....###...#..#\n#..##........#......#\n#...##...##...##....#\n#.......##.....######\n.##############......\n\n\n....#################\n...###...#....#######\n..##.........##.....#\n.##...#######.......#\n##....#....###......#\n#...###.............#\n#...#T..#...#..######\n#...#T..#..##..P...G#\n#....####..##..######\n##......#...#.......#\n###..##..#...#...##.#\n#.##..#..##..#...#..#\n#..#..#....###...#..#\n#..##........#......#\n#...##...##...##....#\n#.......##.....######\n.##############......\n\n\nHHHHHHHHHHHHHHHHHHHHH\n,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,\n,CCCCCCCCCCCCCCCCCCCC\n,CCCCCCCCCCCCCCCCCCCC\nA,B,,D,B,D,,B,D,,,B,C\nA,T,,,,,,,,,,,,,Q,,,C\nA,T,,,,,,,,,,,,,W,,,C\n,CCCCCCCCCCCCCCCCCCCC\n,CCCCCCCCCCCCCCCCCCCC\n,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,\nHHHHHHHHHHHHHHHHHHHHH\n\n\n`````````@@@@````````\n`````````@TT@````````\n``@@@@@@`@`@@````````\n``@````@`@`@@@@``````\n``@`@@`@`@````@``````\n``@`@@`@`@`@@@@``````\n``@`@@`@@@P@`````````\n``@```````W@@@@@@````\n``@`@@@@@@``````@````\n``@`@````@`@@@@`@````\n``@`@````@`@``@`@````\n@@@@@@@@@@@@@@@@@@@@@\n'''''''''''''''''''''\n@@@@@@@@@@@@@@@@@@@@@\n`````````````````````\n\n\n`````````@@@@````````\n`````````@PX@````````\n``@@@@@@`@`@@````````\n``@````@`@`@@@@``````\n``@`@@`@`@````@``````\n``@`@@`@`@`@@@@``````\n``@`@@`@@@T@`````````\n``@```````T@@@@@@````\n``@`@@@@@@``````@````\n``@`@````@`@@@@`@````\n``@`@````@`@``@`@````\n@@@@@@@@@@@@@@@@@@@@@\n'''''''''''''''''''''\n@@@@@@@@@@@@@@@@@@@@@\n`````````````````````\n\n\n`````````@@@@````````\n`````````@TT@````````\n``@@@@@@`@`@@````````\n``@````@`@`@@@@``````\n``@`@@`@`@````@``````\n``@`@@`@`@`@@@@``````\n``@`@@`@@@P@`````````\n``@```````X@@@@@@````\n``@`@@@@@@``````@````\n``@`@````@`@@@@`@````\n``@`@````@`@``@`@````\n@@@`@@@@@@`@@@@`@@@@@\n'''''''''''''''''''''\n@@@@@@@@@@@@@@@@@@@@@\n`````````````````````\n\nRRRRRRR~RRRRRR~RRRRR\nR~~~~~R~R~~~~R~R~~~~\nR~~~~~~~R~~~~R~R~~~~\nR~~~~~R~R~~~~R~R~~~~\nRRRRRRR~RR~~RR~RRRRR\nR~~~~BDBDBDBDBD~~~~R\nRQ~~~~~~~~~~~~~~~EFR\nRRRRRRRRRRRRRRRRRRRR\nR~~R~~~~~~~~~~~R~~~~\nR~~R~~~~~~~~~~~R~~~~\nR~~RRR~~~RRRR~~R~~~~\nR~~~~~~~~R~~~~~R~~~R\nR~~R~~~~~R~~R~~~~~~R\nR~~R~~~~~R~~R~~~~~~R\nRRRRRRRRRR~~RRRRRRRR\n\nRRRRRR~~~~~~~~~~~~~~\nR~~~~R~~~~~RRRRRR~~~\nR~QY~R~~~~~R~~~~R~~~\nR~~~~R~~RRRRR~R~R~~~\nR~~~~RRRR~~R~~R~R~~~\nR~~~~~~~~~~R~~R~RRR~\nRRRRRRRRR~~R~~~~~~R~\n~~R~~~~~R~~R~RRR~~R~\n~~R~~R~~R~~RRR~R~~R~\n~~R~~R~~~~~~~~~~~~R~\n~~R~~R~~RR~~~~~RRRR~\n~~R~~R~~~RRRRRTTR~~~\n~~R~~R~~~R~~~~~~R~~~\n~~R~~R~~~~~RRR~~R~~~\n~~RRRRRRRRRR~RRRR~~~\n\n\nRRRRRR~~~~~~~~~~~~~~\nR~~~~R~~~~~RRRRRR~~~\nR~~~~R~~~~~R~~~~R~~~\nR~~~~R~~RRRRR~R~R~~~\nR~~~~RRRR~~R~~R~R~~~\nR~~~~~~~~~~RT~R~RRR~\nRRRRRRRRR~~RT~~~~~R~\n~~R~~~~~R~~R@RRR~~R~\n~~R~~R~~R~~RRR~R~~R~\n~~R~~R~~~~~~~~~~~~R~\n~~R~~R~~RR~~~~~RRRR~\n~~R~~R~~~RRRRRYQR~~~\n~~R~~R~~~R~~~~~~R~~~\n~~R~~R~~~~~RRR~~R~~~\n~~RRRRRRRRRR~RRRR~~~\n\nmessage Commiserations\n\nmessage It is over",[1,0,0,1,1,1,2,2,2,0,0,0,2,1,1,0,1,3,3,0,1,1,1,2,2,1,1,3,2,3,3,0,0,3,3,3,3,3,3,3,2,2,3,1,0,0,3,3,3,3,3,3,1,1,1,1,1,0,0,3,1,2,3,3,3,3,3,3,1,0,1,1,2,3,3,3,3,0,1,1,1,1,2,3,3,2,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,0,0,0,0,3,3,1,1,2,2,2,1,1,1,1,1,1,1,0,0,0,0,3,3,3,2,2,2,2,3,3,3,3,2,3,3,3,3,3,1,1,1,1,0,1,0,1,1,1,1,1,1,1,0,0,0,3,3,3,3,0,0,3,3,3,2,2,2,2,3,3,3,3,0,3,0,0,0,0,0,2,2,2,2,2,2,2,0,1,1,1,1,1,1,1,1,3,3,3,0,0,0,1,2,2,0,0,0,1,1,1,2,2,2,2,2,3,3,0,3,3,3,0,0,0,0,1,1,1,2,2,2,2,3,3,3,3,3,3,3,2,2,0,1,0,1,1,1,1,1,3,3,3,3,3,2,3,3,3,3,3,1,1,1,1,1,2,2,0,0,0,1,1,1,1,1,1,1,0,0,0,0,3,3,3,3,2,2,0,0,1,1,1,2,2,2,2,3,3,3,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,3,3,3,0,0,0,0,2,2,2,0,0,2,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,3,3,3,3,3,3,2,2,3,2,2,2,2,3,3,3,3,1,1,1,1,1,1,1,3,3,3,3,0,0,1,2,2,2,1,1,2,1,2,2,2,3,3,3,3,0,0,3,3,3,3,0,3,0,1,0,1,1,1,3,3,3,2,3,2,1,1,1,1,1,2,2,1,1,1,1,0,0,0,3,3,3,0,3,3,3,3,3,3,3,2,1,1,1,1,0,1,1,1,2,2,2,3,2,3,3,0,3,0,3,3,3,0,3,3,2,1,1,1,1,1,2,1,1,1,1,1,0,0,0,0,3,0,3,3,3,2,3,3,3,3,3,3,3,2,1,1,1,1,1,3,3,1,1,1,1,1,0,1,1,3,3,3,3,3,3,2,2,2,1,1,1,1,2,1,1,0,1,0,0,0,3,3,3,3,3,3,3,2,2,3,3,2,2,2,0,0,2,1,0,0,0,1,1,1,1,1,1,1,2,2,2,2,3,2,3,3,0,3,0,3,3,3,0,2,0,0,1,1,1,1,0,1,0,1,1,1,2,1,2,1,2,2,3,2,3,2,3,3,0,3,0,3,3,3,3,1,0,0,1,1,1,0,1,0,3,2,3,3,3,2,3,2,2,1,1,0,1,1,1,1,2,1,2,1,0,1,0,1,0,3,3,0,3,3,3,0,"undo","undo","undo",3,0,2,3,3,3,3,3,3,3,0,3,0,1,0,1,0,1,1,0,1,2,2,1,1,0,0,0,0,3,3,3,2,2,2,1,2,1,1,1,0,0,0,0,3,3,2,3,2,2,2,1,1,1,0,1,2],"grave gravedirt:0,0,0,0,0,0,0,gravedirt:1,1,1,1,1,1,1,1,0,1,1,1,1,\n1,0,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0,0,0,0,\n0,0,0,0,0,0,1,1,1,1,1,0,1,1,1,1,1,1,1,0,\n0,1,1,1,1,1,0,1,1,1,1,1,1,1,0,0,0,0,0,0,\n1,0,1,0,0,0,0,0,0,0,1,1,1,1,0,1,0,1,1,1,\n1,1,1,1,0,1,1,1,1,0,1,0,1,1,1,1,1,1,1,0,\n1,1,1,0,0,1,0,0,0,1,0,1,1,1,0,1,1,1,0,1,\n1,1,1,1,1,0,0,0,1,0,1,1,1,0,1,1,1,1,1,1,\n1,0,1,1,0,1,0,0,0,0,0,0,0,0,1,1,0,1,0,0,\n1,0,1,0,1,gravedirt targetmain wife_dying:2,gravedirt player_formal targetmain:3,gravedirt house:4,0,1,1,0,1,0,1,1,0,1,1,1,\n1,1,0,0,1,1,0,1,0,0,1,0,1,0,0,0,1,0,1,1,\n1,1,1,1,0,1,0,1,1,1,1,1,0,0,1,0,1,1,1,0,\n1,0,0,0,0,0,1,1,1,1,0,0,0,0,0,1,1,1,1,1,\n0,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,\n0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n"]
	],
	[
		"ellipsisTest1",
		["(\nSimple block pushing example, simplified\n)\n\n========\nOBJECTS\n========\n\nBackground\ngray\n\nTarget \nYELLOW\n\nPlayer \nPINK \n\nCrate\nRED\n\nWall \nBROWN DARKBROWN \n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=========\nSOUNDS\n=========\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES \n====== \n\n[ > Player | ... | Crate ] -> [ > Player | ... | > Crate ] \n\n==============\nWINCONDITIONS\n==============\n\n======= \nLEVELS\n=======\n\n...............\n...............\n...............\n...............\n...............\n...............\n..P...*........\n...............\n...............\n...............\n...............\n...............\n...............\n\n",[3,3,3,2,2,3,3,3,3,0,0,3,3,3,0,0,1,1,0,0,0,1,1,0,1,2,2,2,2,2,2,2,2,2,3,3,2,2,2,1,1,1,1,1,1,1],"background:0,0,0,0,0,0,0,0,0,0,0,0,background crate:1,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,background player:2,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n"]
	],
	[
		"ellipsisPropagationBug1",
		["debug\n\n========\nOBJECTS\n========\n\nBackground\ndarkgray\n\nMoveGuide\npink\n\nPlayer\nred\n\n=======\nLEGEND\n=======\n. = Background\nP = player\n\n=========\nSOUNDS\n=========\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nMoveGuide\nPlayer\n\n======\nRULES \n====== \n\nUP [ Player | ... | ] -> [ Player | ... | DOWN MoveGuide ]\nLEFT [ Player | ... | ] -> [ Player | ... |RIGHT MoveGuide ]\n\n==============\nWINCONDITIONS\n==============\n\n\n======= \nLEVELS\n=======\n\n...\n...\n..p",[1,0,1,0],"background moveguide player:0,background moveguide:1,1,\n1,1,1,\n1,1,1,\n"]
	],
	[
		"ellipsisPropagationBug2",
		["(\nSimple block pushing example, simplified\n)\n\n========\nOBJECTS\n========\n\n(temporary objects, for programming)\n\nMoveGuide\npink\n\nBackground\ndarkgray\n\n\nPlayer P\nRED BLACK white\n.2.2.\n.000.\n01110\n00100\n00100\n\n\n=======\nLEGEND\n=======\n. = Background\n\n=========\nSOUNDS\n=========\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nMoveGuide\nPlayer\n\n======\nRULES \n====== \n\n(movement manager code begin)\n\n(seed move guides)\nUP [Player | ... |] -> [ Player | ... | DOWN MoveGuide ]\nLEFT [Player | ... |] -> [ Player | ... |RIGHT MoveGuide ]\n\n\nVERTICAL [ Horizontal MoveGuide | ] -> [ Horizontal MoveGuide | Horizontal MoveGuide ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\n\n======= \nLEVELS\n=======\n\n....\n....\n....\n...p",[0,1,0,1,0,1],"background moveguide player:0,background moveguide:1,1,1,\n1,1,1,1,\n1,1,1,1,\n1,1,1,1,\n"]
	],
	[
		"undo test",
		["(\nSimple block pushing example, simplified\n)\n\n========\nOBJECTS\n========\n\nBackground\nBlack\n\nTarget \nYELLOW\n\nPlayer \nPINK \n\nCrate\nRED\n\nWall \nBROWN DARKBROWN \n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=========\nSOUNDS\n=========\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES \n====== \n\n[ > Player | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\nall target on crate\n\n======= \nLEVELS\n=======\n\n#########\n#.......#\n#.....@.#\n#.P.*.O.#\n#.......#\n#.......#\n#########\n\n#########\n#.....@.#\n#.P.*.O.#\n#.......#\n#########\n\n#########\n#.....@.#\n#.P.*.O.# \n#.......#\n#########",[3,0,3,"undo",1,"undo","undo",2,3,2],"background wall:0,0,0,0,0,0,0,0,background:1,\n1,1,1,1,0,0,1,1,1,\n1,1,0,0,1,1,1,1,1,\n0,0,1,1,background crate:2,1,background player:3,0,0,\n1,1,1,1,1,0,0,1,background crate target:4,\nbackground target:5,1,1,0,0,1,1,1,1,\n1,0,0,0,0,0,0,0,0,\n"]
	],
	[
		"restart test",
		["(\nSimple block pushing example, simplified\n)\n\n========\nOBJECTS\n========\n\nBackground\nBlack\n\nTarget \nYELLOW\n\nPlayer \nPINK \n\nCrate\nRED\n\nWall \nBROWN DARKBROWN \n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=========\nSOUNDS\n=========\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES \n====== \n\n[ > Player | Crate ] -> [ > Player | > Crate ] \n\n==============\nWINCONDITIONS\n==============\nall target on crate\n\n======= \nLEVELS\n=======\n\n#########\n#.......#\n#.....@.#\n#.P.*.O.#\n#.......#\n#.......#\n#########\n\n#########\n#.....@.#\n#.P.*.O.#\n#.......#\n#########\n\n#########\n#.....@.#\n#.P.*.O.# \n#.......#\n#########",[0,0,3,3,2,2,2,"restart",2,2,3,3,0,0,1,0,3,0,3,2,1,2,3,0,3,3,"restart",2,2,3,3,3,"restart",3,0,3,3,2,2,3,3,0,0,1,2,2,1,1,"restart",3,3,2,3,3,3,0,2,2,2,2,1,1,2,1,0,3],"background wall:0,0,0,0,0,0,background:1,1,1,\n0,0,1,background player:2,1,0,0,1,1,\n1,0,0,1,background crate:3,1,0,0,1,\n1,1,0,0,background crate target:4,background target:5,1,0,0,\n1,1,1,0,0,0,0,0,0,\n"]
	],
	[
		"cat bastard",
		["(\nSimple block pushing example, elaborate\n)\n\n========\nOBJECTS\n========\n\nbackground \ngray\n\nwall \nblack\n\n\nPlayer \nwhite \n.0.0.\n00000\n00000\n.000.\n.0.0.\n\nCrate\nwhite black\n.....\n.000.\n.000.\n.000.\n.....\n\n\nCrateSpoken\nwhite black\n00000\n0.0.0\n00000\n0...0\n00000\n\n=======\nLEGEND\n=======\n\npushable = crate or cratespoken or player\n. = Background\n# = Wall\nP = Player\nC = Crate\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall, Crate, cratespoken\n\n======\nRULES \n====== \n\n[ > pushable | pushable ] -> [ > pushable | > CrateSpoken ] \n\n==============\nWINCONDITIONS\n==============\n\nNo Crate \n\n======= \nLEVELS\n=======\n\n#########\n#.......#\n#.......#\n#.P..C..#\n#.......#\n#.......#\n#########\n\n############\n#C.........#\n###C##.....#\n###..##....#\n#..#.#.....#\n#.C.P.C....#\n#..#.#.....#\n###..##....#\n###C##.....#\n#C.........#\n############",[2,3,3,3,0,3,3,1,1,1,1,3,3,3,3,0,3,3,0,0,0,1,1,1,1,1,2,0,1,1,3,3,3,3,3,2,3,2,3,2,3,2,2,2,2,1,2,1,1,1,1,1,1,1,1,3,0],"background wall:0,0,0,0,0,0,0,0,0,0,0,0,\nbackground cratespoken:1,0,0,background:2,1,2,0,0,1,0,0,2,\n0,0,2,2,2,0,0,2,0,0,2,2,\n1,0,2,0,1,background player:3,2,0,0,2,0,2,\n2,2,2,2,0,2,0,0,2,0,0,0,\n2,0,0,0,2,0,0,2,2,0,2,2,\n2,0,2,2,0,0,2,2,2,2,1,2,\n2,2,2,0,0,2,2,2,2,2,2,2,\n2,2,0,0,2,2,2,2,2,2,2,2,\n2,0,0,2,2,2,2,2,2,2,2,2,\n0,0,0,0,0,0,0,0,0,0,0,0,\n"]
	],
	[	
		"rule grouping test",
		["(\nSimple block pushing example, elaborate\n)\n\n========\nOBJECTS\n========\n\nBackground \nLIGHTGREEN GREEN\n.....\n0....\n...0.\n..... \n.0... \n\n\nTarget \nYELLOW\n..... \n..0..\n.000.\n..0..\n..... \n\nWall \nBROWN DARKBROWN \n000.0\n.....\n0.000\n.....\n000.0\n\nPlayer \nPINK \n..0..\n00000\n..0..\n.000.\n.0.0.\n\nRedCrate\nRED\n00000\n0...0\n0...0\n0...0\n00000\n\nBlueCrate\nBlue\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\nCrate = RedCrate or BlueCrate\n* = RedCrate\n$ = BlueCrate\nO = Target\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES \n====== \n\n[ > Player | Crate ] -> [ > Player | > Crate ] \n\n[ > RedCrate | RedCrate ] -> [ > RedCrate | > RedCrate ]\n+[ > BlueCrate | BlueCrate ] -> [ > BlueCrate | > BlueCrate ]\n+[ > BlueCrate | RedCrate ] -> [ > BlueCrate | > RedCrate ]\n+[ > RedCrate | BlueCrate ] -> [ > RedCrate | > BlueCrate ]\n\n==============\nWINCONDITIONS\n==============\n\n\n======= \nLEVELS\n=======\n\n...............\n..P..$*$*$*$*..\n...............\n",[3,3,3],"background:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,background player:1,0,0,background bluecrate:2,0,0,background redcrate:3,0,0,2,0,0,3,0,\n0,2,0,0,3,0,0,2,0,0,3,0,0,0,0,\n"]
	],
	[
		"simple rigid test",
		["========\nOBJECTS\n========\n\nBackground\ngray\n\nTarget \nYELLOW\n\nPlayer \nPINK \n\nCrate w\nGreen\n\n\nWall \nBROWN DARKBROWN \n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\nO = Target\n\n=========\nSOUNDS\n=========\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES \n====== \n\n[ > Player | Crate ] -> [ > Player | > Crate ] \n+ rigid [ left Crate | Crate ] -> [ left Crate | left Crate ]\n\n==============\nWINCONDITIONS\n==============\n\n======= \nLEVELS\n=======\n\n.wp\n.w.\n\n",[1],"background crate:0,0,background player:1,\nbackground:2,2,2,\n",0]
	],
	[
		"rigid body test",
		["(\nSimple block pushing example, simplified\n)\n\n========\nOBJECTS\n========\n\nBackground\ngray\n\nTarget \nYELLOW\n\nPlayer \nPINK \n\nCrate\nRED\n\nWall \nBROWN DARKBROWN \n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n=========\nSOUNDS\n=========\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES \n====== \n\n[ > Player | Crate ] -> [ > Player | > Crate ] \n+ rigid [ moving Crate | Crate ] -> [ moving Crate | moving Crate ]\n\n==============\nWINCONDITIONS\n==============\n\n======= \nLEVELS\n=======\n\n...............\n....*..........\n....*..........\n...............\n.....***.......\n.....*.........\n..P..**#.......\n.....*.........\n...............\n...............\n...............\n...............\n...............\n\n",[2,0,0,0,3,3,0,3,2,2,2,1,1,0,0,3,2,1],"background:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,background player:1,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,background crate:2,2,0,0,2,2,2,2,0,\n0,0,0,0,0,0,0,0,2,0,2,0,0,0,0,\n0,0,0,0,0,0,2,background wall:3,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n"]
	],
	[	
		"rigid body test 2",
		["(Simple block pushing example, simplified)\n\n========\nOBJECTS\n========\n\nBackground\ngray\n\nTarget \nYELLOW\n\nPlayer \nPINK \n\nRedCrate q\nRED\n\nGreenCrate w\nGreen\n\nBlueCrate e \nBlue\n\nSmallCrate r\nPurple\n.....\n.000.\n.000.\n.000.\n.....\n\nWall \nBROWN DARKBROWN \n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\nbigcrate = redcrate or greencrate or bluecrate\nCrate = smallcrate or bigcrate\nO = Target\n\n=========\nSOUNDS\n=========\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES \n====== \nstartloop\n\n[ > Player | Smallcrate ] -> [ > Player | > SmallCrate ]\n\n[ > Player | RedCrate ] -> [ > Player | > RedCrate ] \n+ rigid [ moving RedCrate | RedCrate ] -> [ moving RedCrate | moving RedCrate ]\n+ [ > Crate | RedCrate ] -> [ > Crate | > RedCrate ] \n\n[ > Player | GreenCrate ] -> [ > Player | > GreenCrate ] \n+ rigid [ moving GreenCrate | GreenCrate ] -> [ moving GreenCrate | moving GreenCrate ]\n+ [ > Crate | GreenCrate ] -> [ > Crate | > GreenCrate ] \n\n\n[ > Player | BlueCrate ] -> [ > Player | > BlueCrate ] \n+ rigid [ moving BlueCrate | BlueCrate ] -> [ moving BlueCrate | moving BlueCrate ]\n+ [ > Crate | BlueCrate ] -> [ > Crate | > BlueCrate ] \n\n[ > Crate | SmallCrate ] -> [ > Crate | > SmallCrate ]\nendloop\n==============\nWINCONDITIONS\n==============\n\n======= \nLEVELS\n=======\n\n...............\n...............\n...............\n.....#.........\n...............\n...r.r.........\n..P....#.......\n..qq..w.eer....\n..q.wwweer.....\n..q.#..........\n...............\n...............\n...............\n\n",[0,3,3,3,3,3,3,3,3,0,3,2,2,3,3,0,1,1,1,1,1,1,1,1,1,1,1,0,1,2,2,3,3,3,1,1,1,1,2,3,0,3,3,3,3,2,1,0,1,2,0,1,1,2,2,2,1,2,3,2,3,3,3,3,3,3,3,3,3,3,0,3,3,0,3,0,3,0,0,1,0,1,1,1,1,2,1,2,3,0,3,3,3,3,3,1,2,2,3,2,1,1,1,1,1,2,1,0,3,3,3,3,3,0,0,1,1,1,0,2,1,2,3,2,1,1,1,1,1,1,2,1,0,3,3,3,3,3,3,0,0,0,1,3,2,1,1,1,1,2,2,1,1,1,1,2,1,2,1,2,1,1,2,1,1,0,0,3],"background:0,0,0,0,0,0,0,0,0,background smallcrate:1,0,0,0,0,0,\n0,0,0,0,0,0,0,0,background player:2,0,0,0,0,0,0,\n0,0,0,0,background redcrate:3,3,3,0,0,0,0,0,0,0,0,\n0,background greencrate:4,3,0,0,0,0,0,0,0,0,0,0,0,4,\n1,background wall:5,0,0,0,0,0,0,5,0,0,4,4,1,0,\n0,0,0,0,0,0,0,0,0,0,0,background bluecrate:6,0,0,0,\n0,0,0,0,0,0,0,5,6,6,0,0,0,0,0,\n0,0,0,0,0,0,6,0,0,0,0,0,0,0,0,\n0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n"]
	],
	[
		"annoying edge case",
		["(\nSimple block pushing example, simplified\n)\n\n========\nOBJECTS\n========\n\n(temporary objects, for programming)\n\nMoveGuide\npink\n\n(game objects)\n\nBackground\ndarkgray\n\n\nPlayer P\nRED BLACK white\n.2.2.\n.000.\n01110\n00100\n00100\n\n\n=======\nLEGEND\n=======\nU = MoveGuide\n. = Background\n\n=========\nSOUNDS\n=========\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer\nMoveGuide\n\n======\nRULES \n====== \n\n(movement manager code begin)\n\n(seed move guides)\nRIGHT [Player | ... | ] -> [ Player | ... |LEFT MoveGuide ]\nLEFT [Player | ... | ] -> [ Player | ... |RIGHT MoveGuide ]\n\n==============\nWINCONDITIONS\n==============\n\n\n======= \nLEVELS\n=======\n\n.P.\n",[0],"background:0,background moveguide player:1,background moveguide:2,\n"]
	],
	[
		"propagation test",
		["(\nSimple block pushing example, simplified\n)\n\n========\nOBJECTS\n========\n\n(temporary objects, for programming)\n\nMoveGuide\npink\n\nMoveGuide2\npurple\n\n(game objects)\n\nBackground\ndarkgray\n\n\nPlayer P\nRED BLACK white\n.2.2.\n.000.\n01110\n00100\n00100\n\n\n=======\nLEGEND\n=======\nU = MoveGuide\n. = Background\n\n=========\nSOUNDS\n=========\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer\nMoveGuide, moveguide2\n\n======\nRULES \n====== \n\n(movement manager code begin)\n\n(seed move guides)\nup [Player | ... | ] -> [ Player | ... | MoveGuide ]\ndown [Player | ... | ] -> [ Player | ... | MoveGuide2 ]\nleft [Player | ... | ] -> [ Player | ... | MoveGuide ]\nright [Player | ... | ] -> [ Player | ... | MoveGuide2 ]\n\n==============\nWINCONDITIONS\n==============\n\n\n======= \nLEVELS\n=======\n\n.............\n.............\n......p......\n.............\n.............\n",[1,0,1,0,1],"background moveguide:0,0,0,background:1,1,0,0,0,1,1,0,0,0,\n1,1,background moveguide player:2,0,0,1,1,0,background moveguide2:3,3,3,3,3,\n3,3,3,3,3,3,3,3,3,3,3,3,1,\n1,3,3,3,1,1,3,3,3,1,1,3,3,\n3,1,1,3,3,3,1,1,3,3,3,1,1,\n"]
	],
	[
		"test testing starting at level N",
		["title By Your Side\nauthor Alan Hazelden\nhomepage www.draknek.org\n\nrequire_player_movement\nkey_repeat_interval 0.12\n\n(a port of alan hazelden's game, By Your Side, in 6 lines of code, made with the permission of the author -\n\nthe original is here\nhttp://www.draknek.org/games/by-your-side/)\n\n========\nOBJECTS\n========\n\n(Ojects in all scenes)\nGrass .\ndarkgreen green\n00000\n01000\n00000\n00010\n00000\n\nPlayer_Casual P\nblack pink gray\n..0..\n..1..\n.222.\n..2..\n.2.2.\n\nTargetMain T\nyellow\n00000\n0...0\n0...0\n0...0\n00000\n\n(Initial Scenes)\n\nGirlFriend G\nPink red\n..0..\n.010.\n..1..\n.111.\n.0.0.\n\nTree #\ndarkbrown lightgreen\n.111.\n11111\n.111.\n..0..\n..0..\n\n(Wedding Scene)\n\nPlayer_Formal Q\nblack pink white\n..0..\n..1..\n.020.\n..0..\n.0.0.\n\nWoodenFloor ,\nbrown\n00000\n00000\n00000\n00000\n00000\n\nChurchWall H\ndarkbrown brown\n11101\n00000\n10111\n00000\n11101\n\nChair C\ndarkbrown brown\n11111\n11101\n11101\n00001\n01101\n\nAltar A\ngray\n.....\n00000\n.000.\n.000.\n.000.\n\n\nSpectator1 B\nblack pink white\n..0..\n..1..\n.020.\n..0..\n.0.0.\n\nSpectator2 D\npurple pink white\n..0..\n..1..\n10001\n.000.\n00000\n\nWife_Wedding W\nWhite Pink\n..1..\n.000.\n.101.\n.000.\n00000\n\n(Post Wedding Scene)\nhouse @\nblack grey red\n..0..\n.000.\n00000\n.111.\n.121.\n\npavement `\ndarkblue\n\n\nRoad '\ngray white\n00000\n00000\n01110\n00000\n00000\n\nWife_Repulsed X\nWhite Pink\n..1..\n.000.\n.101.\n.000.\n00000\n\n(grave scene)\n\ngravedirt ~\ngreen brown\n01001\n10000\n00100\n00001\n01000\n\ngrave R\nlightgray darkgray grey\n.111.\n10201\n12221\n10201\n10001\n\ncoffin F\ndarkbrown brown black\n.000.\n01210\n02220\n01210\n02220\n\n(final scene)\nWife_Dying Y\nWhite Pink\n..1..\n.000.\n.101.\n.000.\n00000\n\nWife_Coffin\ndarkbrown brown black\n.000.\n01210\n02220\n01210\n02220\n\nColdFeet I\nblack\n\n=======\nLEGEND\n=======\nTarget = TargetMain or Road\nPlayer = Player_Casual or Player_Formal\nBackground = Grass or WoodenFloor or Road or Pavement or GraveDirt\nSpectator = Spectator1 or Spectator2\nObstacle = House or Spectator or Chair or Tree or Altar or Grave or Coffin or Wife_Coffin or ChurchWall\nWife_Attracted = Girlfriend or Wife_Wedding or Wife_Dying\nWife = Wife_Attracted or Wife_Repulsed or Wife_Coffin\nPerson = Player or Wife\nGrassyTarget = Grass and TargetMain\nE = GrassyTarget\n\n=========\nSOUNDS\n=========\nPlayer cantmove 82269707\nendlevel 54461500\nstartgame 10582309\nendgame 66004102\nWife_Repulsed move 44043907\nSfx0 16417502\n\n================\nCOLLISIONLAYERS\n================\n\nColdFeet\nBackground\nTarget\nObstacle, Person\n\n======\nRULES \n====== \n\n(game logic)\n\n[ > Player ] [ Wife_Attracted ] -> [ > Player ] [ > Wife_Attracted ]\n[ > Player ] [ Wife_Repulsed ] -> [ > Player ] [ < Wife_Repulsed ]\n\nlate [ Wife_Dying ] -> [ Wife_Coffin ]\nlate [ Player | Wife_Coffin ] -> [ Player | Wife_Dying ]\n\n(level-specific events)\nlate [ ColdFeet Player ] -> [ Player ] message ...\nlate [ Wife Road ] -> Sfx0\n\n==============\nWINCONDITIONS\n==============\n\nall person on target\n\n======= \nLEVELS\n=======\n\n....#################\n...###...#....#######\n..##.........##.....#\n.##...#######.......#\n##....#....###......#\n#...###.............#\n#...#...#...#..######\n#...#...#..##.P.....#\n#....####.T##..######\n##......#...#.......#\n###..##..#...#...##.#\n#.##..#..##..#...#..#\n#..#..#....###...#..#\n#..##........#......#\n#...##...##...##....#\n#.......##.....######\n.##############......\n\n\n\n....#################\n...###...#....#######\n..##.........##.....#\n.##...#######.......#\n##....#....###......#\n#...###.............#\n#...#...#...#..######\n#...#...#..##..T...T#\n#....####.P##G.######\n##......#...#.......#\n###..##..#...#...##.#\n#.##..#..##..#...#..#\n#..#..#....###...#..#\n#..##........#......#\n#...##...##...##....#\n#.......##.....######\n.##############......\n\n\n....#################\n...###...#....#######\n..##.........##.....#\n.##...#######.......#\n##....#....###......#\n#...###.............#\n#...#T..#...#..######\n#...#T..#..##..P...G#\n#....####..##..######\n##......#...#.......#\n###..##..#...#...##.#\n#.##..#..##..#...#..#\n#..#..#....###...#..#\n#..##........#......#\n#...##...##...##....#\n#.......##.....######\n.##############......\n\n\nHHHHHHHHHHHHHHHHHHHHH\n,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,\n,CCCCCCCCCCCCCCCCCCCC\n,CCCCCCCCCCCCCCCCCCCC\nA,B,,D,B,D,,B,D,,,B,C\nA,T,,I,,,I,,,,I,Q,,,C\nA,T,,,,,,,,,,,,,W,,,C\n,CCCCCCCCCCCCCCCCCCCC\n,CCCCCCCCCCCCCCCCCCCC\n,,,,,,,,,,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,\nHHHHHHHHHHHHHHHHHHHHH\n\n\n`````````@@@@````````\n`````````@TT@````````\n``@@@@@@`@`@@````````\n``@````@`@`@@@@``````\n``@`@@`@`@````@``````\n``@`@@`@`@`@@@@``````\n``@`@@`@@@P@`````````\n``@```````W@@@@@@````\n``@`@@@@@@``````@````\n``@`@````@`@@@@`@````\n``@`@````@`@``@`@````\n@@@@@@@@@@@@@@@@@@@@@\n'''''''''''''''''''''\n@@@@@@@@@@@@@@@@@@@@@\n`````````````````````\n\n\n`````````@@@@````````\n`````````@PX@````````\n``@@@@@@`@`@@````````\n``@````@`@`@@@@``````\n``@`@@`@`@````@``````\n``@`@@`@`@`@@@@``````\n``@`@@`@@@T@`````````\n``@```````T@@@@@@````\n``@`@@@@@@``````@````\n``@`@````@`@@@@`@````\n``@`@````@`@``@`@````\n@@@@@@@@@@@@@@@@@@@@@\n'''''''''''''''''''''\n@@@@@@@@@@@@@@@@@@@@@\n`````````````````````\n\n\n`````````@@@@````````\n`````````@TT@````````\n``@@@@@@`@`@@````````\n``@````@`@`@@@@``````\n``@`@@`@`@````@``````\n``@`@@`@`@`@@@@``````\n``@`@@`@@@P@`````````\n``@```````X@@@@@@````\n``@`@@@@@@``````@````\n``@`@````@`@@@@`@````\n``@`@````@`@``@`@````\n@@@`@@@@@@`@@@@`@@@@@\n'''''''''''''''''''''\n@@@@@@@@@@@@@@@@@@@@@\n`````````````````````\n\nRRRRRRR~RRRRRR~RRRRR\nR~~~~~R~R~~~~R~R~~~~\nR~~~~~~~R~~~~R~R~~~~\nR~~~~~R~R~~~~R~R~~~~\nRRRRRRR~RR~~RR~RRRRR\nR~~~~BDBDBDBDBD~~~~R\nRQ~~~~~i~i~~i~~~~EFR\nRRRRRRRRRRRRRRRRRRRR\nR~~R~~~~~~~~~~~R~~~~\nR~~R~~~~~~~~~~~R~~~~\nR~~RRR~~~RRRR~~R~~~~\nR~~~~~~~~R~~~~~R~~~R\nR~~R~~~~~R~~R~~~~~~R\nR~~R~~~~~R~~R~~~~~~R\nRRRRRRRRRR~~RRRRRRRR\n\nRRRRRR~~~~~~~~~~~~~~\nR~~~~R~~~~~RRRRRR~~~\nR~QY~R~~~~~R~~~~R~~~\nR~~~~R~~RRRRR~R~R~~~\nR~~~~RRRR~~R~~R~R~~~\nR~~~~~~~~~~R~~R~RRR~\nRRRRRRRRR~~R~~~~~~R~\n~~R~~~~~R~~R~RRR~~R~\n~~R~~R~~R~~RRR~R~~R~\n~~R~~R~~~~~~~~~~~~R~\n~~R~~R~~RR~~~~~RRRR~\n~~R~~R~~~RRRRRTTR~~~\n~~R~~R~~~R~~~~~~R~~~\n~~R~~R~~~~~RRR~~R~~~\n~~RRRRRRRRRR~RRRR~~~\n\n\nRRRRRR~~~~~~~~~~~~~~\nR~~~~R~~~~~RRRRRR~~~\nR~~~~R~~~~~R~~~~R~~~\nR~~~~R~~RRRRR~R~R~~~\nR~~~~RRRR~~R~~R~R~~~\nR~~~~~~~~~~RT~R~RRR~\nRRRRRRRRR~~RT~~~~~R~\n~~R~~~~~R~~R@RRR~~R~\n~~R~~R~~R~~RRR~R~~R~\n~~R~~R~~~~~~~~~~~~R~\n~~R~~R~~RR~~~~~RRRR~\n~~R~~R~~~RRRRRYQR~~~\n~~R~~R~~~R~~~~~~R~~~\n~~R~~R~~~~~RRR~~R~~~\n~~RRRRRRRRRR~RRRR~~~\n\nmessage Commiserations\n\nmessage It is over",[2,2,2,3,3,0,0],"grave gravedirt:0,0,0,0,0,0,0,gravedirt:1,1,1,1,1,1,1,1,0,1,1,1,1,\n1,0,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0,0,0,0,\n0,0,0,0,0,0,1,1,1,1,1,0,1,1,1,1,1,1,1,0,\n0,1,1,gravedirt player_formal:2,1,1,0,1,1,1,1,1,1,1,0,0,0,0,0,0,\ngravedirt wife_coffin:3,0,1,0,0,0,0,0,0,0,1,1,1,1,0,1,0,1,1,1,\n1,1,1,1,0,1,1,1,1,0,1,0,1,1,1,1,1,1,1,0,\n1,1,1,0,0,1,0,0,0,1,0,1,1,1,0,1,1,1,0,1,\n1,1,1,1,1,0,0,0,1,0,1,1,1,0,1,1,1,1,1,1,\n1,0,1,1,0,1,0,0,0,0,0,0,0,0,1,1,0,1,0,0,\n1,0,1,0,1,1,1,1,0,1,1,0,1,0,1,1,0,1,1,1,\n1,1,0,0,1,1,0,1,0,0,1,0,1,0,0,0,1,0,1,1,\n1,gravedirt targetmain:4,1,1,0,1,0,1,1,1,1,1,0,0,1,0,4,1,1,0,\n1,0,0,0,0,0,1,1,1,1,0,0,0,0,0,1,1,1,1,1,\n0,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,\n0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\n",8]
	],
	[
		"beginloop/endloop test",
		["title Simple Block Pushing Game\nauthor Stephen Lavelle\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground \nLIGHTGREEN GREEN\n11111\n01111\n11101\n11111 \n10111 \n\n\nTarget \nDarkBlue \n..... \n.000.\n.0.0.\n.000.\n..... \n\nWall \nBROWN DARKBROWN \n00010\n11111\n01000\n11111\n00010\n\nPlayer \nBlack Orange White Blue \n.000.\n.111.\n22222\n.333.\n.3.3.\n\nRedCrate\nRed Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\nBlueCrate\nBLue Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\n\n=======\nLEGEND\n=======\n\nCrate = RedCrate or BlueCrate\n. = Background\n# = Wall\nP = Player\nR = RedCrate\nB = BlueCrate\n\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES \n====== \n\nright [ > Player | Crate ] -> [ > Player | > Crate ] \n\n([ > Crate | Crate ] -> [ > Crate | > Crate ])\n\nSTARTLOOP\n\nright [ > RedCrate | RedCrate ] -> [ > RedCrate | > RedCrate ]\nright [ > BlueCrate | BlueCrate ] -> [ > BlueCrate | > BlueCrate ]\nright [ > RedCrate | BlueCrate ] -> [ > RedCrate | > BlueCrate ]\nright [ > BlueCrate | RedCrate ] -> [ > BlueCrate | > RedCrate ]\n\nENDLOOP\n\nRight [ Player | Crate ] -> [ Player | BlueCrate ]\n\nUp [ Player | Crate ] -> [ Player | RedCrate ]\n\n==============\nWINCONDITIONS\n==============\n\n======= \nLEVELS\n=======\n\n\n.pbrr.",[3],"background:0,0,background player:1,background bluecrate:2,background redcrate:3,3,\n",0]
	],
	[
		"beginloop/endloop test #2 (w/ rigids)",
		["========\nOBJECTS\n========\n\nBackground\ngray\n\nTarget \nYELLOW\n\nPlayer \nPINK \n\nRedCrate q\nRED\n\nGreenCrate w\nGreen\n\nBlueCrate e \nBlue\n\nSmallCrate r\nPurple\n.....\n.000.\n.000.\n.000.\n.....\n\nWall \nBROWN DARKBROWN \n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\nbigcrate = redcrate or greencrate or bluecrate\nCrate = smallcrate or bigcrate\nO = Target\n\n=========\nSOUNDS\n=========\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES \n====== \n\nstartloop\n\n[ > Player | Smallcrate ] -> [ > Player | > SmallCrate ]\n\n[ > Player | RedCrate ] -> [ > Player | > RedCrate ] \n+ rigid [ moving RedCrate | RedCrate ] -> [ moving RedCrate | moving RedCrate ]\n+ [ > Crate | RedCrate ] -> [ > Crate | > RedCrate ] \n\n[ > Player | GreenCrate ] -> [ > Player | > GreenCrate ] \n+ rigid [ moving GreenCrate | GreenCrate ] -> [ moving GreenCrate | moving GreenCrate ]\n+ [ > Crate | GreenCrate ] -> [ > Crate | > GreenCrate ] \n\n\n[ > Player | BlueCrate ] -> [ > Player | > BlueCrate ] \n+ rigid [ moving BlueCrate | BlueCrate ] -> [ moving BlueCrate | moving BlueCrate ]\n+ [ > Crate | BlueCrate ] -> [ > Crate | > BlueCrate ] \n\n[ > Crate | SmallCrate ] -> [ > Crate | > SmallCrate ]\n\nendloop\n\n==============\nWINCONDITIONS\n==============\n\n======= \nLEVELS\n=======\n\n.........\n.qq.wp...\n.qwww....\n.q.......\n.........\n",[1],"background:0,background redcrate:1,1,1,0,0,1,background greencrate:2,0,\n0,0,0,2,0,0,0,2,2,\n0,0,0,background player:3,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,\n",0]
	],
	[
		"late beginloop/endloop test",
		["title Dating Queens\nauthor Pedro Rabinovitch\nhomepage http://twitter.com/kathrrak\nrun_rules_on_level_start\nrequire_player_movement \nnoaction\ncolor_palette ega \ndebug\n========\nOBJECTS\n========\n\nBackground \nLightGrey\n\nTarget1 O\nRed DarkRed\n.....\n.000.\n.0.0.\n.000.\n.....\n\nTarget2 W\nBlue DarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nGlass +\nLightBlue White\n00000\n0..10\n0...0\n0...0\n00000\n\nNWMirror /\nLightBlue White DarkGrey\n...00\n..012\n.0122\n01222\n02222\n\nNWMirror1 \nLightBlue White DarkGrey DarkRed \n..300\n..012\n30322\n01222\n02222\n\n\nAngryQueen\nPurple Green Pink\n..1..\n.121.\n.000.\n.202.\n.000.\n\nQueen1 I\nDarkRed Black Orange\n..1..\n.121.\n.000.\n.202.\n.000.\n\nQueen2 Q\nDarkBlue Yellow Pink\n..1..\n.121.\n.000.\n.202.\n.000.\n\nWall \nDarkGrey\n\nPlayer \nDarkGreen Black Orange\n.111.\n.222.\n20102\n.000.\n.2.2.\n\n\nBuddy \nGreen DarkRed Orange\n.111.\n.222.\n20102\n.000.\n.2.2.\n\nHSight1\nRed DarkRed\n.....\n.....\n.1.1.\n.....\n.....\n\nVSight1\nRed DarkRed\n.....\n..1..\n.....\n..1..\n.....\n\nHSight2\nBlue DarkBlue\n.....\n.....\n.1.1.\n.....\n.....\n\nVSight2\nBlue DarkBlue\n.....\n..1..\n.....\n..1..\n.....\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\nB = Buddy\nQueen = Queen1 or Queen2\nFollower = Queen\nPushable = Queen1 or Buddy or Queen2\nPullable = Queen1 or Queen2 or Buddy\nHSightSource1 = HSight1 or Queen1\nHSightSource2 = HSight2 or Queen2\nVSightSource1 = VSight1 or Queen1\nVSightSource2 = VSight2 or Queen2\nSight1 = HSight1 or VSight1\nSight2 = HSight2 or VSight2\nSight = Sight1 or Sight2\nMirror = NWMirror or NWMirror1\nOpaque = Buddy or Wall or Player or Mirror\nObstacle = Buddy or Wall or Player or Mirror or Glass\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget1, Target2\nHSight1, HSight2\nVSight1, VSight2\nQueen1, Player, Wall, Buddy, Queen2, AngryQueen, Glass, NWMirror, NWMirror1\n\n======\nRULES \n====== \n\n([ Moving Player | Follower ] -> [ Moving Player | Moving Follower ])\n\n[> Player] [AngryQueen] -> RESTART\n\n[ > Player | Pushable ] -> [ > Player | > Pushable ]\n[ < Player | Pullable ] -> [ < Player | < Pullable ] \n\n[ Sight ] -> []\n[ NWMirror1 ] -> [NWMirror]\n\nstartLoop\n\nlate HORIZONTAL [HSightSource1 | No Opaque No Queen1 ] -> [HSightSource1 | HSight1]\nlate VERTICAL [VSightSource1 | No Opaque No Queen1 ] -> [VSightSource1 | VSight1]\nlate HORIZONTAL [HSightSource2 | No Opaque No Queen2 ] -> [HSightSource2 | HSight2]\nlate VERTICAL [VSightSource2 | No Opaque No Queen2 ] -> [VSightSource2 | VSight2]\n\nlate RIGHT [HSightSource1 | NWMirror ] -> [HSightSource1 | NWMirror1 ]\nlate DOWN [VSightSource1 | NWMirror ] -> [VSightSource1 | NWMirror1 ]\nlate UP [NWMirror1 | No Opaque No Queen1 ] -> [NWMirror1 | VSight1] \nlate LEFT [NWMirror1 | No Opaque No Queen1 ] -> [NWMirror1 | HSight1] \n\nendLoop\n\nlate [Sight Queen] -> [AngryQueen] message What is *SHE* doing here?\n(\nlate [Sight1 Queen2] -> [AngryQueen] message What is *SHE* doing here?\n)\n==============\nWINCONDITIONS\n==============\n\nNo AngryQueen\nAll Queen1 on Target1\nAll Queen2 on Target2\n\n======= \nLEVELS\n=======\n\nMessage Trying to fix a bug. :)\n\n##########\n#........#\n#P.......#\n#w.i.../.#\n#........#\n#....#.Q.#\n#....#...#\n#../.../O#\n##########\n\n(\nMessage Take me to our wonderful date!\n\n#########\n#i.P....#\n#.......#\n#####...#\n#.......#\n#......O#\n#########\n)\nMessage You better not date anyone else!\n\n#########\n#w......#\n#.i###..#\n#.P.#...#\n#...#.Q.#\n#......O#\n#########\n\nMessage Are you going to introduce me?\n\n#########\n#w.....O#\n#.......#\n#.P..+.B#\n#....#..#\n#...i#.Q#\n#########\n\nMessage ...\n\n\n#########\n#w+....O#\n#.......#\n#.P.....#\n###...###\n#i..B..Q#\n#########\n\n\n\nMessage Congratulations!\n\n",[3,3,3,2,2],"background wall:0,0,0,0,0,0,0,0,0,0,\nbackground:1,1,background hsight1 target2:2,1,1,1,background hsight1:3,0,0,1,\n1,3,1,1,1,3,0,0,background vsight1:4,4,\nbackground queen1:5,4,4,4,background nwmirror1:6,0,0,1,1,3,\nbackground player:7,1,1,1,0,0,1,1,3,1,\n0,0,1,0,0,1,1,3,1,background hsight2:8,\n1,1,0,0,4,4,6,background vsight2:9,background queen2:10,9,\nbackground nwmirror:11,0,0,1,1,1,1,8,1,background target1:12,\n0,0,0,0,0,0,0,0,0,0,\n",1]
	],
	[
		"multiple loops",
		["title Simple Block Pushing Game\nauthor Stephen Lavelle\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nblack\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\nBROWN DARKBROWN\n00010\n11111\n01000\n11111\n00010\n\nPlayer\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate1 1\nOrange \n00000\n0...0\n0...0\n0...0\n00000\n\nCrate2 2\nRed \n00000\n0...0\n0...0\n0...0\n00000\n\nCrate3 3\nBlue \n00000\n0...0\n0...0\n0...0\n00000\n\nCrate4 4\nGreen \n00000\n0...0\n0...0\n0...0\n00000\n\n\n=======\nLEGEND\n=======\n\nCG1 = Crate1 or Crate2\nCG2 = Crate3 or Crate4\n. = Background\n# = Wall\nP = Player\nO = Target\nCrate = CG1 or CG2\n\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n\nstartLoop\n[> 1|2] -> [> 1|> 2]\n[> 2|1] -> [> 2|> 1]\nendLoop\n\n[> 2|3] -> [> 2|> 3]\n[> 3|2] -> [> 3|> 2]\n\n\nstartLoop\n[> 3|4] -> [> 3|> 4]\n[> 4|3] -> [> 4|> 3]\nendLoop\n\n==============\nWINCONDITIONS\n==============\n\n=======\nLEVELS\n=======\n\n\n..12121212....\nP.34343434....\n..23232323....\n\n",[3,3,1,0,3,1,2,2,3],"background:0,0,0,0,0,background player:1,0,0,background crate2:2,background crate1:3,background crate3:4,4,2,background crate4:5,\n2,3,4,4,2,5,2,3,4,4,2,5,2,3,\n4,4,2,5,0,0,0,0,0,0,0,0,0,0,\n",0]
	],
	[
		"beginloop/endloop with mutual recursion",
		["title Mutual Recursion Test\nauthor Scott Hughes\n\n=======\nOBJECTS\n=======\n\nBackground\nBLACK\n\nPlayer\nBLUE\n\nCrate\nORANGE\n\n======\nLEGEND\n======\n\n. = Background\nP = Player\nC = Crate\n\n======\nSOUNDS\n======\n\n===============\nCOLLISIONLAYERS\n===============\n\nBackground\nPlayer, Crate\n\n=====\nRULES\n=====\n\nstartloop\n\n  [ Player ] -> [ Crate ]\n  [ Crate ] -> [ Player ]\n\nendloop\n\n=============\nWINCONDITIONS\n=============\n\n======\nLEVELS\n======\n\n...\n.P.\n...\n",[0],"background:0,0,0,\nbackground player:1,0,0,\n0,0,0,\n",0]
	],
	[
		"ellipsis magnetism test",
		["title Magnet test cases\nauthor CHz\nhomepage quiteajolt.com\n\n========\nOBJECTS\n========\n\nBackground\nPink\n\nGoal\nDarkBlue\n\nFloor\nBlack\n.....\n.....\n..0..\n.....\n.....\n\nWall\nBrown\n\nPlayerAttract\nBlack Yellow White\n.2.2.\n.0.0.\n.000.\n.1.1.\n11.11\n\nPlayerRepel\nBlack Yellow White\n2...2\n0...0\n.000.\n.1.1.\n11.11\n\n\nCrate\nDarkGray Gray\n.000.\n00100\n01010\n00100\n.000.\n\n\n=======\nLEGEND\n=======\n\n. = Floor\n# = Wall\nP = PlayerRepel\nC = Crate\n@ = Crate and Goal\nG = Goal and Floor\nPlayer = PlayerAttract or PlayerRepel\n\n\n=======\nSOUNDS\n=======\n\nSFX0 78396103 (crate attraction)\nSFX1 66007901 (crate repulsion)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nGoal\nPlayer, Wall, Crate, Floor\n\n======\nRULES\n======\n\n(The most elegant attraction rule would be this:\n\n late [ PlayerAttract | ... | Crate ] -> [ PlayerAttract | ... | < Crate ] again\n \n However, I want the attraction rule to happen after player movement, and you can't apply movement in a late rule. So, I've had to be more hacky and explicit: every empty space in the grid is actually taken up by a transparent Floor object in the same layer as everything else. This helps me because in a late rule I can swap objects with no problems: < Crate becomes [ Floor | Crate ] -> [ Crate | Floor ].\n)\n\n(player movement)\n[ > Player | Floor ] -> [ Floor | Player ]\n\n(player action: switch polarity)\n[ ACTION PlayerAttract ] -> [ PlayerRepel ]\n[ ACTION PlayerRepel ] -> [ PlayerAttract ]\n\n(crate attraction)\nlate [ PlayerAttract | ... | Floor | Crate ] -> [ PlayerAttract | ... | Crate | Floor ] SFX0\n\n(crate repulsion)\nlate [ PlayerRepel | ... | Crate | Floor ] -> [ PlayerRepel | ... | Floor | Crate ] SFX1\n\n==============\nWINCONDITIONS\n==============\n\nSome Player on Goal\n\n=======\nLEVELS\n=======\n\nG......\n.......\n.......\n...P...\n.......\n.......\n...C...\n\nG......\n.......\n.......\n....P..\n.......\n...C...\n.......\n\nG......\n.......\n.......\n.......\n.......\n.......\nC.....P\n\nG......\n.......\n.......\n.......\n.......\nC.....P\n.......\n\nG......\n.......\n.......\n.......\n.......\n.......\nP.....C\n\nG..C...\n.......\n...#...\n...P...\n.......\n.......\n.......\n\nG..C...\n...#...\n.......\n...P...\n.......\n.......\n.......\n\n",[3,3,2,2,2,4],"background floor goal:0,background floor:1,1,1,1,1,1,\n1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,\n1,1,1,1,1,1,1,\n1,1,1,1,1,1,background crate:2,\n1,1,1,1,1,1,background playerattract:3,\n1,1,1,1,1,1,1,\n",0]
	],
	[
		"optimization that broke andrew's game",
		["title tiny treasure hunt 1.0\nauthor Weeble\nhomepage www.twitter.com/weeble\nrun_rules_on_level_start\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\nLowFloorRaw\nBLACK\n\nLowFloor1\n#111411 #191d19 #202020 #252725\n01011\n12310\n23320\n02321\n02110\n\nLowFloor2\n#111411 #191d19 #202020 #252725\n01001\n22312\n12331\n01310\n10101\n\nWallFacade\n#555555 #666666 #777777\n21221\n10011\n.....\n.....\n.....\n\nHighFloor\n#909090 #999999 #bbbbbb #cccccc\n33232\n31012\n20002\n31012\n32222\n\nLowPlayer\n#686868 #707070 #787878 #808080\n.....\n.....\n.232.\n.121.\n.0.0.\n\nHighCrate\n#dddd55 #eeee50 #cccc48\n10001\n00000\n10001\n22222\n22222\n\nMeltingIce\nWhite LightBlue #9999ff #330000\n.33..\n3333.\n31013\n11330\n21112\n\n\nStaticIce\nWhite LightBlue #9999ff\n10002\n1...0\n0...1\n10012\n21122\n\nIceCubeN\nWhite LightBlue #9999ff\n10002\n1...0\n0...1\n10012\n21122\n\nIceCubeE\nWhite LightBlue #9999ff\n10002\n1...0\n0...1\n10012\n21122\n\nIceCubeS\nWhite LightBlue #9999ff\n10002\n1...0\n0...1\n10012\n21122\n\nIceCubeW\nWhite LightBlue #9999ff\n10002\n1...0\n0...1\n10012\n21122\n\nFirePit1\n#990000 #770000 #550000 #330000\n02111\n13321\n02321\n32110\n23121\n\nFirePit2\n#990000 #770000 #550000 #330000\n10311\n21233\n11021\n23213\n20122\n\n\nPillar\n#cccccc #dddddd #eeeeee #ffffff #bbbbbb #aaaaaa\n32123\n33333\n02120\n22122\n01310\n\n\n \nStairsNorth\n#333333 #444444 #555555 #666666 #777777\n44444\n43334\n32223\n21112\n10001\n=======\nLEGEND\n=======\n. = LowFloorRaw\n\" = HighFloor\n@ = LowPlayer and LowFloorRaw\nH = HighCrate and HighFloor\n: = WallFacade and FirePit1 and LowFloorRaw\n~ = WallFacade and LowFloorRaw\n# = LowFloorRaw\nW = LowFloorRaw and WallFacade\n! = FirePit1 and LowFloorRaw\nI = Pillar and HighFloor\n% = StaticIce and LowFloorRaw\n& = StaticIce and LowFloorRaw and WallFacade\n/ = StairsNorth and LowFloorRaw\nFirePit = FirePit1 or FirePit2\nLowFloor = LowFloor1 or LowFloor2\nBackground = LowFloor or HighFloor or LowFloorRaw\nPlayer = LowPlayer\nObstacle = StairsNorth\nBlocksLow = HighFloor or StaticIce or Pillar\nPushable = StaticIce\nMovingIce = IceCubeE or IceCubeS or IceCubeW or IceCubeN\nIceCube = StaticIce or MovingIce\nGrounded = IceCube or LowPlayer\n\n=======\nSOUNDS\n=======\n\nSFX0 98605308 ( Hiss )\nSFX1 89033504 ( Snap )\nSFX2 70543502 ( Plink )\nSFX3 34905302 ( Slam )\nSFX4 93355705 ( Squeak )\nSFX5 52776702 ( Grind )\nSFX6 86238705 ( Bounce )\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nStairsNorth, FirePit\nWallFacade\nIceCube, MovingIce, LowPlayer, MeltingIce\nPillar, HighCrate\n\n======\nRULES \n====== \n\n(Pushing stuff)\nleft [ > LowPlayer | Pushable ] -> [ > LowPlayer | > Pushable ]\n\n(Ice melts in lava)\n[ MeltingIce FirePit ] -> [ ]\n[ IceCube FirePit ] -> [ MeltingIce FirePit ] sfx0 again\n\n(Ice slides)\nLEFT [ > StaticIce ] -> [ > IceCubeW ] sfx2\nLEFT [ IceCubeW ] -> [ > IceCubeW ] again\n\n==============\nWINCONDITIONS\n==============\n\n======= \nLEVELS\n=======\n\n.!%@\n\n\n",[1],"lowfloorraw:0,0,lowfloorraw lowplayer:1,0,\n",0]
	],
	[
		"simple sokobond test",
		["title Sokobond\nauthor Alan Hazelden, Port by Jonah Ostroff\ntext_color #444444\nbackground_color #EEEEEE\nkey_repeat_interval 0.25\nrun_rules_on_level_start\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground \n#FFFFFF #EEEEEE\n00000\n01010\n00000\n01010\n00000\n\nPlayer\nPink\n00000\n0...0\n0...0\n0...0\n00000\n\nAtom\nRed Black\n.....\n.111.\n.101.\n.111.\n.....\n\n=======\nLEGEND\n=======\n\n. = Background\n1 = Atom and Player \nC = Atom\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nAtom\nPlayer\n\n\n======\nRULES \n======\n\nright [ right Player Atom] -> [ right Player right Atom]\n\nRight [ right Atom | Atom] -> [ Right Atom | Right Atom]\n\n\n==============\nWINCONDITIONS\n==============\n\n======= \nLEVELS\n=======\n\n1C.\n\n",[3],"background:0,atom background player:1,atom background:2,\n",0]
	],
	[
		"loop length 1",
		["title Simple Block Pushing Game\nauthor Stephen Lavelle\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN GREEN\n11111\n01111\n11101\n11111\n10111\n\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\nBROWN DARKBROWN\n00010\n11111\n01000\n11111\n00010\n\nPlayer\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate\nOrange Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\nstartloop\nrandom [ background no player] -> [background player]\nendloop\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n\n",[3],"background player:0,0,0,0,0,0,\n0,0,0,0,background player target:1,0,\n0,0,0,1,0,0,\n0,0,0,0,0,0,\n0,0,0,0,0,0,\n0,0,0,0,0,0,\n0,0,0,0,0,0,\n",0]
	],
	[  	
		"loop length 1-b",
		["title Simple Block Pushing Game\nauthor Stephen Lavelle\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN GREEN\n11111\n01111\n11101\n11111\n10111\n\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\nBROWN DARKBROWN\n00010\n11111\n01000\n11111\n00010\n\nPlayer\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate\nOrange Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\nstartloop\nrandom [ background no player] -> [background player]\nendloop\n\nstartloop\nrandom [ background player] -> [background target]\nendloop\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n\n",[3],"background target:0,0,0,0,0,0,\n0,0,0,0,0,0,\n0,0,0,0,0,0,\n0,0,0,0,0,0,\n0,0,0,0,0,0,\n0,0,0,0,0,0,\n0,0,0,0,0,0,\n",0]
	],
	[
		"mirror loop test",
		["title laser pointer\nauthor n/a\nhomepage puzzlescript.namin.net\n\n\n========\nOBJECTS\n========\n\nBackground \nBlack Grey\n00000\n01110\n01110\n01110\n00000\n\nLight\nGreen\n\nMirrorS\nLightBlue Blue\n.....\n.010.\n.010.\n.010.\n.....\n\nMirrorCC\nLightBlue Blue\n.....\n.011.\n.101.\n.110.\n.....\n\nMirrorC\nLightBlue Blue\n.....\n.110.\n.101.\n.011.\n.....\n\nTarget\nGreen LightGreen\n01110\n10101\n11011\n10101\n01110\n\nPlayer\nOrange\n.....\n..0..\n.000.\n..0..\n.....\n\n=======\nLEGEND\n=======\n\nMirror = MirrorS or MirrorC or MirrorCC\n\n. = Background\nM = MirrorC\nR = MirrorCC\nS = MirrorS\nP = Player\nT = Target\n\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Target, Mirror\nLight\n\n======\nRULES \n======\n\n[ > Player | Mirror | no Mirror no Target] -> [ | Player | Mirror ]\n[ Mirror | > Player | no Mirror no Target ] -> [ | Mirror | Player ]\n[ Action Player ] -> [ down Light ]\n\nstartLoop\n\n[ > Light no Mirror | ] -> [ Light | > Light ]\n[ > Light MirrorC ] -> [ V Light ]\n[ > Light MirrorCC ] -> [ ^ Light ]\n[ > Light MirrorS ] -> [ < Light ]\n\nendLoop\n\n[ > Light ] -> [ Light ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Light\nNo Mirror\n\n======= \nLEVELS\n=======\n\n\n................\n................\n..........P.....\n................\n................\n.....T....R.....\n................\n................\n................\n................\n................\n................\n................\n...........T....\n\n",[4],"background:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,background target:1,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,background light:2,2,\n2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,2,\n0,0,0,0,0,0,0,1,0,0,0,0,0,2,0,0,\n0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,\n0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,\n0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,\n",0]
	],
	[
		"mirror + test",
		["title laser pointer\nauthor n/a\nhomepage puzzlescript.namin.net\n\n\n========\nOBJECTS\n========\n\nBackground \nBlack Grey\n00000\n01110\n01110\n01110\n00000\n\nLight\nGreen\n\nMirrorS\nLightBlue Blue\n.....\n.010.\n.010.\n.010.\n.....\n\nMirrorCC\nLightBlue Blue\n.....\n.011.\n.101.\n.110.\n.....\n\nMirrorC\nLightBlue Blue\n.....\n.110.\n.101.\n.011.\n.....\n\nTarget\nGreen LightGreen\n01110\n10101\n11011\n10101\n01110\n\nPlayer\nOrange\n.....\n..0..\n.000.\n..0..\n.....\n\n=======\nLEGEND\n=======\n\nMirror = MirrorS or MirrorC or MirrorCC\n\n. = Background\nM = MirrorC\nR = MirrorCC\nS = MirrorS\nP = Player\nT = Target\n\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Target, Mirror\nLight\n\n======\nRULES \n======\n\n[ > Player | Mirror | no Mirror no Target] -> [ | Player | Mirror ]\n[ Mirror | > Player | no Mirror no Target ] -> [ | Mirror | Player ]\n[ Action Player ] -> [ down Light ]\n\n[ > Light no Mirror | ] -> [ Light | > Light ]\n+[ > Light MirrorC ] -> [ V Light ]\n+[ > Light MirrorCC ] -> [ ^ Light ]\n+[ > Light MirrorS ] -> [ < Light ]\n\n\n[ > Light ] -> [ Light ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Light\nNo Mirror\n\n======= \nLEVELS\n=======\n\n\n................\n................\n..........P.....\n................\n................\n.....T....R.....\n................\n................\n................\n................\n................\n................\n................\n...........T....\n\n",[4],"background:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,background target:1,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,background light:2,2,\n2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,2,\n0,0,0,0,0,0,0,1,0,0,0,0,0,2,0,0,\n0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,\n0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,\n0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,\n",0]
	],
	[	
		"collapse simple",
		["title Collapse\nauthor Terry Cavanagh\nhomepage www.distractionware.com\n\ncolor_palette pastel\nyoutube 4XglYW89WLQ\n\nbackground_color Black\ntext_color LightRed\n\nnoaction\n\nflickscreen 16x10\n\n========\nOBJECTS\n========\n\nExit D\nBlack\n.....\n.....\n.....\n.....\n.....\n\nOutdoorBackground \nlightred\n\nIndoorBackground \nwhite lightgray \n11011\n11011\n11011\n11011\n11011\n\n\nWall W\nYellow Orange\n00000\n00010\n00000\n01000\n00000\n\nSolidWall Q\n#FF0000 #992222\n00000\n00001\n00111\n01111\n11111\n\nDoor X\nDarkBlue White Blue\n00200\n10201\n00200\n10201\n00200\n\nJettrail1\nDarkGray\n..0..\n.000.\n00.00\n.000.\n..0..\n\n\nJettrail2\nDarkGray\n.....\n..0..\n.0.0.\n..0..\n.....\n\nKey\nBlue\n.000.\n.0.0.\n.000.\n..0..\n.00..\n\nFlower F\nDarkBlue Green blue\n.22..\n2002.\n.22..\n..1..\n..1..\n\nMine M\nRed #BB0000\n10001\n01110\n11011\n01110\n10001\n\nBlood \n#FF0000 #AA0000\n10101\n01110\n11011\n01110\n10101\n\nBlood2 \n#FF0000 #AA0000\n01010\n10101\n01010\n10101\n01010\n\n\nPlayerDead\nRed Black\n10001\n10001\n00000\n10001\n10101\n\nPlayerGround P\nBlack\n.000.\n.000.\n00000\n.000.\n.0.0.\n\nPlayerHover\nBlack\n.000.\n00000\n.000.\n.000.\n0...0\n\nPlayerHoverLeft \nBlack\n.000.\n0000.\n.000.\n.000.\n..0.0\n\nPlayerHoverRight \nBlack\n.000.\n.0000\n.000.\n.000.\n0.0..\n\nTemp\nblack\n\n=======\nLEGEND\n=======\n\nBackground = OutdoorBackground or IndoorBackground\nPlayer = PlayerGround or PlayerHover or PlayerHoverLeft or PlayerHoverRight or PlayerDead\nInGamePlayer = PlayerGround or PlayerHover\nFlyingPlayer = PlayerHoverLeft or PlayerHoverRight\nObstacle = Wall or Mine or SolidWall or Door\nObstacleExMine = Wall or SolidWall or Door\n\n. = OutdoorBackground\n, = IndoorBackground\n# = Wall\nP = Player\nk = Key and IndoorBackground\n\n=======\nSOUNDS\n=======\n\nsfx0 53720504 (jump up)\nsfx1 14370308 (bomb)\nsfx2 41983504 (jetpack)\nsfx3 86827507 (fall)\nsfx4 56160703 (door)\nsfx5 98568902 (blockpush)\nsfx6 77665108 (collapse)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground \nJettrail1, Jettrail2, Exit\nPlayer, Wall, Solidwall, temp, playerhoverleft, playerhoverright, mine, Key, Flower, Door\nblood, blood2\n\n======\nRULES \n====== \n\nright [ moving Playerdead] -> [PlayerDead]\n\n[> IngamePlayer | mine ] -> [ > PlayerDead | blood ] sfx1\nVertical [ PlayerGround | mine ] -> [ playerdead | blood2 ] sfx1\nHorizontal [flyingplayer | mine ] -> [ playerdead | blood2 ] sfx1\n\nHorizontal [> PlayerGround | Key] [Door] -> [> PlayerGround | Key] []\nHorizontal [> PlayerGround | Key]-> [> PlayerGround | ] sfx4\n\nHorizontal [> PlayerGround | Flower] [Door] -> [> PlayerGround | Flower] []\nHorizontal [> PlayerGround | Flower]-> [> PlayerGround | ] sfx6\n\nUP [Up PlayerGround | No Obstacle | No Obstacle] -> [ | | PlayerHover ] sfx0\nUP [Up PlayerGround | No Obstacle] -> [ | PlayerHover ] sfx0\n\n\nright [right PlayerHover] -> [PlayerHoverRight]\nleft [left PlayerHover] -> [PlayerHoverLeft]\nup [up PlayerHover] -> [PlayerHover]\ndown [down PlayerHover] -> [PlayerGround]\n\ndown [JetTrail2] -> []\ndown [JetTrail1] -> [JetTrail2]\n\n(random rule here is a hack workaround)\nrandom right [ PlayerHoverRight | No Obstacle] -> [ JetTrail1 | PlayerHoverRight] again sfx2\nhorizontal [ PlayerHoverRight | ObstacleExMine] -> [ PlayerGround | ObstacleExMine]\ndown [ PlayerHoverRight | ObstacleExMine] -> [ PlayerGround | ObstacleExMine]\n\nrandom left [ PlayerHoverLeft | No Obstacle] -> [JetTrail1 | PlayerHoverLeft] again sfx2\nhorizontal [ PlayerHoverLeft | ObstacleExMine] -> [ PlayerGround | ObstacleExMine]\ndown [ PlayerHoverLeft | ObstacleExMine] -> [ PlayerGround | ObstacleExMine]\n\nhorizontal [> PlayerGround | Wall] -> [> PlayerGround | > wall] sfx5\nhorizontal [> Wall | Wall] -> [> Wall | > wall]\nhorizontal [> Wall | Mine] -> [> Wall | > Mine]\n\ndown [stationary wall] -> [ down wall] again\ndown [stationary mine] -> [ down mine] again\n\n[blood | no blood ] -> [blood | blood2] again\n[blood2 | no blood ] -> [blood2 | blood] again\n\nlate down [ PlayerGround | No Obstacle ] -> [ JetTrail1 | temp] again sfx3\nlate down [temp] -> [playerground]\n\n==============\nWINCONDITIONS\n==============\nNo Flower\nAll Player on Exit\n\n======= \nLEVELS\n=======\n\nMESSAGE The last flower...\nMESSAGE Will I find it on this planet?\n\nqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\nq,,,,,,,,,,,,,,qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\nq,,,,,,,,,,,,,,,,,,,,,,,q,,,,,,,,,,,,qqqqqqqqqqq\nq,,,,,,,,qq,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,x,D\nq,,,,,,,,qqqqqqqqqqqqq,,K,,,,,,,,,,,,,,,,,,,,x,D\nqqq,,,,,,qqqqqqqqqqqqq,,qqqqqqqqqqq,,,,,,,,,,x,D\nqqq,p,,,,qqqqqqqqqqqqq,,,,,,,,,,,,,,,,,,qqq,,x,D\nqqqqq,,,,qqqqqqqqqqqqq,,,,,,,,,,,,,,,,,,qqqqqqqq\nqqqqqmmmmqqqqqqqqqqqqqmqqmmmmmmmmmmmmmqqqqqqqqqq\nqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\n\nqq................q........q..........w....qmmmmmmq.............q\nqq..................w.................w....qmmmmmmq.............q\nqq...............q..w.................wm....qmmmmmq.............q\nqqq..............q..w.................ww....qmmmmqq...........f.q\nqqq..............qwww.......w.........ww.....qmmmq...........wwwq\nq.........ww......wqwmmw....w.........ww..w..qwqqq...........wwwq\nDP........ww......q.mqwww...w........wwwwwwwwwwwww...........wwwq\nqww.......ww........qqqqq...w.wwwww..wwwwwwwwwqwww..........wwwwm\nqwwwwm..wwwwwwwwwwwww.qqqqmmw.wwwwww.wwwwwwwwwqqww...q...wwwmwwwq\nqwwwwwwqwwwwmwwwwwmww.wqqqwwwwwwwwwwmwwwwwwwwwqqqqwwwwwwwwqwwwwwq\nmxxxxxxxxxxxxxxxxxxxxxxqxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxq\nm....................q.q................................m.......q\nm......................q................................q.......q\nm......................q........................................q\nm......................q........................................q\nm......................q........................w...............q\nm...............w......q........w............w..w...............q\nmmm.....m..m....w.mmmm.mmm...m..w....mm..m...wmmw..m.mm.....m...q\nmwmmmmmmm.mmwmmmmmmmmmmmmwmmmmmmmwmmmmwmmmmmmmmmmmmmmmmm.mmmmmm.q\nmmwmmmmwmmmmmmmmmwmmmwmmmmmmmwmmmmmmmmmmwmmmmmmmmmmmmmmmmmmmmmmmq\n\nMESSAGE Collapse\nMESSAGE Music [Cryptobiosis by Sync24]\nMESSAGE Thanks for playing\n",[3,3,3,0,3,3,1,0,3,0,1,0,3,0,3,1,1,0,1,0,1,1,"undo",0,1],"outdoorbackground solidwall:0,0,0,0,0,0,exit outdoorbackground:1,0,0,0,mine outdoorbackground:2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,outdoorbackground:3,3,outdoorbackground wall:4,4,4,door outdoorbackground:5,3,3,3,3,3,3,2,4,2,3,3,outdoorbackground playerground:6,0,0,3,3,4,4,4,5,3,3,3,3,3,3,2,2,4,3,3,3,3,3,\n3,3,3,4,4,5,3,3,3,3,3,3,3,2,2,3,3,3,3,3,3,3,3,4,4,5,3,3,3,3,3,3,3,2,2,3,3,3,3,3,3,3,3,2,4,5,3,3,3,3,3,3,3,2,2,3,3,3,3,3,3,3,3,3,4,\n5,3,3,3,3,3,3,3,2,2,3,3,3,3,3,3,3,3,3,0,5,3,3,3,3,3,3,3,2,4,3,3,3,3,3,3,3,3,4,4,5,3,3,3,3,3,3,2,2,2,3,3,3,3,3,3,3,3,4,4,5,3,3,3,3,\n3,3,3,3,2,3,3,3,3,3,3,4,4,4,4,5,3,3,3,3,3,3,3,2,2,3,3,3,3,3,4,4,4,4,4,5,3,3,3,3,3,3,2,2,2,3,3,3,3,3,3,3,4,4,2,5,3,3,3,3,3,3,3,4,2,\n3,3,3,3,3,3,3,3,4,4,5,3,3,3,3,3,3,3,2,2,3,3,3,3,3,3,3,3,4,4,5,3,3,3,3,3,3,3,2,2,3,3,3,3,3,3,3,3,4,4,5,3,3,3,3,3,3,3,2,2,3,3,3,3,3,\n3,3,3,4,4,5,3,3,3,3,3,4,4,2,2,3,3,0,0,0,3,3,3,4,4,5,3,3,3,3,3,3,3,2,4,0,3,3,3,4,4,0,3,4,2,5,3,3,3,3,3,3,2,2,2,3,3,3,3,4,0,3,3,4,4,\n5,3,3,3,3,3,3,2,2,2,3,4,4,4,4,4,2,0,4,4,5,3,3,3,3,3,3,2,2,2,3,3,3,3,3,2,0,0,3,3,5,0,3,3,3,3,3,2,2,4,3,3,3,3,3,2,4,0,0,4,5,3,3,3,3,\n3,3,3,2,2,3,3,3,3,3,4,4,0,0,0,0,0,0,0,0,0,0,2,2,2,3,3,3,3,3,3,4,0,0,0,5,3,3,3,3,3,3,2,2,2,3,3,3,3,3,3,3,3,0,0,5,3,3,3,3,3,3,2,4,2,\n3,3,3,3,3,3,3,3,2,4,5,3,3,3,3,3,3,3,2,2,0,3,3,3,3,3,3,3,2,4,5,3,3,3,3,3,3,3,2,2,3,3,3,3,4,4,4,4,4,4,5,3,3,3,3,3,3,3,2,2,3,3,3,3,3,\n3,3,3,3,4,5,3,3,3,3,3,3,2,2,4,3,3,3,3,3,3,3,4,4,4,5,3,3,3,3,3,3,3,2,2,3,3,3,3,3,3,3,4,4,4,5,3,3,3,3,3,3,3,2,2,3,3,3,3,3,3,3,4,4,4,\n5,3,3,3,3,3,4,4,2,2,3,3,3,3,3,3,3,4,4,4,5,3,3,3,3,3,3,3,4,2,3,3,3,3,3,3,3,4,4,4,5,3,3,3,3,3,3,3,2,2,3,3,3,3,3,3,3,3,4,4,5,3,3,3,3,\n3,3,3,2,2,3,3,3,3,3,3,3,3,3,2,5,3,3,3,3,3,3,3,2,2,3,3,3,3,3,3,4,4,4,4,5,3,3,3,3,3,3,2,2,2,4,4,4,4,4,4,4,4,4,4,5,3,3,3,3,3,3,2,4,2,\n3,3,2,4,4,4,4,4,4,4,5,3,3,3,3,3,3,3,2,2,3,3,3,3,3,3,4,4,4,4,5,3,3,3,3,3,3,3,2,4,3,3,3,3,3,3,4,4,4,4,5,3,3,3,3,3,3,2,2,2,3,3,3,3,3,\n4,4,4,4,4,5,3,3,3,3,3,3,3,2,2,0,0,3,3,3,3,4,4,4,4,5,3,3,3,3,3,3,3,2,2,2,2,0,0,3,3,4,4,4,4,5,3,3,3,3,3,3,3,2,2,2,2,2,2,0,0,4,4,4,4,\n5,3,3,3,3,3,4,4,2,2,2,2,2,2,2,4,4,0,0,0,5,3,3,3,3,3,3,2,2,2,2,2,2,2,2,0,4,4,0,0,5,3,3,3,3,3,3,2,2,2,2,2,2,2,2,0,4,4,4,0,5,3,3,3,3,\n4,4,4,2,2,2,2,2,0,0,0,4,4,4,0,5,3,3,3,3,3,3,3,2,2,0,0,0,0,3,3,3,3,3,4,5,3,3,3,3,3,3,3,2,2,3,3,3,3,3,3,3,3,3,4,5,3,3,3,3,3,3,2,2,2,\n3,3,3,3,3,3,3,3,3,4,5,3,3,3,3,3,3,3,2,2,3,3,3,3,3,3,3,3,0,4,5,3,3,3,3,3,3,2,2,2,3,3,3,3,3,3,3,3,3,4,5,3,3,3,3,3,3,2,2,2,3,3,3,3,3,\n3,3,3,3,4,5,3,3,3,3,3,3,3,2,2,3,3,3,3,3,3,3,3,3,4,5,2,0,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,4,4,5,3,3,3,3,3,3,3,2,2,3,3,3,3,3,3,3,3,4,0,\n5,3,3,3,3,3,3,3,2,2,3,3,3,3,3,3,3,3,4,4,5,3,3,3,3,3,3,3,2,2,3,3,3,3,3,3,3,4,2,4,5,3,3,3,3,3,3,2,2,2,3,3,3,3,4,4,4,4,4,4,5,3,3,3,3,\n3,3,3,2,2,3,3,3,flower outdoorbackground:7,4,4,4,4,4,4,5,3,3,3,3,3,3,3,2,2,3,3,3,3,4,4,4,4,4,4,5,3,3,3,3,3,3,3,3,2,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,\n",3]
	],
	[
		"collapse long",
		["title Collapse\nauthor Terry Cavanagh\nhomepage www.distractionware.com\n\ncolor_palette pastel\nyoutube 4XglYW89WLQ\n\nbackground_color Black\ntext_color LightRed\n\nnoaction\n\nflickscreen 16x10\n\n========\nOBJECTS\n========\n\nExit D\nBlack\n.....\n.....\n.....\n.....\n.....\n\nOutdoorBackground \nlightred\n\nIndoorBackground \nwhite lightgray \n11011\n11011\n11011\n11011\n11011\n\n\nWall W\nYellow Orange\n00000\n00010\n00000\n01000\n00000\n\nSolidWall Q\n#FF0000 #992222\n00000\n00001\n00111\n01111\n11111\n\nDoor X\nDarkBlue White Blue\n00200\n10201\n00200\n10201\n00200\n\nJettrail1\nDarkGray\n..0..\n.000.\n00.00\n.000.\n..0..\n\n\nJettrail2\nDarkGray\n.....\n..0..\n.0.0.\n..0..\n.....\n\nKey\nBlue\n.000.\n.0.0.\n.000.\n..0..\n.00..\n\nFlower F\nDarkBlue Green blue\n.22..\n2002.\n.22..\n..1..\n..1..\n\nMine M\nRed #BB0000\n10001\n01110\n11011\n01110\n10001\n\nBlood \n#FF0000 #AA0000\n10101\n01110\n11011\n01110\n10101\n\nBlood2 \n#FF0000 #AA0000\n01010\n10101\n01010\n10101\n01010\n\n\nPlayerDead\nRed Black\n10001\n10001\n00000\n10001\n10101\n\nPlayerGround P\nBlack\n.000.\n.000.\n00000\n.000.\n.0.0.\n\nPlayerHover\nBlack\n.000.\n00000\n.000.\n.000.\n0...0\n\nPlayerHoverLeft \nBlack\n.000.\n0000.\n.000.\n.000.\n..0.0\n\nPlayerHoverRight \nBlack\n.000.\n.0000\n.000.\n.000.\n0.0..\n\nTemp\nblack\n\n=======\nLEGEND\n=======\n\nBackground = OutdoorBackground or IndoorBackground\nPlayer = PlayerGround or PlayerHover or PlayerHoverLeft or PlayerHoverRight or PlayerDead\nInGamePlayer = PlayerGround or PlayerHover\nFlyingPlayer = PlayerHoverLeft or PlayerHoverRight\nObstacle = Wall or Mine or SolidWall or Door\nObstacleExMine = Wall or SolidWall or Door\n\n. = OutdoorBackground\n, = IndoorBackground\n# = Wall\nP = Player\nk = Key and IndoorBackground\n\n=======\nSOUNDS\n=======\n\nsfx0 53720504 (jump up)\nsfx1 14370308 (bomb)\nsfx2 41983504 (jetpack)\nsfx3 86827507 (fall)\nsfx4 56160703 (door)\nsfx5 98568902 (blockpush)\nsfx6 77665108 (collapse)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground \nJettrail1, Jettrail2, Exit\nPlayer, Wall, Solidwall, temp, playerhoverleft, playerhoverright, mine, Key, Flower, Door\nblood, blood2\n\n======\nRULES \n====== \n\nright [ moving Playerdead] -> [PlayerDead]\n\n[> IngamePlayer | mine ] -> [ > PlayerDead | blood ] sfx1\nVertical [ PlayerGround | mine ] -> [ playerdead | blood2 ] sfx1\nHorizontal [flyingplayer | mine ] -> [ playerdead | blood2 ] sfx1\n\nHorizontal [> PlayerGround | Key] [Door] -> [> PlayerGround | Key] []\nHorizontal [> PlayerGround | Key]-> [> PlayerGround | ] sfx4\n\nHorizontal [> PlayerGround | Flower] [Door] -> [> PlayerGround | Flower] []\nHorizontal [> PlayerGround | Flower]-> [> PlayerGround | ] sfx6\n\nUP [Up PlayerGround | No Obstacle | No Obstacle] -> [ | | PlayerHover ] sfx0\nUP [Up PlayerGround | No Obstacle] -> [ | PlayerHover ] sfx0\n\n\nright [right PlayerHover] -> [PlayerHoverRight]\nleft [left PlayerHover] -> [PlayerHoverLeft]\nup [up PlayerHover] -> [PlayerHover]\ndown [down PlayerHover] -> [PlayerGround]\n\ndown [JetTrail2] -> []\ndown [JetTrail1] -> [JetTrail2]\n\n(random rule here is a hack workaround)\nrandom right [ PlayerHoverRight | No Obstacle] -> [ JetTrail1 | PlayerHoverRight] again sfx2\nhorizontal [ PlayerHoverRight | ObstacleExMine] -> [ PlayerGround | ObstacleExMine]\ndown [ PlayerHoverRight | ObstacleExMine] -> [ PlayerGround | ObstacleExMine]\n\nrandom left [ PlayerHoverLeft | No Obstacle] -> [JetTrail1 | PlayerHoverLeft] again sfx2\nhorizontal [ PlayerHoverLeft | ObstacleExMine] -> [ PlayerGround | ObstacleExMine]\ndown [ PlayerHoverLeft | ObstacleExMine] -> [ PlayerGround | ObstacleExMine]\n\nhorizontal [> PlayerGround | Wall] -> [> PlayerGround | > wall] sfx5\nhorizontal [> Wall | Wall] -> [> Wall | > wall]\nhorizontal [> Wall | Mine] -> [> Wall | > Mine]\n\ndown [stationary wall] -> [ down wall] again\ndown [stationary mine] -> [ down mine] again\n\n[blood | no blood ] -> [blood | blood2] again\n[blood2 | no blood ] -> [blood2 | blood] again\n\nlate down [ PlayerGround | No Obstacle ] -> [ JetTrail1 | temp] again sfx3\nlate down [temp] -> [playerground]\n\n==============\nWINCONDITIONS\n==============\nNo Flower\nAll Player on Exit\n\n======= \nLEVELS\n=======\n\nMESSAGE The last flower...\nMESSAGE Will I find it on this planet?\n\nqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\nq,,,,,,,,,,,,,,qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\nq,,,,,,,,,,,,,,,,,,,,,,,q,,,,,,,,,,,,qqqqqqqqqqq\nq,,,,,,,,qq,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,x,D\nq,,,,,,,,qqqqqqqqqqqqq,,K,,,,,,,,,,,,,,,,,,,,x,D\nqqq,,,,,,qqqqqqqqqqqqq,,qqqqqqqqqqq,,,,,,,,,,x,D\nqqq,p,,,,qqqqqqqqqqqqq,,,,,,,,,,,,,,,,,,qqq,,x,D\nqqqqq,,,,qqqqqqqqqqqqq,,,,,,,,,,,,,,,,,,qqqqqqqq\nqqqqqmmmmqqqqqqqqqqqqqmqqmmmmmmmmmmmmmqqqqqqqqqq\nqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\n\nqq................q........q..........w....qmmmmmmq.............q\nqq..................w.................w....qmmmmmmq.............q\nqq...............q..w.................wm....qmmmmmq.............q\nqqq..............q..w.................ww....qmmmmqq...........f.q\nqqq..............qwww.......w.........ww.....qmmmq...........wwwq\nq.........ww......wqwmmw....w.........ww..w..qwqqq...........wwwq\nDP........ww......q.mqwww...w........wwwwwwwwwwwww...........wwwq\nqww.......ww........qqqqq...w.wwwww..wwwwwwwwwqwww..........wwwwm\nqwwwwm..wwwwwwwwwwwww.qqqqmmw.wwwwww.wwwwwwwwwqqww...q...wwwmwwwq\nqwwwwwwqwwwwmwwwwwmww.wqqqwwwwwwwwwwmwwwwwwwwwqqqqwwwwwwwwqwwwwwq\nmxxxxxxxxxxxxxxxxxxxxxxqxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxq\nm....................q.q................................m.......q\nm......................q................................q.......q\nm......................q........................................q\nm......................q........................................q\nm......................q........................w...............q\nm...............w......q........w............w..w...............q\nmmm.....m..m....w.mmmm.mmm...m..w....mm..m...wmmw..m.mm.....m...q\nmwmmmmmmm.mmwmmmmmmmmmmmmwmmmmmmmwmmmmwmmmmmmmmmmmmmmmmm.mmmmmm.q\nmmwmmmmwmmmmmmmmmwmmmwmmmmmmmwmmmmmmmmmmwmmmmmmmmmmmmmmmmmmmmmmmq\n\nMESSAGE Collapse\nMESSAGE Music [Cryptobiosis by Sync24]\nMESSAGE Thanks for playing\n",[3,3,0,3,3,1,0,3,0,3,1,0,1,0,1,0,1,0,3,3,3,3,1,0,3,0,3,"undo",1,3,3,0,3,0,1,3,3,3,1,0,1,0,3,1,3,3,3,0,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,3,1,0,1,0,3,3,1,1,1,0,1,1,3,0,1,0,1,"undo",2,1,1,0,1,1,0,1,1,1,1,0,1,3,3,3,0,3,0,3,3,3,3,3,3,3,0,3,0,3,0,0,1,0,1,"undo",2],"outdoorbackground solidwall:0,0,0,0,0,0,exit outdoorbackground:1,0,0,0,mine outdoorbackground:2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,outdoorbackground:3,3,3,3,3,3,3,3,3,outdoorbackground wall:4,4,4,2,4,2,3,3,3,0,0,3,3,3,3,3,3,3,3,3,4,4,4,2,2,4,3,3,3,3,3,\n3,3,3,3,3,3,3,3,3,3,3,4,4,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,4,2,2,3,3,3,3,3,3,3,3,3,3,\n3,3,3,3,3,3,3,4,2,2,3,3,3,3,3,3,3,3,3,0,3,3,3,3,3,3,3,3,2,4,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,\n3,3,4,4,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,2,2,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,2,4,2,\n3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,2,2,3,3,3,3,3,\n3,3,3,3,3,3,3,3,3,4,4,4,4,2,2,3,3,0,0,0,3,3,3,3,3,3,3,3,3,3,3,4,4,2,4,0,3,3,3,4,4,0,3,3,3,3,3,3,3,3,4,2,2,2,2,3,3,3,3,4,0,3,3,3,3,\n3,3,3,3,3,4,4,2,2,2,3,3,3,4,4,4,2,0,3,3,3,3,3,3,3,4,4,2,2,2,3,3,3,3,4,2,0,0,3,3,3,0,3,3,3,3,3,2,2,4,3,3,3,3,4,2,4,0,0,3,3,3,3,3,3,\n3,3,4,2,2,3,3,3,3,3,4,4,0,0,0,0,0,0,0,0,0,0,2,2,2,3,3,3,3,3,3,4,0,0,0,3,3,3,3,3,3,3,2,2,2,3,3,3,3,3,3,3,3,0,0,3,3,3,3,3,3,3,2,4,2,\n3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,4,2,2,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,4,2,2,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,2,2,3,3,3,3,3,\n3,3,3,3,3,3,3,3,3,3,3,4,2,2,4,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,2,2,3,3,3,3,3,3,3,3,3,3,\n3,3,3,3,3,4,4,4,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,\n4,4,4,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,2,2,2,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,2,4,2,\n3,3,3,3,3,3,3,3,3,3,3,3,3,2,4,4,4,4,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,2,4,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,2,2,2,3,3,3,3,3,\n3,3,3,3,3,3,3,3,3,4,4,4,4,2,2,0,0,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,2,2,2,2,0,0,3,3,3,3,3,3,3,3,3,3,4,4,4,4,2,2,2,2,2,2,0,0,3,3,3,3,\n3,3,3,4,4,4,4,4,2,2,3,2,2,2,2,2,4,0,0,0,3,3,3,3,3,4,4,2,2,2,2,2,2,2,2,0,3,4,0,0,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,0,3,4,4,0,3,3,3,3,3,\n4,4,4,2,2,2,2,2,0,0,0,3,4,4,0,3,3,3,3,3,3,3,3,2,2,0,0,0,0,3,3,3,3,3,3,3,3,3,3,4,4,4,4,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,2,2,2,\n3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,2,2,3,3,3,3,3,3,4,4,0,3,3,3,3,3,3,4,4,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,outdoorbackground playerground:5,4,4,4,2,2,2,3,3,3,3,3,\n3,3,3,3,3,3,3,3,3,3,3,4,4,2,2,3,3,3,3,3,3,3,3,3,3,4,2,0,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,2,2,3,3,3,3,3,3,3,3,4,0,\n3,3,3,3,3,3,3,3,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,2,4,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,\n4,4,4,2,2,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,2,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,\n",3]
	],
	[	
		"unnecessary number of rules sokobond",
		["title Sokobond: The Demake\nauthor Jonah Ostroff\nhomepage www.sokobond.com\ntext_color #333333\nbackground_color #F8F8F8\nkey_repeat_interval 0.25\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nBackground \n#FFFFFF #F8F8F8\n00000\n01010\n00000\n01010\n00000\n\nPlayer\n#FFBBEE\n00000\n0...0\n0...0\n0...0\n00000\n\nWall\nYellow White\n00000\n00000\n00000\n00000\n00000\n\nHydrogen\nRed Black\n.....\n.111.\n.101.\n.111.\n.....\n\nNitrogen\nGreen Black\n.....\n.111.\n.101.\n.111.\n.....\n\nOxygen\nBlue Black\n.....\n.111.\n.101.\n.111.\n.....\n\nCarbon\nYellow Black\n.....\n.111.\n.101.\n.111.\n.....\n\nHelium\nWhite Black\n.....\n.111.\n.101.\n.111.\n.....\n\n0Electron\nGray\n.....\n.....\n.....\n.....\n.....\n\n1Electron\nLightGray\n.....\n.0...\n.....\n.....\n.....\n\n2Electron\nLightGray\n.....\n...0.\n.....\n.0...\n.....\n\n3Electron\nLightGray\n.....\n.0.0.\n.....\n.0...\n.....\n\n4Electron\nLightGray\n.....\n.0.0.\n.....\n.0.0.\n.....\n\nBondU\nBlack\n..0..\n.....\n.....\n.....\n.....\n\nBondL\nBlack\n.....\n.....\n0....\n.....\n.....\n\nBondR\nBlack\n.....\n.....\n....0\n.....\n.....\n\nBondD\nBlack\n.....\n.....\n.....\n.....\n..0..\n\n\nBondUL\nBlack\n..0..\n.....\n0....\n.....\n.....\n\nBondUR\nBlack\n..0..\n.....\n....0\n.....\n.....\n\nBondUD\nBlack\n..0..\n.....\n.....\n.....\n..0..\n\nBondLR\nBlack\n.....\n.....\n0...0\n.....\n.....\n\nBondLD\nBlack\n.....\n.....\n0....\n.....\n..0..\n\nBondRD\nBlack\n.....\n.....\n....0\n.....\n..0..\n\nBondULR\nBlack\n..0..\n.....\n0...0\n.....\n.....\n\nBondULD\nBlack\n..0..\n.....\n0....\n.....\n..0..\n\nBondURD\nBlack\n..0..\n.....\n....0\n.....\n..0..\n\nBondLRD\nBlack\n.....\n.....\n0...0\n.....\n..0..\n\nBondULRD\nBlack\n..0..\n.....\n0...0\n.....\n..0..\n\nTemp1\nRed\n\nTemp2 (These are placeholders for various things.)\nGreen\n\nTemp3\nBlue\n\n\n=======\nLEGEND\n=======\n\nAtom = Hydrogen or Oxygen or Nitrogen or Carbon or Helium\nOrbital = 0Electron or 1Electron or 2Electron or 3Electron or 4Electron\nElectron = 1Electron or 2Electron or 3Electron or 4Electron\nUBond = BondU or BondUL or BondUR or BondUD or BondULR or BondULD or BondURD or BondULRD\nLBond = BondL or BondUL or BondLR or BondLD or BondULR or BondULD or BondLRD or BondULRD\nRBond = BondR or BondUR or BondLR or BondRD or BondULR or BondURD or BondLRD or BondULRD\nDBond = BondD or BondUD or BondLD or BondRD or BondULD or BondURD or BondLRD or BondULRD\n1Bond = BondU or BondL or BondR or BondD\n2Bond = BondUL or BondUR or BondUD or BondLR or BondLD or BondRD\n3Bond = BondULR or BondULD or BondURD or BondLRD\nBond = 1Bond or 2Bond or 3Bond or BondULRD\nTemps = Temp1 or Temp2 or Temp3\nAtomStuff = Bond or Orbital\n\n. = Background\n# = Wall\nH = Hydrogen\nO = Oxygen\nN = Nitrogen\nC = Carbon\nE = Helium\n0 = Helium and Player\n1 = Hydrogen and Player\n2 = Oxygen and Player\n3 = Nitrogen and Player\n4 = Carbon and Player\nP = Player\n\n=======\nSOUNDS\n=======\n\nSfx1 64050702 (Bonding sound)\nEndLevel 96545300 (End level)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer\nBond\nWall, Atom\nOrbital\nTemps\n\n======\nRULES \n======\n\n[Helium no Orbital] -> [Helium 0Electron]\n[Hydrogen no Orbital] -> [Hydrogen 1Electron]\n[Oxygen no Orbital] -> [Oxygen 2Electron]\n[Nitrogen no Orbital] -> [Nitrogen 3Electron]\n[Carbon no Orbital] -> [Carbon 4Electron]\n\n[> Player Atom] -> [> Player > Atom]\n\nUp [ Moving Atom UBond | Atom] -> [ Moving Atom UBond | Moving Atom]\n+ Left [ Moving Atom LBond | Atom] -> [ Moving Atom LBond | Moving Atom]\n+ Right [ Moving Atom RBond | Atom] -> [ Moving Atom RBond | Moving Atom]\n+ Down [ Moving Atom DBond | Atom] -> [ Moving Atom DBond | Moving Atom]\n+ [> Atom | Atom] -> [> Atom | > Atom]\n\n[ > Atom AtomStuff] -> [> Atom > AtomStuff]\n\n[ > Atom | Wall] -> Cancel\n\nLate Right [Electron no Temps no RBond|Electron no Temps no LBond] -> [Electron Temp1|Electron Temp2 Sfx1] (Bond horizontally.)\n+ Late [Temp1 no Bond] -> [Temp3 BondR]\n+ Late [Temp1 BondU] -> [Temp3 BondUR]\n+ Late [Temp1 BondL] -> [Temp3 BondLR]\n+ Late [Temp1 BondD] -> [Temp3 BondRD]\n+ Late [Temp1 BondUL] -> [Temp3 BondULR]\n+ Late [Temp1 BondUD] -> [Temp3 BondURD]\n+ Late [Temp1 BondLD] -> [Temp3 BondLRD]\n+ Late [Temp1 BondULD] -> [Temp3 BondULRD]\n+ Late [Temp2 no Bond] -> [Temp3 BondL]\n+ Late [Temp2 BondU] -> [Temp3 BondUL]\n+ Late [Temp2 BondR] -> [Temp3 BondLR]\n+ Late [Temp2 BondD] -> [Temp3 BondLD]\n+ Late [Temp2 BondUR] -> [Temp3 BondULR]\n+ Late [Temp2 BondUD] -> [Temp3 BondULD]\n+ Late [Temp2 BondRD] -> [Temp3 BondLRD]\n+ Late [Temp2 BondURD] -> [Temp3 BondULRD]\n+ Late [Temp3 1Electron] -> [0Electron]\n+ Late [Temp3 2Electron] -> [1Electron]\n+ Late [Temp3 3Electron] -> [2Electron]\n+ Late [Temp3 4Electron] -> [3Electron]\n\nLate Down [Electron no Temps no DBond|Electron no Temps no UBond] -> [Electron Temp1|Electron Temp2 Sfx1] (Bond vertically.)\n+ Late [Temp1 no Bond] -> [Temp3 BondD]\n+ Late [Temp1 BondU] -> [Temp3 BondUD]\n+ Late [Temp1 BondL] -> [Temp3 BondLD]\n+ Late [Temp1 BondR] -> [Temp3 BondRD]\n+ Late [Temp1 BondUL] -> [Temp3 BondULD]\n+ Late [Temp1 BondUR] -> [Temp3 BondURD]\n+ Late [Temp1 BondLR] -> [Temp3 BondLRD]\n+ Late [Temp1 BondULR] -> [Temp3 BondULRD]\n+ Late [Temp2 no Bond] -> [Temp3 BondU]\n+ Late [Temp2 BondL] -> [Temp3 BondUL]\n+ Late [Temp2 BondR] -> [Temp3 BondUR]\n+ Late [Temp2 BondD] -> [Temp3 BondUD]\n+ Late [Temp2 BondLR] -> [Temp3 BondULR]\n+ Late [Temp2 BondLD] -> [Temp3 BondULD]\n+ Late [Temp2 BondRD] -> [Temp3 BondURD]\n+ Late [Temp2 BondLRD] -> [Temp3 BondULRD]\n+ Late [Temp3 1Electron] -> [0Electron]\n+ Late [Temp3 2Electron] -> [1Electron]\n+ Late [Temp3 3Electron] -> [2Electron]\n+ Late [Temp3 4Electron] -> [3Electron]\n\n==============\nWINCONDITIONS\n==============\n\nNo Electron\n\n======= \nLEVELS\n=======\n\nMessage This is a demake of Sokobond by Alan Hazelden and Harry Lee.\n\nMessage Get the full version at www.sokobond.com!\n\n#########\n####....#\n####....#\n#....#H.#\n#...O#..#\n#.1.....#\n#....####\n#########\n\nMessage Water atoms are icosahedral.\n\n######\n#H..O#\n#....#\n#1.###\n######\n\nMessage The blue tint seen in large bodies of water comes from the pigment in the oxygen atoms.\n\n########\n###...##\n#2.H.H.#\n###...##\n########\n\nMessage The Earth's surface and the human body are both 70% water. That CAN'T be a coincidence, right?\n\n#######\n#..O..#\n#..#..#\n#.1#H.#\n#..#..#\n#..O..#\n#######\n\nMessage \"One hydrogen per oxide\" is defined as the speed at which atoms move.\n\n#######\n#.H.3.#\n#.....#\n#.H.H.#\n#######\n\nMessage Ammonia is an inflamatory condition of the lungs. \n\n#######\n#.....#\n#.....#\n#H#H#H#\n#.....#\n#..3..#\n#######\n\nMessage Hang on, I was thinking of \"pneumonia\".\n\n#########\n####4####\n###...###\n##.H.H.##\n#.......#\n##.H.H.##\n###...###\n####.####\n#########\n\nMessage 90% of all the methane in the world is produced in Arizona.\n\n#########\n##H...H##\n#...4...#\n##H...H##\n#########\n\nMessage Methane contains the name \"Ethan\". Do you think it was discovered by a guy named Ethan?\n\n########\n#......#\n#...H..#\n#O.H..3#\n#...H..#\n#......#\n########\n\nMessage Hydroxylamine contains almost every vowel of the alphabet almost exactly once.\n\n#########\n#.......#\n#..H.H..#\n#.2...C.#\n#..H.H..#\n#.......#\n#########\n\nMessage Methanol occurs naturally in peppermint oils.\n\n#######\n#.1.O.#\n#..#..#\n#.....#\n#..#..#\n#.H.O.#\n##...##\n#######\n\nMessage Hydrogen peroxide is less toxic than water, because the elements are more balanced.\n\n#######\n###H###\n###.###\n#..N..#\n#O...O#\n#.....#\n#.H.1.#\n#######\n\nMessage \"Bishydroxylamine\" is actually an onomatopoeic name, based on the sound the compound makes when exposed to water.\n\n#######\n#..#..#\n#H...H#\n#..C..#\n#..H..#\n##...##\n###1###\n#######\n\nMessage Methane rhymes with the name \"Bethany\".\n\n#########\n###...###\n###H.H###\n#.......#\n#...N...#\n#..#.#..#\n#.H.3.H.#\n#..#.#..#\n#.......#\n#########\n\nMessage Hydrazine is a magazine whose pages regrow whenever they are torn out.\n\n#########\n#..1.C..#\n#.......#\n#.H.H.H.#\n#.......#\n#########\n\nMessage Methane acting is a system of techniques developed by Lee Strasberg.\n\n#########\n#.......#\n#.H...0.#\n###.H.###\n###...###\n###.O.###\n#########\n\nMessage Helium is named after the Greek god Helios, who first discovered its existence.\n\n#########\n#.......#\n#.E.E.E.#\n###H.1###\n###.H.###\n###...###\n###.N.###\n#########\n\nMessage Inhaling helium contracts the ear drum, causing pitches to sound higher. Your voice is perceived normally by everyone else.\n\n#######\n###..##\n##..H.#\n#..N..#\n#.H..H#\n##..0.#\n#######\n\nMessage The first helium balloons were used at the wedding of Queen Victoria and Prince Albert, popularizing the term \"noble gas\". \n\n#######\n#.....#\n#..N..#\n#..0..#\n#H.H.H#\n#.#.#.#\n#.....#\n#######\n\nMessage Helium does not form chemical bonds with other elements, but it's the bonds of friendship that really matter.\n\n########\n#......#\n#...H#N#\n#......#\n##H#H.0#\n##.....#\n####...#\n########\n\nMessage Scientists have been searching for centuries to discover the missing elements between hydrogen and helium on the periodic table.\n\nMessage Thanks for playing! Go get the full version, which has lots of cool stuff that I couldn't write in PuzzleScript: www.sokobond.com\n",[0,2,2,"undo",1,2,3,2,1,0,0,3,0,3,0,0,1,1,1,1],"background wall:0,0,0,0,0,0,0,0,0,\n0electron background helium:1,background:2,0,0,0,0,0,0,0electron background bondr hydrogen:3,\n1,0,0,0,0,0,0,0electron background bondl hydrogen player:4,2,\n2,2,2,2,0,0,2,2,2,\n2,0electron background bondd hydrogen:5,2electron background bondu nitrogen:6,0,0,2,2,2,2,\n2,2,0,0,2,2,0,0,0,\n0,0,0,2,1,0,0,0,0,\n0,0,0,0,0,0,0,0,0,\n",34]
	],
	[
		"hos2",
		["title Heroes of Sokoban II: Monsters\nauthor Jonah Ostroff\ntext_color yellow\nkey_repeat_interval 0.25\n\n========\nOBJECTS\n========\n\nBackground \n#989898 #C8C8C8\n00000\n00100\n00000\n00010\n00000\n\nGoal \nBrown Yellow\n.000.\n00000\n00010\n00000\n00000\n\nWall\nDarkgrey #222222\n01000\n11111\n00010\n00010\n11111\n\nFighter (Warrior sounds better in-game, but I want different abbreviations for the classes in the editor.)\n#FF4444 Pink DarkBrown\n.000.\n.111.\n00000\n.000.\n.2.2.\n\nWizard\n#2266FF Pink\n.000.\n.010.\n00000\n.000.\n00000\n\nThief\n#66DD66 Pink DarkBrown\n.000.\n.010.\n00000\n.0.0.\n.0.0.\n\nPriest\n#FFFFAA Pink\n.000.\n.111.\n00000\n.000.\n00000\n\nSFighter \n#880000 Pink DarkBrown\n.000.\n.111.\n00000\n.000.\n.2.2.\n\nSWizard\n#000088 Pink\n.000.\n.010.\n00000\n.000.\n00000\n\nSThief\n#006600 Pink DarkBrown\n.000.\n.010.\n00000\n.0.0.\n.0.0.\n\nSPriest\n#B8B800 Pink\n.000.\n.111.\n00000\n.000.\n00000\n\nCrate \nOrange #552200\n.111.\n10001\n10001\n10001\n.111.\n\nYellowSwitch\nYellow Black\n.....\n.111.\n.101.\n.111.\n.....\n\nYellowOpen\nYellow\n0...0\n.....\n.....\n.....\n0...0\n\nYellowDoor\nYellow #AA7722\n01010\n10001\n00000\n10001\n01010\n\nPurpleSwitch\n#6611CC Black\n.....\n.111.\n.101.\n.111.\n.....\n\nPurpleDoor\n#6611CC #220088\n01010\n10001\n00000\n10001\n01010\n\nPurpleOpen\n#6611CC\n0...0\n.....\n.....\n.....\n0...0\n\nMonsterDoor\nDarkGrey #222222 Red\n21002\n22122\n20212\n20012\n21112\n\nWarpball\nBlue\n\nShadowDoor\nPurple\n\nDragonLeft\nGreen Red Orange Yellow DarkGreen\n.....\n1100.\n3210.\n1100.\n...4.\n\nDragonRight\nGreen Red Orange Yellow DarkGreen\n.....\n.0011\n.0123\n.0011\n.4...\n\nGoblin\nGreen DarkBrown DarkGreen\n0.2.0\n00000\n..0..\n.111.\n.1.1.\n\nDying\nWhite\n\nSaved\n#D8D800\n..0..\n.000.\n..0..\n..0..\n.....\n\nHasSaved\nYellow\n.....\n.....\n.....\n.....\n.....\n\nCorpse\n#CCC\n.000.\n.000.\n00000\n.0.0.\n.0.0.\n\nLFireball\nOrange\n\nRFireball\nOrange\n\nDidNotMove\nPurple\n\n=======\nLEGEND\n=======\n\nDragon = DragonLeft or DragonRight\nPlayer = Fighter or Wizard or Thief or Priest\nSPlayer = Swizard or Sthief or SFighter or SPriest\nHero = Player or Splayer\nHealer = Priest or SPriest (Unlike the other heroes, priests must function even when inactive. \"Healer\" is the generic term for an active or inactive priest.)\nClosedDoor = PurpleDoor or YellowDoor or MonsterDoor\nOpenDoor = YellowOpen or PurpleOpen\nSwitch = PurpleSwitch or YellowSwitch\nMonster = Dragon or Goblin\nMoveable = Crate or SPlayer or Monster\nStatic = Wall or ClosedDoor\nWeighing = Crate or Hero or Monster\nVulnerable = Hero or Monster\nInvulnerable = Crate or Static\nFireball = LFireball or RFireball\n. = Background\n# = Wall\nF = Fighter\nW = Wizard\nT = Thief\nP = Priest\n1 = SFighter\n2 = SThief\n3 = SWizard\n4 = SPriest\n* = Crate\nG = Goal\n[ = YellowDoor\n] = PurpleDoor\n{ = YellowSwitch\n} = PurpleSwitch\nL = DragonLeft\nR = DragonRight\nO = Goblin\nM = MonsterDoor\n\n=======\nSOUNDS\n=======\n\nMoveable move 82056307\nSfx0 21221308 (teleport)\nEndlevel 36315908\nSfx1 66399906 (switch player)\nSfx2 92172900 (close door)\nSfx3 15129100 (open door)\nSfx4 69860105 (saved)\nSfx5 63194902 (kill enemy)\nSfx6 81996702 (dying player)\nEndGame 86793500\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nWarpball, Dying\nGoal, Switch, OpenDoor, ShadowDoor\nClosedDoor, Hero, Crate, Wall, Monster, Corpse\nRFireball, Saved, DidNotMove\nLFireball, HasSaved\n\n======\nRULES \n====== \n[Saved] [Wall] -> [] [Wall HasSaved] (Remembering whether we saved someone last round by attaching a note to some wall.)\n\n[Corpse] -> Restart\n\n(Adds a DidNotMove to where the player currently is, to cancel moves where they bump into a wall.)\n\n[Player] -> [Player DidNotMove]\n\n[ > Fighter | Moveable ] -> [ > Fighter | > Moveable ] \n[ > Moveable | Moveable ] [ Fighter] -> [ > Moveable | > Moveable ] [ Fighter] (Fighters push.)\n\n[ < Thief | Moveable ] -> [ < Thief | < Moveable ] (Thieves pull.)\n\n[ > Wizard ] -> [ Wizard > Warpball]\n[ > Warpball | no Moveable no Static] -> [ | > Warpball]\n[ > Warpball | Static] [Wizard] -> [ | Static ] [> Wizard]\n[ > Warpball | Moveable ] [Wizard] -> [ | Wizard Sfx0] [Moveable] (Wizards telexport. What they really do is shoot a \"warpball\", which causes them to move normally if it hits a wall and warp if it hits something they can warp with.)\n\n(The following mess is for changing characters.)\n[ Action Fighter] [SThief] -> [SFighter] [Thief Sfx1]\n[ Action Thief] [SWizard] -> [SThief] [Wizard Sfx1]\n[ Action Wizard] [SPriest] -> [SWizard] [Priest Sfx1]\n[ Action Priest] [SFighter] -> [SPriest] [Fighter Sfx1]\n\n[ Action Fighter] [no SThief] [SWizard] -> [SFighter] [no SThief] [Wizard Sfx1]\n[ Action Thief] [no Swizard] [SPriest] -> [SThief] [no SWizard] [Priest Sfx1]\n[ Action Wizard] [no SPriest] [SFighter] -> [SWizard] [no SPriest] [Fighter Sfx1]\n[ Action Priest] [no SFighter] [SThief] -> [SPriest] [no SFighter] [Thief Sfx1]\n\n[ Action Fighter] [no SThief] [no SWizard] [SPriest] -> [SFighter] [no SThief] [no SWizard] [Priest Sfx1]\n[ Action Thief] [no SWizard] [no SPriest] [SFighter] -> [SThief] [no SWizard] [no SPriest] [Fighter Sfx1]\n[ Action Wizard] [no SPriest] [no SFighter] [SThief] -> [SWizard] [no SPriest] [no SFighter] [Thief Sfx1]\n[ Action Priest] [no SFighter] [no SThief] [SWizard] -> [SPriest] [no SFighter] [no SThief] [Wizard Sfx1]\n\n(Cancels the move if the player is in the same place that they started. Notice that switching characters negates this. Only matters in levels where one dragon has multiple targets.)\n\nLate [Player DidNotMove] -> Cancel\nLate [DidNotMove] -> []\n\n(Now enemies attack.)\n\nLate [DragonLeft] -> [LFireball DragonLeft]\nLate [DragonRight] -> [RFireball DragonRight]\n\nLate RIGHT [RFireball | No Vulnerable no Invulnerable] -> [ | RFireball]\nLate LEFT [LFireball | No Vulnerable no Invulnerable] -> [ | LFireball]\nLate RIGHT [RFireball | Vulnerable] -> [ | Dying Vulnerable]\nLate Right [RFireball | Invulnerable] -> [ | Invulnerable] \nLate Left [LFireball | Vulnerable] -> [ | Dying Vulnerable]\nLate LEFT [LFireball | Invulnerable] -> [ | Invulnerable]\n\nLate [Goblin | Vulnerable] -> [Goblin | Dying Vulnerable]\n\n(Vulnerable objects that are attacked are designated as \"Dying\", but heroes can be saved by the Priest. Then the stuff that didn't get saved dies.)\n\nLate [Dying Healer] -> [Saved Healer]\nLate [Healer | Dying Hero] -> [Healer | Saved Hero]\nLate [Dying Monster] -> [Sfx5]\nLate [Dying Hero] -> [Corpse Sfx6]\n\n(Doors opening.)\n\nlate [Weighing YellowSwitch] [YellowDoor] -> [Weighing YellowSwitch] [ShadowDoor]\nlate [YellowSwitch no Weighing] [YellowOpen] -> [YellowSwitch] [YellowDoor sfx2]\nlate [YellowSwitch no Weighing] [ShadowDoor] -> [YellowSwitch] [YellowDoor]\nlate [ShadowDoor] -> [YellowOpen sfx3]\n\nlate [Weighing PurpleSwitch] [PurpleDoor] -> [Weighing PurpleSwitch] [ShadowDoor]\nlate [PurpleSwitch no Weighing] [PurpleOpen] -> [PurpleSwitch] [PurpleDoor sfx2]\nlate [PurpleSwitch no Weighing] [ShadowDoor] -> [PurpleSwitch] [PurpleDoor]\nlate [ShadowDoor] -> [PurpleOpen sfx3]\n\nlate [MonsterDoor] -> [ShadowDoor]\nlate [ShadowDoor] [Monster] -> [MonsterDoor] [Monster]\nlate [ShadowDoor] -> [sfx3]\n\n(Looks for a HasSaved on a wall and moves it to the Priest. Then, if someone was saved this turn, plays the sound only if the Priest doesn't have the HasSaved note. Finally, cleans that up.)\n\nlate [Wall HasSaved] [Healer] -> [Wall] [Healer HasSaved]\nlate [Saved] [Healer no HasSaved] -> [Saved sfx4] [Healer]\nlate [HasSaved] -> []\n\n==============\nWINCONDITIONS\n==============\n\nAll Hero on Goal \nAll Goal on Hero\n\n======= \nLEVELS\n=======\n\nMessage Welcome back.\n\nMessage [You've played the original, yes?]\n\nMessage [If not, this might be confusing.]\n\n#############\n#.......[...#\n#.*.F.{.[.G.#\n#############\n#.......[...#\n#.*.2.{.[.G.#\n#############\n#.......[...#\n#.*.3.{.[.G.#\n#############\n\nMessage Watch out for goblins.\n\n#############\n#F.O.......O#\n#...O.......#\n#.......O...#\n#O..........#\n#....O......#\n#O.......O..#\n#.O.....O.G.#\n#############\n\n#############\n###O###O#####\n#W.*****...O#\n#..*****....#\n#####O###O..#\n#O########..#\n#*G...O.O...#\n##..O..O.O..#\n#############\n\nMessage Goblins attack each other too.\n\n#############\n#.......#...#\n#...*...#.G.#\n#.F...O.#...#\n#...*...##O##\n#...........#\n#############\n\nMessage Dragons breath fire.\n\n###############\n#.............#\n#..T..###.....#\n#.....L.#.....#\n#.......#.....#\n#.............#\n#.....#.......#\n#.....#.R..G..#\n#.....###.....#\n#.............#\n###############\n\nMessage Fire hurts enemies.\n\n##############\n#...#....O.RG#\n#.T.#......R.#\n#...#R*L...R.#\n#R*.#...#..R.#\n#...#...#..R.#\n#...O.*.#..R.#\n#.......#....#\n##############\n\n###########\n#3.O.O.O.T#\n#.#########\n#......G.G#\n#.#########\n#R.O.O.O.O#\n###########\n\nMessage Think fast!\n\n#############\n#R.O.O.O.O.T#\n###########{#\n###########]#\n#G#3.[.}.G#G#\n#]###########\n#{###########\n#1..O...O..L#\n#############\n\nMessage Sorry about that one.\n\n#######\n##G*G##\n##.G.##\n#R...##\n##...##\n##...##\n##...##\n##...L#\n##...##\n##F23##\n#######\n\nMessage Kill monsters to open the M wall.\n\n###########\n#L...R#...#\n#.....#...#\n#.....M.G.#\n#.T.*.#...#\n#.....#...#\n###########\n\n#############\n#.......#...#\n#..O.O..#...#\n#R......M.G.#\n#.*.F.*.#...#\n#.......#...#\n#############\n\n#############\n#.......#...#\n#.{.*.{.#...#\n#..W.O..M.G.#\n#.{.*.[.#...#\n#.......#...#\n#############\n\nMessage Yellow priest is protected.\n\n###########\n#...#O#O#O#\n#.P.......#\n#...**O**.#\n#********.#\n#R..G.....#\n###########\n\n###########\n#W#######G#\n#.#O#O#O#.#\n#.........#\n#.##O#O##.#\n#4#######G#\n###########\n\nMessage Heroes next to a priest are safe.\n\n############\n#...#.O#O###\n#.F.#......#\n#...#.##O..#\n#.4...O#G.G#\n#...#.##.O.#\n############\n\n############\n#.#..T..#4##\n#.#.{.*...L#\n#.#.....#..#\n#G[.*.{...L#\n#.#.....#..#\n#.#.{.*...L#\n#.#.....#G##\n############\n\n###########\n#W...O#...#\n#.....#.G.#\n#..4..M...#\n#.....#.G.#\n#O...O#...#\n###########\n\n###########\n#.T.##O#O##\n#.........#\n#.4.#O#O..#\n########.##\n#G..####.O#\n#G#.O###.##\n###.###O..#\n#O..O#....#\n##...*....#\n###########\n\n###########\n#{*F#.4#.3#\n#{*.#..#..#\n###[#[###.#\n#R[.......#\n####O#.##.#\n######.##.#\n#G.G.G.#O*#\n###########\n\n###########\n#.T.####O##\n#.3......O#\n#.4.###O.##\n#####O##.##\n#.G..*.O.##\n#G.G#O##.##\n###########\n\n###########\n##O#O#O#O##\n#T[.[.[.[.#\n##{#{#{#{.#\n#.........#\n#.3G*G*G4.#\n#.........#\n###########\n\nMessage The final challenge.\n\n#############\n#...#O.O#...#\n#.F.#G.G#.2.#\n#...#.O.#...#\n##.###*###.##\n#R*L.....R*L#\n#.#.......#.#\n#R*L.....R*L#\n##.###M###.##\n#...#...#...#\n#.3.#G.G#.4.#\n#...#...#...#\n#############\n\nMessage Thanks for playing!\n",[4,2,4,2,1,1,4,2,2,4,2,2,3,3,0,3,3,2,3,3,4,4,0,4,2,2,4,1,1,2,2,2,1,1,0,0,1,4,2],"background wall:0,0,0,0,0,0,0,0,0,0,background:1,1,\n1,background goal:2,1,1,1,0,0,0,0,0,background sthief yellowopen:3,0,\n0,0,0,0,1,1,1,1,1,1,1,0,\n0,1,background crate yellowswitch:4,1,1,1,4,1,0,0,1,1,\n1,1,1,1,1,0,0,1,1,1,4,1,\n1,1,0,0,1,1,1,1,1,1,1,0,\n0,0,1,0,1,0,1,0,0,0,1,1,\n1,1,1,1,background goal priest:5,0,0,0,background dragonleft:6,1,6,1,\n6,0,0,0,0,0,0,0,0,0,0,0,\n",27]
	],
	[
		"damn I'm huge",
		["title Dang I'm Huge\nauthor Guilherme Tows\nhomepage zarat.us\n\nrun_rules_on_level_start\nnoaction\nyoutube 7qGttcfFLBo\ncolor_palette atari\n\n========\nOBJECTS\n========\n\nBackground .\nBLACK\n\nTrampled\nDARKGRAY\n\nWall #\nRed\n\nBlock O\nBlue Black\n.000.\n01110\n00010\n00010\n.000.\n\nBlock1 B\nBlue Black\n.0000\n01111\n00000\n00000\n00000\n\nBlock2\nBlue Black\n0000.\n11110\n00010\n00010\n00010\n\nBlock3\nBlue Black\n00000\n00000\n00000\n00000\n.0000\n\nBlock4\nBlue Black\n00010\n00010\n00010\n00010\n0000.\n\nPlayerSmall @\nYellow Black\n.000.\n01010\n00000\n01110\n.000.\n\nPlayer1 P\nYellow Black\n..000\n.0000\n00010\n00010\n00000\n\nPlayer2 \nYellow Black\n000..\n0000.\n01000\n01000\n00000\n\nPlayer3 \nYellow Black\n00000\n00100\n00011\n.0000\n..000\n\nPlayer4 \nYellow Black\n00000\n00100\n11000\n0000.\n000..\n\nTarget X\nPurple\n0...0\n.0.0.\n..0..\n.0.0.\n0...0\n\nZapSmall *\nDarkGreen\n.000.\n00000\n00000\n00000\n.000.\n\nZapSmallOff\nDarkRed\n.000.\n00000\n00000\n00000\n.000.\n\nZap1 Z\nDarkGreen\n..000\n.0000\n00000\n00000\n00000\n\nZap2\nDarkGreen\n000..\n0000.\n00000\n00000\n00000\n\nZap3\nDarkGreen\n00000\n00000\n00000\n.0000\n..000\n\nZap4\nDarkGreen\n00000\n00000\n00000\n0000.\n000..\n\nZap1Off\nDarkRed\n..000\n.0000\n00000\n00000\n00000\n\nZap2Off\nDarkRed\n000..\n0000.\n00000\n00000\n00000\n\nZap3Off\nDarkRed\n00000\n00000\n00000\n.0000\n..000\n\nZap4Off\nDarkRed\n00000\n00000\n00000\n0000.\n000..\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nAnything = PlayerSmall or Player1 or Player2 or Player3 or Player4 or Block or Block1 or Block2 or Block3 or Block4\nPlayer = PlayerSmall or Player1 or Player2 or Player3 or Player4\nPlayerBig = Player1 or Player2 or Player3 or Player4\nPushable = Block or Block1 or Block2 or Block3 or Block4\nBlockBig = Block1 or Block2 or Block3 or Block4\nSolid = Pushable or Wall\nO = Block\n0 = Block and Target\n\n=======\nSOUNDS\n=======\n\nBlock MOVE 36772507\nBlockBig MOVE 99321507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTrampled\nTarget, ZapSmall, Zap1, Zap2, Zap3, Zap4, ZapSmallOff, Zap1Off, Zap2Off, Zap3Off, Zap4Off\nPlayerSmall, Player1, Player2, Player3, Player4, Wall, Block, Block1, Block2, Block3, Block4\n\n======\nRULES\n======\n\nright [ Block1 | no Block2 ] -> [ Block1 | Block2 ] \ndown [ Block1 | no Block3 ] -> [ Block1 | Block3 ] \ndown [ Block2 | no Block4 ] -> [ Block2 | Block4 ] \n\nright [ Zap1 | no Zap2 ] -> [ Zap1 | Zap2 ] \ndown [ Zap1 | no Zap3 ] -> [ Zap1 | Zap3 ] \ndown [ Zap2 | no Zap4 ] -> [ Zap2 | Zap4 ] \n\nright [ Player1 | no Player2 ] -> [ Player1 | Player2 ] \ndown [ Player1 | no Player3 ] -> [ Player1 | Player3 ] \ndown [ Player2 | no Player4 ] -> [ Player2 | Player4 ] \n\nrigid [ > PlayerBig | BlockBig ] -> [ > PlayerBig | > BlockBig ] \n+ rigid right [ Moving Block1 | Block2 ] -> [ Moving Block1 | MOVING Block2 ]\n+ rigid down [ Moving Block1 | Block3 ] -> [ Moving Block1 | MOVING Block3 ]\n+ rigid left [ Moving Block2 | Block1 ] -> [ Moving Block2 | MOVING Block1 ]\n+ rigid down [ Moving Block2 | Block4 ] -> [ Moving Block2 | MOVING Block4 ]\n+ rigid right [ Moving Block3 | Block4 ] -> [ Moving Block3 | MOVING Block4 ]\n+ rigid up [ Moving Block3 | Block1 ] -> [ Moving Block3 | MOVING Block1 ]\n+ rigid left [ Moving Block4 | Block3 ] -> [ Moving Block4 | MOVING Block3 ]\n+ rigid up [ Moving Block4 | Block2 ] -> [ Moving Block4 | MOVING Block2 ]\n\n[ > PlayerBig | Stationary BlockBig ] -> [ PlayerBig | Stationary BlockBig ] \n\n[ > PlayerBig | Block | Block | no Solid ] -> [ > PlayerBig | > Block | > Block | ]\n[ > Player | Block | no Solid ] -> [ > Player | > Block | ]\n\n[ > Player | Stationary Solid ] -> [ Player | Solid ]\n\n[ MOVING Player ] [ STATIONARY Player ] -> [ Player ] [ Player ]\n[ STATIONARY Player ] [ MOVING Pushable ] -> [ Player ] [ Pushable ]\n\nlate [ Player1 Zap1 ] [ Player2 Zap2 ] [ Player3 Zap3 ] [ Player4 Zap4 ] [ ZapSmall ] -> [ Zap1Off ] [ Zap2Off ] [ Zap3Off ] [ Zap4Off ] [ PlayerSmall ZapSmallOff ] \n\nlate [ Zap1 no Anything ] [ Zap2 no Anything ] [ Zap3 no Anything ] [ Zap4 no Anything ] [ PlayerSmall ZapSmall ] -> [ Player1 Zap1Off ] [ Player2 Zap2Off ] [ Player3 Zap3Off ] [ Player4 Zap4Off ] [ ZapSmallOff ]\n\nlate [ Block1 Zap1 ] [ Block2 Zap2 ] [ Block3 Zap3 ] [ Block4 Zap4 ] [ ZapSmall no Anything ] -> [ Zap1Off ] [ Zap2Off ] [ Zap3Off ] [ Zap4Off ] [ Block ZapSmallOff ] \n\nlate [ Zap1 no Anything ] [ Zap2 no Anything ] [ Zap3 no Anything ] [ Zap4 no Anything ] [ Block ZapSmall ] -> [ Block1 Zap1Off ] [ Block2 Zap2Off ] [ Block3 Zap3Off ] [ Block4 Zap4Off ] [ ZapSmallOff ]\n\nlate [ ZapSmallOff no Anything ] [ Zap1Off no Anything ] [ Zap2Off no Anything ] [ Zap3Off no Anything ] [ Zap4Off no Anything ] -> [ ZapSmall ] [ Zap1 ] [ Zap2 ] [ Zap3 ] [ Zap4 ]\n\n(late [ Player no Trampled ] -> [ Player Trampled ])\n==============\nWINCONDITIONS\n==============\n\nall Target on Pushable\n\n=======\nLEVELS\n=======\n\nmessage gotta get huge\n\n\n############\n#........p.#\n#..........#\n###.oob..###\n###.oo...###\n###......###\n###......###\n#xx......xx#\n#xx......xx#\n############\n\nmessage huge huge huge\n\n########\n#....#*#\n#....#.#\n#....#.#\n#....#@#\n#...oo.#\n###..#.#\n###..#.#\n###z.#.#\n###..#x#\n########\n\nmessage a huge saved is a huge earned\n\n############\n#*.......o@#\n#..........#\n#xx....z...#\n#xx........#\n############\n\nmessage pledge allegiance to the huge\n\n##########..\n#........#..\n#@.o####.#..\n###.##*#.###\n#z.....b...#\n#...o......#\n######.#.###\n######.#.#..\n#x.......#..\n##########..\n\nmessage i am so huge it hurts\n\n############\n#.....b....#\n#..........#\n#..##.##o###\n#...#.##.###\n#...#.*..@x#\n#.z.########\n##.o#.......\n##.x#.......\n#####.......\n\nmessage live by the huge die by the huge\n\n#########\n#...*..x#\n#..######\n##....o.#\n##..#..@#\n##......#\n#####.o.#\n#....o###\n#z...o.##\n#....o.##\n#########\n\nmessage the good the bad and the huge\n\n###########\n####*.x####\n#####x#####\n#..xx.xx..#\n#..xx.xx..#\n#...o.o...#\n#.ooo.ooo.#\n#...o.o...#\n#z......p.#\n#.........#\n###########\n\nmessage in huge we trust\n\n####.....####.\n#..#.....#..#.\n#..#######..#.\n#.......o0..##\n#........#z..#\n#..####..#...#\n#....#...##..#\n#..#.#.......#\n#..#.0o......#\n#..#.#####..##\n#.@....b....#.\n#...........#.\n##....########\n.#.........*x#\n.#############\n\nmessage my bigness is perfection\n\n",[1,0,0,0,0,1,1,1,2,2,2,1,1,3,3,2,1,1,1,2,3,"restart",1,1,1,0,0,3,3,0,0,0,1,3,2,2,2,1,1,1,0,3,0,0,3,1,"undo","undo","undo","undo",0,0,"undo",3,3,0,1,0,0,2,2,2,1,1,1,0,0,3,1,1,3,2,2,2,1,1,0,0,3,3,3,3,0,0,2,1,1,2,1,0,3,3,3,0,1,1,0,2,2,2,1,2,1,1,1,1,3,2,2,2],"background wall:0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,background:1,1,1,background block:2,1,background zap1:3,background zap3:4,0,\n0,0,0,1,1,2,1,1,background zap2:5,background zap4:6,0,\n0,0,0,background target:7,background block target:8,1,1,1,1,1,0,\n0,background zapsmall:9,0,8,8,1,1,1,1,1,0,\n0,1,background playersmall target:10,2,2,1,1,1,1,1,0,\n0,7,0,7,7,1,1,1,1,1,0,\n0,0,0,8,7,1,1,1,1,1,0,\n0,0,0,2,1,1,2,1,1,1,0,\n0,0,0,1,1,1,1,1,1,1,0,\n0,0,0,0,0,0,0,0,0,0,0,\n",13]
	],
	[
		"rule application hat test",
		["title Tiny but with massive hats\nauthor Weeble\nhomepage www.puzzlescript.net\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nLowFloor\nDARKGREY\n\nWall\n#bbbbbb\n\nLowPlayerTop\nWHITE BLACK\n.....\n.111.\n.111.\n.111.\n.111.\n\nLowPlayer\nWHITE BLACK\n11111\n.000.\n.000.\n.0.0.\n.....\n\n\n=======\nLEGEND\n=======\n\n. = LowFloor\n# = Wall\nP = LowPlayer\nPlayer = LowPlayer\nBackground = LowFloor or Wall\n\nTop = LowPlayerTop\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nLowPlayer, Wall\nLowPlayerTop\n\n======\nRULES\n======\n\n(Destroy all tops. We'll recreate them at the end after movement.)\n[ Top ] -> []\n\n(Re-assemble tops)\nlate down [ no LowPlayerTop | LowPlayer ] -> [ LowPlayerTop | LowPlayer ]\n\n==============\nWINCONDITIONS\n==============\n\n=======\nLEVELS\n=======\n\n.\nP\n\n",[1],"lowfloor lowplayertop:0,\nlowfloor lowplayer:1,\n",0]
	],
	[
		"ortho test 1",
		["title orthogonal rule test\n\n========\nOBJECTS\n========\n\nBackground .\nLIGHTGREEN GREEN\n11111\n01111\n11101\n11111\n10111\n\nPlayer p\nPink\n\nDiamond \nBlue\n.....\n.....\n..0..\n.....\n.....\n\nCrate\nOrange\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n=======\nSOUNDS\n=======\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer\nCrate\nDiamond\n\n======\nRULES\n======\n\n[ Diamond ] -> [ ]\n[ Crate ] -> [ ]\n\n[ Action Player ] [ ] -> [ Action Player ] [ Diamond ]\n[ ORTHOGONAL Player ] [ ] -> [ ORTHOGONAL Player ] [ Crate ]\n\n==============\nWINCONDITIONS\n==============\n=======\nLEVELS\n=======\n\nmessage press x to incorrectly trigger orthogonal rule?\n.....\n.....\n..p..\n.....\n.....\n\n",[4],"background diamond:0,0,0,0,0,\n0,0,0,0,0,\n0,0,background diamond player:1,0,0,\n0,0,0,0,0,\n0,0,0,0,0,\n",1]
	],
	[ 
		"ortho test 2",
		["title orthogonal rule test\n\n========\nOBJECTS\n========\n\nBackground .\nLIGHTGREEN GREEN\n11111\n01111\n11101\n11111\n10111\n\nPlayer p\nPink\n\nDiamond \nBlue\n.....\n.....\n..0..\n.....\n.....\n\nCrate\nOrange\n00000\n0...0\n0...0\n0...0\n00000\n\n=======\nLEGEND\n=======\n=======\nSOUNDS\n=======\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer\nCrate\nDiamond\n\n======\nRULES\n======\n\n[ Diamond ] -> [ ]\n[ Crate ] -> [ ]\n\n[ Action Player ] [ ] -> [ Action Player ] [ Diamond ]\n[ ORTHOGONAL Player ] [ ] -> [ ORTHOGONAL Player ] [ Crate ]\n\n==============\nWINCONDITIONS\n==============\n=======\nLEVELS\n=======\n\nmessage press x to incorrectly trigger orthogonal rule?\n.....\n.....\n..p..\n.....\n.....\n\n",[1],"background crate:0,0,0,0,0,\n0,0,background crate player:1,0,0,\n0,0,0,0,0,\n0,0,0,0,0,\n0,0,0,0,0,\n",1]
	],
	[
		"too many rigid bodies",
		["title Way Too Many Rigid Bodies\nauthor Guilherme Tows/Scott Hughes\n\n(\nusable in the case where there's only a single player that's pushing stuff around.\n)\n\nrun_rules_on_level_start\n\n=======\nOBJECTS\n=======\n\nBackground\nwhite\n\nPlayer\npink\n\nBoxN\nwhite\n..0..\n..0..\n..0..\n.....\n.....\n\nBoxE\nwhite\n.....\n.....\n..000\n.....\n.....\n\nBoxS\nwhite\n.....\n.....\n..0..\n..0..\n..0..\n\nBoxW\nwhite\n.....\n.....\n000..\n.....\n.....\n\nBox1 1\nBlue\n\nBox2 2\nRed\n\nBox\nRed\n\nWall\ngrey\n\n======\nLEGEND\n======\n\n. = Background\n@ = Player\n1 = Box1\n2 = Box2\n# = Wall\n\nBoxSpawn = Box1 or Box2\nBoxDir = BoxN or BoxE or BoxS or BoxW\n\n======\nSOUNDS\n======\n\n===============\nCOLLISIONLAYERS\n===============\n\nBackground\nPlayer, Box, BoxSpawn, Wall\nBoxN\nBoxE\nBoxS\nBoxW\n\n=====\nRULES\n=====\n\nright [ Box1 no BoxE | Box1 no BoxW ] -> [ Box1 BoxE | Box1 BoxW ] \ndown [ Box1 no BoxS | Box1 no BoxN ] -> [ Box1 BoxS | Box1 BoxN ] \nright [ Box2 no BoxE | Box2 no BoxW ] -> [ Box2 BoxE | Box2 BoxW ] \ndown [ Box2 no BoxS | Box2 no BoxN ] -> [ Box2 BoxS | Box2 BoxN ] \n[ BoxSpawn ] -> [ Box ]\n\n[ > Player | Box ] -> [ > Player | > Box ]\n\nstartloop\n\n[ > Box stationary BoxDir ] -> [ > Box > BoxDir ]\n\nup [ moving BoxN | stationary Box ] -> [ moving BoxN | moving Box ]\nright [ moving BoxE | stationary Box ] -> [ moving BoxE | moving Box ]\ndown [ moving BoxS | stationary Box ] -> [ moving BoxS | moving Box ]\nleft [ moving BoxW | stationary Box ] -> [ moving BoxW | moving Box ]\n\n[ > Box | Box ] -> [ > Box | > Box ]\n\nendloop\n\n[ > Box | Wall ] -> cancel\n\n=============\nWINCONDITIONS\n=============\n\n======\nLEVELS\n======\n\n##############################\n#..11###.........11###.......#\n#..22#222..##....22#222..##..#\n#21.11211...#2.21.11211...#2.#\n#2..@..222..#2.2.....222..#2.#\n##.....21...22.#.....21...22.#\n#1..2..11.12...1..2..11.12...#\n#1.22.....121111.22.....12111#\n#..2.....11......2.....11....#\n#.21.1.....22.#.21.1.....22.##\n#.22111.122.2...22111.122.2..#\n#..#...112.1.....#...112.1...#\n#..11.....211....11.....211..#\n#..22.222.2##....22.222.2##..#\n#21.11211...#2.21.11211...#2.#\n#2.....222..#2.2.....222..#2.#\n##.....21...22.#.....21...22.#\n#1..2..11.12...1..2..11.12...#\n#1.22.....121111.22.....12111#\n#..2.111.11......2.111.11....#\n#.21.121...22.#.21.121...22.##\n#.22.111..##2...22.111..##2..#\n#..#.....##......#.....##....#\n##############################\n",[2,2,2,3,2,1,0,1,2,1,2,3,3,0,2,3,2,2,2,2,3,3,3,3,2,2,2,2,3,0,3,3,2,1,1,1,0,1,2,2,2,2,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,3,3,3,3,3,3,2,2,2,2,3,3,3,2,2,1,1,1,2,2,2,2,2,0,3,2,3,0,0,0,0,0],"background wall:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background:1,1,background box boxs:2,background box boxn:3,0,\n2,3,1,1,1,1,1,background box boxe:4,2,3,0,2,3,1,1,1,1,0,0,1,1,background box:5,1,1,1,1,1,2,background box boxe boxn:6,1,\n2,background box boxe boxn boxw:7,5,1,1,1,1,1,2,6,1,0,0,4,4,1,1,1,1,1,1,5,background box boxw:8,0,1,8,4,4,1,1,\nbackground box boxe boxs:9,3,5,8,0,0,0,8,8,4,1,1,1,1,1,1,1,1,1,1,8,8,4,2,background box boxn boxw:10,1,1,1,1,0,\n0,0,0,8,1,1,1,1,1,1,1,1,1,1,9,3,8,1,1,1,9,background box boxn boxs:11,6,0,0,0,9,3,1,1,\n1,1,1,1,1,1,1,2,10,9,3,1,1,1,background box boxe boxw:12,5,12,0,0,0,12,4,9,3,4,1,1,1,1,1,\n1,1,1,12,4,9,3,4,background box boxs boxw:13,11,10,0,0,1,8,8,12,2,10,1,1,1,1,1,1,1,1,8,8,12,\n2,10,1,1,1,0,0,1,1,1,8,1,1,1,4,1,1,1,1,1,4,1,1,8,1,4,1,1,0,0,\n0,1,1,1,1,1,2,11,10,1,1,1,1,2,10,2,3,2,11,10,1,0,0,0,0,1,0,1,1,1,\n2,3,1,1,9,3,1,0,1,1,1,2,3,1,4,0,1,0,0,1,0,0,0,4,1,4,1,4,8,1,\n1,0,0,0,4,1,4,1,13,3,1,0,0,1,1,2,11,10,1,12,1,13,3,1,1,1,2,11,10,1,\n12,1,1,1,1,0,0,1,1,1,1,1,1,12,1,0,1,1,1,1,1,1,1,1,12,1,0,1,1,0,\n0,1,1,2,3,0,2,10,1,1,1,1,1,1,2,3,0,2,10,1,1,1,1,0,0,1,1,5,1,1,\n1,1,1,2,6,2,6,1,5,1,1,1,9,3,2,6,1,0,0,4,4,1,1,1,1,9,3,5,8,0,\n8,1,1,1,1,2,10,1,5,8,0,0,0,8,8,4,1,1,2,10,1,1,4,1,4,1,1,1,4,1,\n1,1,1,1,1,0,0,0,0,8,1,1,1,1,1,2,7,1,8,4,1,1,8,1,1,1,1,1,1,0,\n0,0,9,3,1,1,1,1,1,1,8,1,1,8,9,11,6,background player:14,1,1,1,1,1,0,0,0,12,4,9,3,\n4,1,4,9,3,1,1,1,12,5,12,1,1,1,1,1,1,0,0,1,8,8,12,2,10,2,10,12,4,9,\n3,4,13,11,10,1,1,1,1,1,1,0,0,1,1,1,8,1,4,9,3,8,8,12,2,10,1,1,1,1,\n1,4,1,1,0,0,0,1,1,1,2,11,10,8,1,2,3,8,1,1,1,1,1,2,11,10,1,0,0,0,\n0,1,0,1,1,1,2,3,1,4,1,2,6,0,1,1,1,2,3,1,4,0,1,0,0,1,0,0,0,4,\n1,4,1,13,3,1,8,0,0,0,4,1,4,1,13,3,1,0,0,1,1,2,11,10,1,12,1,1,1,1,\n1,1,2,11,10,1,12,1,1,1,1,0,0,1,1,1,1,1,1,8,1,0,1,1,1,1,1,1,1,1,\n8,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n",0]
	],
	[
		"don't mask movements if no movements happening",
		["title Shield Game\nauthor Alan Hazelden\nhomepage www.draknek.org\nrequire_player_movement\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground \nGREEN \n\nPlayer \nBlue\n.....\n..0..\n.000.\n.0.0.\n.....\n\nShieldR\nDarkBlue\n.....\n....0\n....0\n....0\n.....\n\n\n=======\nLEGEND\n=======\n\n. = Background\nP = Player and ShieldR\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer\nShieldR\n\n======\nRULES \n====== \n\nright [ right Player ShieldR ] -> [ right Player right ShieldR ]\n\nright [ > Player ShieldR ] -> [ > Player ShieldR ]\n\n==============\nWINCONDITIONS\n==============\n\n======= \nLEVELS\n=======\n\nP.\n\n",[3],"background:0,background player shieldr:1,\n",0]
	],
	[
		"zen puzzle garden",
		["title Zen Puzzle Garden\nauthor lexaloffle\nhomepage www.lexaloffle.com\n\n(\n\nA replication, with some really bad levels, of the rather superior Zen Puzzle Garden. Made with permission of the unfailingly lovely Joseph White.\n\nhttp://www.lexaloffle.com/zen.htm\n\n)\n\n========\nOBJECTS\n========\n\nBackground\norange brown\n00100\n00000\n00010\n10000\n00000\n\nPlayer\nwhite black\n.0.0.\n01010\n00000\n.000.\n11.11\n\nRock\ngrey darkgrey yellow\n21002\n11000\n11000\n11000\n11101\n\n\nUnbrushedSand\nyellow orange\n00000\n01000\n00000\n00010\n00000\n\nHBrushedSand\nyellow orange\n00000\n01011\n00000\n11010\n00000\n\nVBrushedSand\nyellow orange\n01000\n01010\n00000\n01010\n00010\n\n=======\nLEGEND\n=======\n\nBrushedSand = HBrushedSand or VBrushedSand\nSand = UnbrushedSand or BrushedSand\nObstacle = BrushedSand or Rock\n; = Background\nO = Rock\n. = UnbrushedSand\nP = Player\n\n=========\nSOUNDS\n=========\n\nclosemessage 52854909\nstartgame 64192309\nendlevel 16398509\nendgame 62100709\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nSand\nPlayer, Rock\n\n======\nRULES\n======\n\n\n(the h and v sand effects are cosmetic - how could this be done in a single line if there was only one type brushed sand? )\n\nHorizontal [ UnbrushedSand > Player ] -> [ HBrushedSand > Player ]\nVertical [ UnbrushedSand > Player ] -> [ VBrushedSand > Player ]\n\nlate [ Player BrushedSand ] -> cancel\n\n==============\nWINCONDITIONS\n==============\nno UnbrushedSand\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 5\n\n;;;;;;;;;;;;\n;;;;;;;;;;;;\n;;;;;;;;;;;;\n;;;......;;;\n;;;......;;;\n;;;......;;;\n;P;..OO..;;;\n;;;......;;;\n;;;......;;;\n;;;;;;;;;;;;\n;;;;;;;;;;;;\n;;;;;;;;;;;;\n\nmessage level 2 of 5\n\n;;;;;;;;;;;;\n;;;;;;;;;;;;\n;;;;;;;;;;;;\n;;;......;;;\n;;;....O.;;;\n;;;......;;;\n;P;..O...;;;\n;;;......;;;\n;;;......;;;\n;;;;;;;;;;;;\n;;;;;;;;;;;;\n;;;;;;;;;;;;\n\n\nmessage level 3 of 5\n\n;;;;;;;;;;;;\n;;;;;;;;;;;;\n;;;;;;;;;;;;\n;;;......;;;\n;;;...O..;;;\n;;;......;;;\n;P;.O....;;;\n;;;....O.;;;\n;;;......;;;\n;;;;;;;;;;;;\n;;;;;;;;;;;;\n;;;;;;;;;;;;\n\n\nmessage level 4 of 5\n\n;;;;;;;;;;;;\n;;;;;;;;;;;;\n;;;;;;;;;;;;\n;;;..OO..;;;\n;;;O....O;;;\n;P;..OO..;;;\n;;;O....O;;;\n;;;..OO..;;;\n;;;;;;;;;;;;\n;;;;;;;;;;;;\n;;;;;;;;;;;;\n\n\nmessage level 5 of 5\n\n;;;;;;;;;;;;\n;;;;;;;;;;;;\n;;;;;;;;;;;;\n;;;O.....;;;\n;;;..O.O.;;;\n;;;O...O.;;;\n;P;..O...;;;\n;;;O...O.;;;\n;;;..O...;;;\n;;;;;;;;;;;;\n;;;;;;;;;;;;\n;;;;;;;;;;;;\n\nmessage congratulations!\n\n",[3,3,2,3,3,3,3,0,0,3,0,1,1,1],"background:0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,background unbrushedsand:1,1,1,background vbrushedsand:2,background hbrushedsand:3,1,0,0,0,\n0,0,0,1,1,1,1,3,1,0,0,0,\n0,0,0,1,background player unbrushedsand:4,1,background rock:5,3,1,0,0,0,\n0,0,0,1,3,1,5,3,1,0,0,0,\n0,0,0,1,3,3,2,2,1,0,0,0,\n0,0,0,1,3,2,1,1,1,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,\n",1]
	],
	[
		"Remove movements from empty layers after rule application",
		["title Object Replacement Test Case\nauthor Scott Hughes\n\n=======\nOBJECTS\n=======\n\nBackground\nwhite\n\nPlayer\nblue\n\nCrate\nred\n\nSpawn\ngreen\n\n======\nLEGEND\n======\n\n. = Background\nP = Player and Spawn\n\n======\nSOUNDS\n======\n\n===============\nCOLLISIONLAYERS\n===============\n\nBackground\nSpawn\nPlayer, Crate\n\n=====\nRULES\n=====\n\n[ Player ] -> [ ]\n\n[ Spawn ] -> [ Spawn Crate ]\n\n=============\nWINCONDITIONS\n=============\n\n======\nLEVELS\n======\n\n...\n.P.\n...\n",[3],"background:0,0,0,\n0,background crate spawn:1,0,\n0,0,0,\n",0]
	],
	[
		"movement matching - correctly matching different objects same cell moving in different directions",

		["verbose_logging\ndebug\n\n========\nOBJECTS\n========\n\nBackground\ndarkgreen\n\nPlayer\ngreen\n\nRed\nred\n\nBrown\nbrown\n\nBlue\nblue\n\nA\nwhite\n\nB\nyellow\n\n=======\nLEGEND\n=======\n\nr = Red\no = Brown\n. = Background\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer\nA\nB\nRed, Brown\nBlue\n\n======\nRULES\n======\n\n[ Red ] -> [ down A down B ]\n[ Brown ] -> [ down A up B ]\n[ down A up B ] -> [ ]\n\n==============\nWINCONDITIONS\n==============\n\n=======\nLEVELS\n=======\n\nro\n\n\n",[3],"a b background:0,background:1,\n",0]
	],
	[
		"movement matching - ellipsis bug - forgot to include one case in above",
		["verbose_logging\ndebug\n\n========\nOBJECTS\n========\n\nBackground\ndarkgreen\n\nPlayer\ngreen\n\nRed\nred\n\nBrown\nbrown\n\nBlue\nblue\n\nA\nwhite\n\nB\nyellow\n\n=======\nLEGEND\n=======\n\nr = Red\no = Brown\n. = Background\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer\nA\nB\nRed, Brown\nBlue\n\n======\nRULES\n======\n\n[ Red | ... | Brown ] -> [ down A down B | ... | down a up B]\n[ down A up B | ... | down A up b ] -> [ | ... | ]\n\n==============\nWINCONDITIONS\n==============\n\n=======\nLEVELS\n=======\n\nro\n\n",[2],"a b background:0,0,\n",0]
	],
	[
		"ellipsis bug: rule matches two candidates, first replacement invalidates second",
		["title ellipsis cloning\n(ellipsis cloning bug -- reduction from neko puzzle)\n\n========\nOBJECTS\n========\n\nBackground .\nDarkBlue\n\nFruit F\nRed\n\nPlayer P\nWhite\n\n=======\nLEGEND\n=======\n\n=========\nSOUNDS\n=========\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Fruit\n\n======\nRULES\n======\n\nright [ > Player | ... | Fruit ] -> [ | ... | Player ]\n\n==============\nWINCONDITIONS\n==============\n\n=======\nLEVELS\n=======\nF.P.....FF\n",[3,1,1],"background fruit:0,background:1,1,1,1,1,background player:2,1,1,0,\n",0]
	],
	[
		"basic unlimited object/layer support",
		["\n\n========\nOBJECTS\n========\n\nBackground .\nLIGHTGREEN GREEN\n11111\n01111\n11101\n11111\n10111\n\nPlayer P\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nO00\n#000\nO01\n#033\nO02\n#066\nO03\n#099\nO04\n#0cc\nO05\n#100\nO06\n#133\nO07\n#166\nO08\n#199\nO09\n#1cc\nO10\n#200\nO11\n#233\nO12\n#266\nO13\n#299\nO14\n#2cc\nO15\n#300\nO16\n#333\nO17\n#366\nO18\n#399\nO19\n#3cc\nO20\n#400\nO21\n#433\nO22\n#466\nO23\n#499\nO24\n#4cc\nO25\n#500\nO26\n#533\nO27\n#566\nO28\n#599\nO29\n#5cc\nO30\n#600\nO31\n#633\nO32\n#666\nO33\n#699\nO34\n#6cc\nO35\n#700\nO36\n#733\nO37\n#766\nO38\n#799\nO39\n#7cc\nO40\n#800\nO41\n#833\nO42\n#866\nO43\n#899\nO44\n#8cc\nO45\n#900\nO46\n#933\nO47\n#966\nO48\n#999\nO49\n#9cc\nO50\n#a00\nO51\n#a33\nO52\n#a66\nO53\n#a99\nO54\n#acc\nO55\n#b00\nO56\n#b33\nO57\n#b66\nO58\n#b99\nO59\n#bcc\nO60\n#c00\nO61\n#c33\nO62\n#c66\nO63\n#c99\nO64\n#ccc\nO65\n#d00\nO66\n#d33\nO67\n#d66\nO68\n#d99\nO69\n#dcc\n\n=======\nLEGEND\n=======\n\nOb = O00 or O01 or O02 or O03 or O04 or O05 or O06 or O07 or O08 or O09 or O10 or O11 or O12 or O13 or O14 or O15 or O16 or O17 or O18 or O19 or O20 or O21 or O22 or O23 or O24 or O25 or O26 or O27 or O28 or O29 or O30 or O31 or O32 or O33 or O34 or O35 or O36 or O37 or O38 or O39 or O40 or O41 or O42 or O43 or O44 or O45 or O46 or O47 or O48 or O49 or O50 or O51 or O52 or O53 or O54 or O55 or O56 or O57 or O58 or O59 or O60 or O61 or O62 or O63 or O64 or O65 or O66 or O67 or O68 or O69\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nO00\nO01\nO02\nO03\nO04\nO05\nO06\nO07\nO08\nO09\nO10\nO11\nO12\nO13\nO14\nO15\nO16\nO17\nO18\nO19\nO20\nO21\nO22\nO23\nO24\nO25\nO26\nO27\nO28\nO29\nO30\nO31\nO32\nO33\nO34\nO35\nO36\nO37\nO38\nO39\nO40\nO41\nO42\nO43\nO44\nO45\nO46\nO47\nO48\nO49\nO50\nO51\nO52\nO53\nO54\nO55\nO56\nO57\nO58\nO59\nO60\nO61\nO62\nO63\nO64\nO65\nO66\nO67\nO68\nPlayer\nO69\n\n======\nRULES\n======\n\n[no Ob] -> [random Ob]\n[Ob] -> []\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n............\n............\n............\n............\n............\n.....P......\n............\n............\n............\n\n",[1,1,0,0,0,3,3,3,3,3,2,2,2,1,1,1,1,0,0,0,0,1,1,1],"background:0,0,0,0,0,0,0,0,0,0,background player:1,0,\n0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,\n",0]
	],
	[
		"many layers movement bug",
		["\n========\nOBJECTS\n========\n\nBackground .\nLIGHTGREEN GREEN\n11111\n01111\n11101\n11111\n10111\n\nPlayer\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nO00\n#000\nO01\n#033\nO02\n#066\nO03\n#099\nO04\n#0cc\nO05\n#100\nO06\n#133\nO07\n#166\nO08\n#199\nO09\n#1cc\nO10\n#200\nO11\n#233\nO12\n#266\nO13\n#299\nO14\n#2cc\nO15\n#300\nO16\n#333\nO17\n#366\nO18\n#399\nO19\n#3cc\nO20\n#400\nO21\n#433\nO22\n#466\nO23\n#499\nO24\n#4cc\nO25\n#500\nO26\n#533\nO27\n#566\nO28\n#599\nO29\n#5cc\nO30\n#600\nO31\n#633\nO32\n#666\nO33\n#699\nO34\n#6cc\nO35\n#700\nO36\n#733\nO37\n#766\nO38\n#799\nO39\n#7cc\nO40\n#800\nO41\n#833\nO42\n#866\nO43\n#899\nO44\n#8cc\nO45\n#900\nO46\n#933\nO47\n#966\nO48\n#999\nO49\n#9cc\nO50\n#a00\nO51\n#a33\nO52\n#a66\nO53\n#a99\nO54\n#acc\nO55\n#b00\nO56\n#b33\nO57\n#b66\nO58\n#b99\nO59\n#bcc\nO60\n#c00\nO61\n#c33\nO62\n#c66\nO63\n#c99\nO64\n#ccc\nO65\n#d00\nO66\n#d33\nO67\n#d66\nO68\n#d99\nO69\n#dcc\n\n=======\nLEGEND\n=======\n\nOb = O00 or O01 or O02 or O03 or O04 or O05 or O06 or O07 or O08 or O09 or O10 or O11 or O12 or O13 or O14 or O15 or O16 or O17 or O18 or O19 or O20 or O21 or O22 or O23 or O24 or O25 or O26 or O27 or O28 or O29 or O30 or O31 or O32 or O33 or O34 or O35 or O36 or O37 or O38 or O39 or O40 or O41 or O42 or O43 or O44 or O45 or O46 or O47 or O48 or O49 or O50 or O51 or O52 or O53 or O54 or O55 or O56 or O57 or O58 or O59 or O60 or O61 or O62 or O63 or O64 or O65 or O66 or O67 or O68 or O69\nO = O63\nP = Player and O63\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nO00\nO01\nO02\nO03\nO04\nO05\nO06\nO07\nO08\nO09\nO10\nO11\nO12\nO13\nO14\nO15\nO16\nO17\nO18\nO19\nO20\nO21\nO22\nO23\nO24\nO25\nO26\nO27\nO28\nO29\nO30\nO31\nO32\nO33\nO34\nO35\nO36\nO37\nO38\nO39\nO40\nO41\nO42\nO43\nO44\nO45\nO46\nO47\nO48\nO49\nO50\nO51\nO52\nO53\nO54\nO55\nO56\nO57\nO58\nO59\nO60\nO61\nO62\nO63\nO64\nO65\nO66\nO67\nO68\nPlayer\nO69\n\n======\nRULES\n======\n\n[ o63 ] -> [ ]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n.P\n",[1],"background player:0,background:1,\n",0]
	],
	[
		"random movement determinism test",
		["title Simple Block Pushing Game\nauthor Stephen Lavelle\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN GREEN\n11111\n01111\n11101\n11111\n10111\n\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\nBROWN DARKBROWN\n00010\n11111\n01000\n11111\n00010\n\nPlayer\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate\nOrange Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ stationary Crate ] -> [ randomDir crate ]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n\n########\n#......#\n#.*..*.#\n#..P...#\n#.*..*.#\n#......#\n########\n\n",[3],"background wall:0,0,0,0,0,0,0,0,\nbackground:1,1,1,background crate:2,1,0,0,1,\n1,1,1,1,0,0,1,2,\n1,1,1,0,0,1,1,background player:3,\n1,1,0,0,1,1,1,1,\n2,0,0,1,2,1,1,1,\n0,0,0,0,0,0,0,0,\n",0,"1397237766414.352"]
	],
	[
		"random instances of properties",
		["title Simple Block Pushing Game\nauthor Stephen Lavelle\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN GREEN\n11111\n01111\n11101\n11111\n10111\n\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\nBROWN DARKBROWN\n00010\n11111\n01000\n11111\n00010\n\nPlayer\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate1\nOrange \n00000\n0...0\n0...0\n0...0\n00000\n\nCrate2\nYellow \n00000\n0...0\n0...0\n0...0\n00000\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\nO = Target\n\nCrate = Crate1 or Crate2\n\n=======\nSOUNDS\n=======\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ no Crate no Player ] -> [ random Crate ]\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n\n########\n#......#\n#......#\n#..P...#\n#......#\n#......#\n########\n\n",[3],"background crate1:0,0,background crate2:1,0,0,0,1,0,\n1,1,1,1,1,1,0,1,\n0,0,0,0,1,0,1,1,\nbackground player:2,0,1,1,1,0,0,0,\n1,1,1,1,0,0,1,0,\n0,1,1,0,1,1,0,1,\n1,1,0,0,1,0,1,0,\n",0,"1397239729215.862"]
	],
	[
		"sticky candy puzzle saga",
		["title Sticky Candy Puzzle Saga\nauthor Alan Hazelden\nhomepage www.draknek.org\n\nrun_rules_on_level_start\n\nnoaction\n\n========\nOBJECTS\n========\n\nBackground\nBlack DarkGrey\n00000\n00000\n00000\n00000\n00000\n\n\nWall\nPink #febfc6\n10001\n00011\n00110\n01100\n11000\n\nPlayer\nPink #febfc6\n.000.\n.111.\n00100\n.000.\n.0.0.\n\nYellow\nYellow White Orange\n.000.\n01100\n01000\n00002\n.022.\n\nRed\nRed Orange DarkRed\n.000.\n01100\n01000\n00002\n.022.\n\nBlue\nLightBlue White #3468f7\n.000.\n01100\n01000\n00002\n.022.\n\nYellowTarget\nBrown Yellow\n00000\n01110\n01010\n01110\n00000\n\nRedTarget\nDarkBrown Red\n00000\n01110\n01010\n01110\n00000\n\nBlueTarget\nPurple LightBlue\n00000\n01110\n01010\n01110\n00000\n\nMarker\nWhite\n.....\n.....\n.....\n.....\n.....\n\nWallL\nWhite\n0....\n0....\n0....\n0....\n0....\n\nWallR\nWhite\n....0\n....0\n....0\n....0\n....0\n\nWallU\nWhite\n00000\n.....\n.....\n.....\n.....\n\nWallD\nWhite\n.....\n.....\n.....\n.....\n00000\n\nWallLR\nWhite\n0...0\n0...0\n0...0\n0...0\n0...0\n\nWallUD\nWhite\n00000\n.....\n.....\n.....\n00000\n\nJoinL\n#febfc6\n0....\n.....\n.....\n.....\n0....\n\nJoinR\n#febfc6\n....0\n.....\n.....\n.....\n....0\n\nJoinU\n#febfc6\n0...0\n.....\n.....\n.....\n.....\n\nJoinD\n#febfc6\n.....\n.....\n.....\n.....\n0...0\n\nJoinBoth\n#febfc6\n0...0\n.....\n.....\n.....\n0...0\n\nZero\nPurple\n.000.\n.0.0.\n.0.0.\n.0.0.\n.000.\n\nOne\nPurple\n.00..\n..0..\n..0..\n..0..\n.000.\n\nTwo\nPurple\n.000.\n...0.\n.000.\n.0...\n.000.\n\nThree\nPurple\n.000.\n...0.\n.000.\n...0.\n.000.\n\nFour\nPurple\n.0.0.\n.0.0.\n.000.\n...0.\n...0.\n\nFive\nPurple\n.000.\n.0...\n.000.\n...0.\n.000.\n\nSix\nPurple\n.000.\n.0...\n.000.\n.0.0.\n.000.\n\nSeven\nPurple\n.000.\n...0.\n...0.\n...0.\n...0.\n\nEight\nPurple\n.000.\n.0.0.\n.000.\n.0.0.\n.000.\n\nNine\nPurple\n.000.\n.0.0.\n.000.\n...0.\n.000.\n\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\nA = Red\nB = Yellow\nC = Blue\nX = RedTarget\nY = YellowTarget\nZ = BlueTarget\n\nWallCoverLR = WallL or WallR or WallLR\nWallCoverUD = WallU or WallD or WallUD\n\nJoinCoverLR = JoinL or JoinR or JoinBoth\nJoinCoverUD = JoinU or JoinD\n\nJoin = JoinCoverLR or JoinCoverUD\n\nCoverLR = WallCoverLR or JoinCoverLR\nCoverUD = WallCoverUD or JoinCoverUD\n\n0 = Zero and Wall\n1 = One and Wall\n2 = Two and Wall\n3 = Three and Wall\n4 = Four and Wall\n5 = Five and Wall\n6 = Six and Wall\n7 = Seven and Wall\n8 = Eight and Wall\n9 = Nine and Wall\n\nNumber = Zero or One or Two or Three or Four or Five or Six or Seven or Eight or Nine\n\nCandy = Yellow or Red or Blue\nTarget = YellowTarget or RedTarget or BlueTarget\n\n\n=======\nSOUNDS\n=======\n\nsfx1 6045907 (candies sticking)\nsfx2 27189102 (can't move)\nsfx3 27189102 (can't push)\nCandy MOVE 48059907\nPlayer MOVE 11429307\nEndLevel 85763108\nRestart 65287309\nUndo 84906107\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nMarker\nTarget\nPlayer, Wall, Candy\nCoverUD\nCoverLR, Number\n\n======\nRULES\n======\n\n[ > Player | Candy ] -> [ > Player | > Candy ]\n[ moving Candy | stationary Candy ] -> [ moving Candy | moving Candy ]\n\n(Prevent movement in a way that triggers the \"can't move\" sound)\n\n[ > Candy | Wall ] [ > Player | > Candy ] -> [ Candy | Wall ] [ > Player | Candy ]\n[ > Player | stationary Candy ] [ moving Candy ] -> [ > Player | Candy ] [ Candy ]\n\n(Trigger the \"candies sticking\" sound)\n\n[ > Candy | no Candy ] -> [ > Candy | Marker ]\n\n[ Marker | stationary Candy ] -> sfx1\n\n[ Marker ] -> []\n\n(Can't move sounds)\n\n[ > Player | Wall ] -> sfx2\n[ > Player | stationary Candy ] -> sfx3\n\n(Wall borders)\n\nleft [ Wall no WallCoverLR | no Wall ] -> [ Wall WallL | ]\nright [ Wall no WallCoverLR | no Wall ] -> [ Wall WallR | ]\nright [ Wall WallL | no Wall ] -> [ Wall WallLR | ]\n\nup [ Wall no WallCoverUD | no Wall ] -> [ Wall WallU | ]\ndown [ Wall no WallCoverUD | no Wall ] -> [ Wall WallD | ]\ndown [ Wall WallU | no Wall ] -> [ Wall WallUD | ]\n\n(Candy joins)\n\nlate [ Join ] -> []\n\nlate left [ Candy | Candy ] -> [ Candy JoinL | Candy ]\nlate right [ Candy no JoinL | Candy ] -> [ Candy JoinR | Candy ]\nlate right [ Candy JoinL | Candy ] -> [ Candy JoinBoth | Candy ]\n\nlate up [ Candy no JoinBoth | Candy ] -> [ Candy JoinU | Candy ]\nlate down [ Candy no JoinU no JoinBoth | Candy ] -> [ Candy JoinD | Candy ]\nlate down [ Candy JoinU | Candy ] -> [ Candy JoinBoth | Candy ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Yellow on YellowTarget\nAll Red on RedTarget\nAll Blue on BlueTarget\n\n=======\nLEVELS\n=======\n\nmessage Transport the sticky candies to the collection areas.\n\n#######\n##...##\n#..b.y#\n#pb#.y#\n#..b.y#\n##...##\n1######\n\n#########\n##.....##\n#..a.#.x#\n#pa....x#\n#..a.#.x#\n##.....##\n2########\n\nmessage Don't let different candies stick together!\n\n########\n#p...yy#\n#.b.ayy#\n#..b.a.#\n#.a.b..#\n#xxa.b.#\n#xx....#\n3#######\n\n###########\n#....p....#\n#..b.c.b..#\n#...c.c...#\n###.zzz.###\n####b.b####\n####yyy####\n#####y#####\n4##########\n\n#########\n#.a...###\n#.a...###\n#..c.axx#\n#zz.p.xx#\n#zzc.a..#\n###...c.#\n###...c.#\n5########\n\n###########\n##.......##\n#y.#.p.#.z#\n#yc.b.c.bz#\n##.......##\n###..#..###\n6##########\n\n#########\n#####..z#\n#...b.zz#\n#.b.bb.z#\n#p.###..#\n#y.cc.c.#\n#yy.c...#\n#y..#####\n7########\n\n#########\n##......#\n#x.c.#by#\n#.b.p..y#\n#z.a.#by#\n##......#\n8########\n\n#########\n#yy.c.x.#\n#y.b..xx#\n#.b.....#\n#...#..b#\n#.a...c.#\n#.aa.c.z#\n#p....zz#\n9########\n\n#########\n#yy###zz#\n#...x...#\n#.##a##.#\n#..b.b..#\n#..#.#..#\n#..c.c..#\n##..p..##\n10#######\n\n###########\n#####y#####\n####yyy####\n###.b.b.###\n###a...c###\n#z...p...x#\n#za.b.b.cx#\n###.....###\n11#########\n\n###########\n####...A###\n##......###\n#..#A#..xx#\n#pA...A.xx#\n#..#A#..xx#\n##......###\n####...A###\n12#########\n\n#########\n#..xxx..#\n#..#a#..#\n#..b.b..#\n##.#p#.##\n##.aya.##\n##..y..##\n13#######\n\n###########\n##..zzz..##\n#..a.p.b..#\n#yy#ccc#xx#\n#..b...a..#\n##...#...##\n14#########\n\n#############\n#...#####...#\n#....c.b....#\n#yy#..p..#zz#\n#.y.cc.bb.z.#\n####.....####\n15###########\n\n#########\n#...#...#\n#.a.a.a.#\n#...x...#\n#z#.x.#y#\n#zc.x.by#\n#.c.p.b.#\n###...###\n16#######\n\n###########\n##......###\n##.#..c...#\n#...c#..zz#\n#pc..#c#zz#\n#...c#..zz#\n##.#..c...#\n##......###\n17#########\n\n###############\n#...###z###...#\n#....bzzzb....#\n#...c.c.c.c...#\n#####.yyy.#####\n#####.#b#.#####\n#####.....#####\n######.p.######\n18#############\n\n#############\n###x#...#z###\n#.xxa.c.azz.#\n#..c.....c..#\n###..#a#..###\n####..p..####\n19###########\n\n###########\n###.....###\n##c.a.a.b##\n#.cyy.zzb.#\n#..yy.zz..#\n#a..c.b..a#\n#..xc.bx..#\n#..xxxxx..#\n##a..a..a##\n###...p.###\n20#########\n\nmessage Thanks for playing! :)\n\n\n",[2,3,3,0,3,2,3,3,2,1],"background wall:0,background wall wallr:1,1,1,1,1,1,background three wall:2,\nbackground wall walld:3,background:4,4,4,4,background redtarget:5,5,background wall wallu:6,\n3,4,4,4,background joind joinr red:7,background joinr joinu red redtarget:8,5,6,\n3,4,4,background joind joinr yellow:9,background joinboth yellow:10,10,4,6,\n3,4,4,background joind joinl red:11,background joinboth red:12,background joinl joinu yellow:13,4,6,\n3,background yellowtarget:14,14,background player:15,4,4,4,6,\n3,14,14,4,4,4,4,6,\n0,background wall walll:16,16,16,16,16,16,0,\n",4,"1397263843369.0808"]
	],
	[
		"modality",
		["title Modality\nauthor Sean Barrett\nhomepage www.silverspaceship.com\nbackground_color #603060\nnoaction\n\n========\nOBJECTS\n========\n\nWhite\nWhite\n\nBlack\n#202020\n\n\nGrey\n#505050 #a0a0a0\n01010\n10101\n01010\n10101\n01010\n\n\nBackground\nRed\n\nTarget\n#3030a0\n.....\n.000.\n.0.0.\n.000.\n.....\n\nPlayer\nBlack Orange #c0c0c0 Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate\nOrange Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\n\n=======\nLEGEND\n=======\n\n. = Black\n+ = White\ng = Grey\np = Player and Black\nQ = Player and White\n* = Crate and Black\n@ = Crate and White\nt = Target and Black\nU = Target and White\n\nNonwhite = Black or Grey\nNonblack = White or Grey\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nWhite, Black, Grey\nTarget\nPlayer, Crate\n\n======\nRULES \n====== \n\n[ > Player Nonblack | Crate Nonblack ] -> [ > Player Nonblack | > Crate Nonblack ] \n[ > Player Black | Crate Black ] -> [ > Player Black | > Crate Black ]\n[ > Player White | Black ] -> CANCEL\n[ > Player Black | White ] -> CANCEL\n\n==============\nWINCONDITIONS\n==============\n\nAll Crate on Target\n\n======= \nLEVELS\n=======\n\n\nu+...\n@+g.p\n+++..\n\n++++q\n+.*.+\nu++.+\n+g..+\n+++++\n\n......\n.++.+.\n.+q++.\n..u.++\ng.*.++\n++++++\n\n...t.......\n...+.......\n.+.+.+...++\n.+.++++..++\nq@g++..++++\n.+.++...+++\n.+.+....+++\n.+......+++\n.++++++++++\n\n",[2,2,0,3,3,2,2,2,1,1,0,1,1,0,3,3,3,1,1,1,2,3,3,3,3,0,0,0,0],"background black:0,0,0,0,background grey:1,background white:2,\n0,2,2,0,0,2,\n0,2,2,background target white:3,0,2,\n0,0,2,0,0,2,\nbackground black crate:4,background player white:5,2,2,2,2,\n0,0,0,2,2,2,\n",2,"1397263919028.1353"]
	],
	[
		"MazezaM",
		["title MazezaM\nauthor Malcolm Tyrrell\nhomepage https://sites.google.com/site/malcolmsprojects/\n\nnoaction\n\n(\nLicense:\n\n(C)2013 Malcolm Tyrrell\nYou can use and distribute this code under the terms of the AGPLv3: \n\nhttp://www.gnu.org/licenses/agpl-3.0.html\n)\n\n========\nOBJECTS\n========\n\nBackground\nDarkBlue Black\n11111\n01111\n11101\n11111\n10111\n\nEntrance\nBlue\n.....\n.....\n.....\n.....\n.....\n\nWall\nLightgrey Darkgrey Grey\n11101\n12111\n11112\n11011\n11111\n\nCPlayer\nRed DarkGreen Green\n..0..\n22222\n02220\n01110\n.1.1.\n\nLPlayer\nRed DarkGreen Green\n0.0..\n.222.\n0002.\n.111.\n.1.1.\n\n\nRPlayer\nRed DarkGreen Green\n..0.0\n.222.\n.2000\n.111.\n.1.1.\n\nACrate\nOrange Brown DarkBrown\n00001\n01102\n01012\n00112\n12222\n\nLCrate\nOrange Brown DarkBrown\n00000\n01101\n01011\n00111\n12222\n\nICrate\nOrange Brown DarkBrown\n00000\n11101\n11011\n10111\n22222\n\nRCrate\nOrange Brown DarkBrown\n00001\n11102\n11012\n10112\n22222\n\nTarget\nOrange Yellow\n.....\n.....\n.....\n.....\n.....\n\nExit\nDarkBrown\n.....\n.000.\n.0.0.\n.000.\n.....\n\nGate\nDarkBrown\n.0.0.\n00000\n.0.0.\n00000\n.0.0.\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = CPlayer\nC = ACrate\nL = LCrate\nR = RCrate\nI = ICrate\n+ = Entrance\n* = Exit\nX = Target\n\nCrate = ACrate or LCrate or RCrate or ICrate\nWallLike = Wall or Gate or Exit\nObstacle = Gate or Wall\nObject = Obstacle or Crate\nPlayer = CPlayer or LPLayer or RPlayer\nSpace = Background or Exit\n\n=======\nSOUNDS\n=======\n\nPlayer CantMove 68096304\nGate Create 97629502\nCrate Move 64536307\nEndLevel 56439303\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nExit, Entrance, Target\nPlayer, RPlayer, Wall, LCrate, Crate, RCrate, ICrate, Gate\n\n======\nRULES\n======\n\n(Select the appropriate pushing sprite)\n\nRight [ > Player ] -> [ > RPlayer ]\nLeft [ > Player ] -> [ > LPlayer ]\n\n(Except when moving vertically or not pushing)\n\nVertical [ > Player ] -> [ > CPlayer ]\nHorizontal [ > Player | No Object ] -> [ > CPlayer | ]\n\n(The player can push a crate when the end of the row is free)\n\nHorizontal [ > Player | Crate | ... | No Object | WallLike ] -> [ > Player | > Crate | ... | | WallLike ]\n\n(All crates on a row move together)\n\nHorizontal [ > Crate | ... | Crate ] -> [ > Crate | ... | > Crate ]\nHorizontal [ Crate | ... | > Crate ] -> [ > Crate | ... | > Crate ]\n\n(The gate closes when the player passes the entrance)\n\nLate Right [ Entrance | Player ] -> [ Gate | Player ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Player on Target\n\n=======\nLEVELS\n=======\n\nmessage First Principles\n\n(Pushes: rRRuLdrRurr)\n(Moves: rRRuLdrRurr)\n\n###########\n###.C.C.*.X\nP.+.C...###\n###########\n\nmessage Humble Origins\n\n(Pushes: rdRRurRdLuLrdLLrurRdrrr)\n(Moves: rdRRurRdLuLrdLLrurRdrrr)\n\n#############\nP.+.C..LR.###\n###.C..C..*.X\n#############\n\nmessage Baby Steps\n\n(Pushes: rddRRuRuLrdLurRdRdLLuuLrdLurRdRdLruLdrrur)\n(Moves: rddRRuRuLrdLurRdRdLLuuLrdLurRdLdRRurr)\n\n#############\nP.+.LR..LR###\n###.C.C.C.*.X\n###.LR.C..###\n#############\n\nmessage Easy Does It\n\n(Pushes: rurRdRRuLuLrdRdLLuurRdLuLrdLurRddRRurr)\n(Moves: rurRdRRuLuLrdRdLLuurRdLuLrdLurRddRRurr)\n\n##############\n###..C..LIR###\n###..C.C.C.*.X\nP.+.C.C.C..###\n##############\n\nmessage Little Rascal\n\n(Pushes: ruuuRRddRdlLuluurrdLddrRuLdLruLdrRuruuLLLrrrddldlLuuurrrdddr)\n(Moves: ruuuRRddRdlLuluurrdLddrRuLdLruLdrRuruuLLLddRdLruLuurrrdddr)\n\n\n###########\n###.C...###\n###.C.LR###\n###.C.C.###\nP.+.C..C*.X\n###########\n\nmessage Leap-frog\n\n(Pushes: rRdRRuLLdlddRRuLuuRRddRdLruLdLruuuLLddRdLruLuuRRddRdrrr)\n(Moves: rRdRRuLLdlddRRuLuuRRddRdLruLdLruuLLdRdLruLuRRdRdrrr)\n\n#############\nP.+.C.C.C.###\n###C.LIR..###\n###.C.C.LR###\n###.C..C..*.X\n#############\n\nmessage Shuttles\n\n(Pushes: rrdRRdddLLuuurrdLLddrRRRuuuLLLLdRRurruLdrruLdlldLLuRRRRdddlLLLuuurruRRddddrr)\n(Moves: rrdRRdddLLuuurrdLLddrRRRuuuLLLLdRRurruLLddLLuRRRRdddlLLLuuurruRRddddrr)\n\n#############\nP.+..LIR.C###\n###..C.C..###\n###..C.LIR###\n###C.C.C.C###\n###..C..C.*.X\n#############\n\nmessage The Nudge\n\n(Pushes: rRuuRRRRdLdLLuLurrdRRuLLdLdRRuRuLLrrdLdLLuRurrdLurrrddr)\n(Moves: rRuuRRRRdLdLLuLurrdRRuLLdLdRRuRuLLrrdLdLLuLuRRRRRdrdr)\n\n##############\n###C.C.....###\n###..C.C.LR###\nP.+.LR.LIR.*.X\n##############\n\nmessage Opening Gambit\n\n(Pushes: rurRRdLdLdRRuRRuuLLLdRRuLrdLurrrdLdLLdLLuRuRurrrddr)\n(Moves: rurRRdLdLdRRuRRuuLLLdRRuLrdLurrrdLdLLdLLuRuRurrrddr)\n\n#############\n###..C.C..###\nP.+.LR.LR.###\n###.C.C.C.*.X\n###C.LIR..###\n#############\n\nmessage Loop-de-Loop\n\n(Pushes: rrrdrRRuruLdLruRRRdrRRuLdLruLdrdLuLruLdLruRRRdrrdLdlLLLuuuLdrRRuLdLruLdLruRRRdrrddr)\n(Moves: rrrdrRRuruLdLruRRRdrRRuLdLruLdrdLuLruLdLruRRRdrrdLdlLLLuuuLdrRRuLdLruLdLruRRRdrrddr)\n\n####################\n###.LIIIR.LR.LR..###\nP.+...LR..LR..LR.###\n###LR..C.LR.LIR..###\n###...LIIIIIIR..C*.X\n####################\n\nmessage Nudge-nudge\n\n(Pushes: ruRldRlddrruRuLLddrRuuRuLLdLddrruLLuRuRRdRdrdLLLLrrruuLuLLdLdRdrrrruur)\n(Moves: rRluRdldRdrRuuLLddrruuRuLLdLddrruLLuRuRRdRdrdLLLLrrruuLuLLdLdRdrrrruur)\n\n#############\n###.LR.LR.###\nP.+.C.C.C.*.X\n###.C.LIR.###\n###...LR..###\n#############\n\nmessage To and Fro\n\n(Pushes: rrdRdRdrdLdRRurrdLLurrRdrRRuruuLLrrddldlLLullLdRRulldLLuurRuRRRururrrr)\n(Moves: rrdRdRdrdLdRRurrdLLurrRdrRRuruuLLrrddldlLLullLdRRulldLLuRuRuRRRururrrr)\n\n###################\nP.+...LIIIR.....*.X\n###C.LIIIR..LIR.###\n###.C.LIR.LIIR..###\n###C.C..LIIIIIR.###\n###.LIR.C...LR..###\n###C.C.C.LR..C..###\n###################\n\nmessage Ragged Rascal\n\n(Pushes: ruuuRRRddRululllddddrRuLuluurrrdrdLuLrdLurRdrddlLLLuRuRuLrdLdLdrrrruuur)\n(Moves: ruRlddrRuLuluuRRRRddLuLrdLurRdrddlLLLuRuRuLrdLdLdrrrruuur)\n\n############\n###.C....###\n###.LR..C*.X\n###.LR.C.###\nP.+.C.LIR###\n###..C...###\n############\n\nmessage Hold Your Horses\n\n(Pushes: rruuRRllddRdRRRRuLLuLullldddrrrruRRdLLLLulluurrrdLddRRRRuuruLLLLrrrdddLLLLuuRurrrrdLddrr)\n(Moves: rruuRRllddRdRRRRuLLuLullldddrrrruRRdLLLLulluurrrdLddRRRRuuruLLLLrrrdddLLLLuuRurrrrdLddrr)\n\n##############\n###..LIR...###\n###..LR.LIR###\nP.+..LIR.C.###\n###.C.C....*.X\n##############\n\nmessage Knot Theory\n\n(Pushes: rrdddRRuuuLLddddRRuuuurrddLLdddLLuuuuuRRddrruuLLddddLLuuuuRRdddLLuRRRdrddr)\n(Moves: rrdddRRuLLddRRuurruuLLdddddLLuuuRRuurrddLLddLLuuRRdLLuuuRRddRdrddr)\n\n############\nP.+..C.C.###\n###C.C.C.###\n###..C.C.###\n###C.LR..###\n###C.LR..###\n###..C.LR*.X\n############\n\nmessage Rack and Pinion\n\n(Pushes: rrRRddLruRRdRdRRuLuLuLLdLdRdLuLrdLuruRuRRdLdRdRRuuuLLLdRRuLrdLurrrdLddLLuLuRurrrddr)\n(Moves: rrRRddLruRRdRdRRuLuLuLLdLdRdLuLrdLuruRRdRdRRuLuLuLLdLdRdLuLrdLuruRRdRdRRuLuLurrrddr)\n\n################\nP.+..LR.C.C..###\n###LIR.C.LR..###\n###.LR..C.C.C*.X\n###LR.LIR.C..###\n################\n\nmessage Blue Meanie\n\n(Pushes: rRRdLdRuRldRdLruLdLruLdrRRRuuuLLLdLruRRdRddlLLLuRuLrdLdrRRRuruuLrddldlLLLuurRuRRddrdr)\n(Moves: rRRdLdRRdLLuurRdLLdrRRRuuuLLLdLruRRdRddlLLLuRuLrdLdrRRRuruuLrddldlLLLuurRuRRddrdr)\n\n#############\nP.+.LR.C..###\n###.C..C.C###\n###C.LIR..###\n###..C..C.*.X\n#############\n\nmessage Up, Up and Away\n\n(Pushes: rRRluRdlluuuRuRRdLdddlluuuuuuRuRRdLLuluuurRllddRluurrdLdddRRuLLdlddddddrruuuRuLLdldddrruuRuuruLuuruuur)\n(Moves: rRRluRdlluuuRuRRdLLuluuRuRRdLLuluRluurRdLdddRRuLLdlddrdRRuLLdldddrruuRuuruLuuruuur)\n\n###########\n###..C..*.X\n###.C.LR###\n###.LR..###\n###C.C..###\n###.C.C.###\n###.LIR.###\n###C.C..###\n###.C.C.###\n###.C.C.###\n###C.LR.###\nP.+.C...###\n###########\n\nmessage Great Things\n\n(Pushes: ruuRRRdddlLuluRddrRuLdLruLdrRuRuLLddLruLdrRuRRuuLLLdRRuLrdLurrrdLdLLdlLuRuRurrrdddr)\n(Moves: ruuRRRdddlLuluRddrRuLdLruLdrRuRuLLddLruLdrRuRRuuLLLdRRuLrdLurrrdLdLLdlLuRuRurrrdddr)\n\n#############\n###.C.C...###\n###.LR.LR.###\nP.+..C.C.C###\n###.C..LIR*.X\n#############\n\nmessage Through and Through\n\n(Pushes: rRRdLuruRRddrRRuLdLruLdLruRRuLLuLrdLddrRRuuRRRurRdLuLrdRddLruLdLruLuurRdLuLrdLddrRRuruur)\n(Moves: rRRdLuruRRddrRRuLdLruLdLruRRuLLuLrdLddrRRuuRRRurRdddLruLdLruLdrRRuLuLuLrdLLdRRRurrur)\n\n#####################\n###.LIIR..LIIR..LR*.X\n###.C.LR.LR.C.LR..###\nP.+.C.LR.LIIR.LR..###\n###.C.LR..LIIR..C.###\n#####################\n\nmessage Just Enough\n\n(Pushes: rrruRuRRdLdLLLdRRuRuRuLLdLdLddrRuLLuRuRuRRdLdRRdrdLLLLrrruuLLuRuLLdLdLddRRRRRurur)\n(Moves: rrruRuRRdLdLLLdRRuRuRuLLdLdLddrRuLLuRuRuRRdLdRRdrdLLLLrrruuLLuRuLLdLdLddRRRRRurur)\n\n##############\n###C.C.LR..###\n###LR.C.LR.###\nP.+...C.C.C*.X\n###C.LIIR..###\n###...C.C..###\n##############\n\nmessage The Secret Staircase\n\n(Pushes: rRRRRdlLdldRuRldRRRRRRuuuLLLLLddlLruruRRRdRdRdLLLLLuuLrddRRRRRuuRuLLrrdLddLLLLLulLrurRuRRRdddrrrur)\n(Moves: rRRRdLdRuRldlLdRRRRRRuuuLLLLdLruRRRdRddLLLLLuRuLddRRRRRRuuRuLLrrdLddLLLLLulLrurRuRRRdddrrrur)\n\n#################\nP.+.LIR.LR....###\n###.LR..LR.C.C###\n###C..LIIR.LR.*.X\n###C.LR.......###\n#################\n\nmessage Clear the Way\n\n(Pushes: ruurrddRdlLuluurrdLddrRuLdLruLdrRuRRuuLLuLrdLuLrdrRRddLLdlLuuuurRRdrRldRulLLLdLddrRuRRuurrr)\n(Moves: ruurrddRdlLuluurrdLddrRuLdLruLdrRuRRuuLLLruLLrdrRRddLLdlLuuuurRRdrRldRulLLLdLddrRuRRuRurr)\n\n##############\n###..C..LIR###\n###...LR..C*.X\n###.C.LIR.C###\nP.+.C.C.LR.###\n###.C..C.LR###\n##############\n\nmessage A Mismatch Made in Heaven\n\n(Pushes: rRRRuRRdLLLLuRuRRullLdddRRRRRuLLdlllluururrRdLLurrRRRddLrrdLLLrruuullLLLdRdRRdrrruuur)\n(Moves: rRRRuRRdLLLLuRuRRullLdddRRRRRuLLuLLurRRRRdrddLLruLruullLLLdRdRdRRRuruur)\n\n###############\n###.C...C...*.X\n###LR.LIIR..###\n###LIR.LR...###\nP.+.C.C.....###\n###############\n\nmessage Double Cross\n\n(Pushes: ruRuuRuuLrddRdLruLdLruuLururRdRRddRdrddlllllLLuurruLdlddrrrrrrruuuur)\n(Moves: ruRuuRRdLLrruLuuLrdLururRdRRddRdrddlllllLLuurruLdlddrrrrrrruuuur)\n\n###############\n###.C..LIIR.###\n###.C..C.LR.###\n###.C.LIIR.C*.X\n###C.LR..C..###\n###..C...LIR###\n###.LIIIIR..###\nP.+..C......###\n###############\n\nmessage Zen Garden\n\n(Pushes: rdRRurRdLuLrdLuLrdLurRRddRululLLdRuRldRulLdlddrdRulluururRdLuLrdLurRRdrdLdLLddlluuRlddrruLdrrrrruuuulldRululLLdRuRldRulLdlddrddrrrrruuLLruLdrruuur)\n(Moves: rdRRurRdLuLrdLuLrdLurRRddRululLLdRuRldRulLdlddrdRulluururRdLuLrdLurRRdrdLdLLdLdrrrrruuuulldRululLLdRuRldRulLdlddRddrrrrruuLLruLdrruuur)\n\n#############\nP.+.C..LR.*.X\n###.C.LR..###\n###LIIR.C.###\n###...C.LR###\n###C.LIIR.###\n###.......###\n#############\n\nmessage Inside Out\n\n(Pushes: ruuuuRldRuluuurrrrrrrrrrdLdlllllLdLLdldddddrrrrrrrrrrrruuuuLrdLrdddlllllllllllluuRuRRurruLLdrrRRurRuRRuruur)\n(Moves: ruRluRluRluuRluurrrrrrrrrrddddlLLdllLLuRRdlldLLuuluRuluurrrrrrrrrrdLdllllLLdLLdddRRurruLLdrrRRurRuRRuruur)\n\n###################\n###...........C.*.X\n###.LIIIIIIIR..C###\n###.LIR......LR.###\n###.C.LIIIIIR.C.###\n###.LIR.LIR..LR.###\n###.C.C...C..LR.###\n###.C.LIIIIR.LR.###\nP.+.C.C.C...LIR.###\n###.LIIIIIIIIIR.###\n###.............###\n###################\n\nmessage Double Decker\n\n(Pushes: ruRRRddRRuuLrdLuLrdRdLLuuLrdLuLrdRdRRuurrdLurrddLruulldRulldLdRRuRulldLdLLuuRldRuRldLdRRuulLddllddrdRdRRRuLrdLLLLuRRuLLddRRuLLuRRRdrRRdLuLLuLLLdRdRRRururrr)\n(Moves: ruRRRddRRuuLrdLuLrdRdLLuuLrdLuLrdRdRRuurrdLurrddLruulldRulldLdRRuRulldLdLLuuRldRuRldLdRRuulLddllddrdRdRRRuLrdLLLLuRRuLLddRRuLLuRRRdrRRdLuLLuLLLdRdRRRurRurr)\n\n###############\n###.C..LR...###\nP.+.LR.C.C.C###\n###C.C.LR...###\n###.LIIIIIIR###\n###..C.LIIR.*.X\n###C.LR..C..###\n###.C.LCR...###\n###############\n\nmessage Back to Front\n\n(Pushes: rrrrrrrrrrrddddLLLLuRRRdllluLLLuRRRdRRRdllluuLLdLLLdRRRRdRRdLdLruRuLLuLLLLuRRRuRRddrrrrdddLLLuRuulluuLLdLLLdRRRRddLLdRluRdRluRdRluuRRRdLLdRluRRuLLLdLLdlllddrrrrrrrrrrr)\n(Moves: rrrrrrrrrrrddddLLLLuRRRdllluLLLuRRRdRRRdllluuLLdLLLdRRRRdRRdLdLruRuLLuLLLLuRRRuRRddrrrrdddLLLuRuulluuLLdLLLdRRRRddLLdRluRdRluRdRluuRRRdLLdRluRRuLLLdLLdlllddrrrrrrrrrrr)\n\n#################\nP.+...........###\n###LIIIIIIIIR.###\n###LIR.LIIR...###\n###C.C.LR.C...###\n###....C.LIIR.###\n###LIIIR.LR...###\n###.LIR.LR.LR.###\n###....LR..LIR###\n###.LIIIIIIIIR###\n###...........*.X\n#################\n\nmessage The Beast\n\n(Pushes: rRddRRuuLLddlddddrRlluuuurrrdddRdLLLuuluurrrddRdLLulluurrrdLddRRuLLLddRRRuLuRRuuLLLLuuRRddRRddLLdRdLLLuuRuRuuuLLddRlldddrdRRRuuRRuuRuurrr)\n(Moves: rRddRRuuLLddlddddrRlluuuurrrdddRdLLLuuluurrrddRdLLulluurrrdLddRRuLLLddRRRuLuRRuuLLLLuuRRddRRddLLdRdLLLuuRuRuuuLLddRlldddrdRRRuuRRuuRuurrr)\n\n################\nP.+.C.LR.C...*.X\n###C.C.LIR.LR###\n###..C.C.C...###\n###.LR.LR.LIR###\n###..C.C.C.C.###\n###.LR.C.LIR.###\n###..C.LIR.C.###\n################\n\nmessage Well done. You escaped.\n\n",[3,3,3,2,3,3,0,1,3,1,2,3,3,3,1,1,1,0,3,3,1,2,0,3,2,1,1,0,0,0,0,3,3,3,2,1],"background wall:0,0,0,0,background:1,0,0,0,0,0,0,1,\n0,0,0,0,0,0,background gate:2,0,0,0,1,background lcrate:3,\n1,1,1,0,0,1,background rcrate:4,3,acrate background:5,1,0,0,\n1,background lplayer:6,4,1,1,0,0,1,1,1,3,1,\n0,0,5,5,5,background icrate:7,1,0,0,1,1,1,\n4,5,0,0,0,background exit:8,0,0,0,0,0,0,\n1,0,0,0,0,0,0,background target:9,0,0,0,0,\n",25,"1397263965449.9036"]
	],
	[
		"Saga of the Candy Scroll",
		["title The Saga of the Candy Scroll\nauthor Jim Palmeri\nhomepage www.puzzlescript.net\nagain_interval .1\n\n========\nOBJECTS\n========\n\nBackground\n#999999 #aaaaaa\n11111\n01111\n11101\n11111\n10111\n\nWall\nBlack #111111\n10001\n01010\n00100\n01010\n10001\n\nPlayer\nBlack Orange Green Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nScrollBG\n#d2a669 #e2bb82\n11111\n01111\n11101\n11111\n10111\n\nScrollLeft\n#d2a669 #e2bb82 Brown Black\n33321\n33332\n33321\n33332\n33321\n\nScrollRight\n#d2a669 #e2bb82 Brown Black\n12333\n23333\n12333\n23333\n12333\n\nScrollTop\n#d2a669 #e2bb82 Brown Black\n33333\n33333\n33333\n23232\n12121\n\nScrollBottom\n#d2a669 #e2bb82 Brown Black\n12121\n23232\n33333\n33333\n33333\n\nArrowL\nRed Black\n11011\n10111\n00000\n10111\n11011\n\nArrowU\nBlue Black\n11011\n10001\n01010\n11011\n11011\n\nArrowD\nGreen Black\n11011\n11011\n01010\n10001\n11011\n\nArrowR\nPurple Black\n11011\n11101\n00000\n11101\n11011\n\nCandyR\nRed\n.000.\n00000\n00000\n00000\n.000.\n\nCandyG\nGreen\n.000.\n00000\n00000\n00000\n.000.\n\nCandyB\nBlue\n.000.\n00000\n00000\n00000\n.000.\n\nCandyI\nPurple\n.000.\n00000\n00000\n00000\n.000.\n\nDrop1\nRed\n.....\n.....\n.....\n.....\n.....\n\nDrop2\nRed\n.....\n.....\n.....\n.....\n.....\n\nDrop3\nRed\n.....\n.....\n.....\n.....\n.....\n\nDrop4\nRed\n.....\n.....\n.....\n.....\n.....\n\nCandy0\nGray\n.000.\n00000\n00000\n00000\n.000.\n\nCandy1\nWhite\n.000.\n00000\n00000\n00000\n.000.\n\nCandy2\nWhite\n..0..\n.000.\n00000\n.000.\n..0..\n\nCandy3\nWhite\n.....\n.000.\n.000.\n.000.\n.....\n\nCandy4\nWhite\n.....\n..0..\n.000.\n..0..\n.....\n\nCandy5\nWhite\n.....\n.....\n..0..\n.....\n.....\n\nClearMarker\nWhite\n.....\n.....\n.....\n.....\n.....\n\nNinjaR\nRed YELLOW BLACK \n.222.\n.000.\n22222\n.222.\n.2.2.\n\nNinjaG\nGreen YELLOW BLACK \n.222.\n.000.\n22222\n.222.\n.2.2.\n\nNinjaB\nBlue YELLOW BLACK \n.222.\n.000.\n22222\n.222.\n.2.2.\n\nNinjaI\nPurple YELLOW BLACK \n.222.\n.000.\n22222\n.222.\n.2.2.\n\n=======\nLEGEND\n=======\n\n. = Background\nP = Player\n# = Wall\nS = ScrollBG\n{ = ScrollLeft\n} = ScrollRight\n[ = ScrollTop\n] = ScrollBottom\nN = ScrollBG and Drop1\nM = ScrollBG and Drop2\n/ = ScrollBG and Drop3\n\\ = ScrollBG and Drop4\nQ = ArrowL\nW = ArrowU\nE = ArrowD\nT = ArrowR\nR = CandyR\nG = CandyG\nB = CandyB\nI = CandyI\n1 = CandyR and ScrollBG\n2 = CandyG and ScrollBG\n3 = CandyB and ScrollBG\n4 = CandyI and ScrollBG\nH = NinjaR\nJ = NinjaG\nK = NinjaB\nL = NinjaI\n\nCandy = CandyR or CandyG or CandyB or CandyI or Candy0 or Candy1 or Candy2 or Candy3 or Candy4 or Candy5\n\nCandyF = CandyR or CandyG or CandyB or CandyI\n\nEnemy = NinjaR or NinjaG or NinjaB or NinjaI\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nClearMarker\nScrollBG\nDrop1, Drop2, Drop3, Drop4\nArrowL, ArrowU, ArrowD, ArrowR\nPlayer, Wall, CandyR, CandyG, CandyB, CandyI, ScrollLeft, ScrollRight, ScrollTop, ScrollBottom, Candy0, Candy1, Candy2, Candy3, Candy4, Candy5, NinjaR, NinjaG, NinjaB, NinjaI\n\n======\nRULES\n======\n\n(Candy clear animation)\n[ Candy5 ] -> [ ] again\n[ Candy4 ] -> [ Candy5 ] again\n[ Candy3 ] -> [ Candy4 ] again\n[ Candy2 ] -> [ Candy3 ] again\n[ Candy1 ] -> [ Candy2 ] again\n[ Candy0 ] -> [ Candy1 ] again\n\n(Mark 3 candies in a line for destruction)\n[ ScrollBG CandyR | ScrollBG CandyR | ScrollBG CandyR ] -> [ ScrollBG ClearMarker CandyR | ScrollBG ClearMarker CandyR | ScrollBG ClearMarker CandyR ]\n[ ScrollBG CandyG | ScrollBG CandyG | ScrollBG CandyG ] -> [ ScrollBG ClearMarker CandyG | ScrollBG ClearMarker CandyG | ScrollBG ClearMarker CandyG ]\n[ ScrollBG CandyB | ScrollBG CandyB | ScrollBG CandyB ] -> [ ScrollBG ClearMarker CandyB | ScrollBG ClearMarker CandyB | ScrollBG ClearMarker CandyB ]\n[ ScrollBG CandyI | ScrollBG CandyI | ScrollBG CandyI ] -> [ ScrollBG ClearMarker CandyI | ScrollBG ClearMarker CandyI | ScrollBG ClearMarker CandyI ]\n\n(Check to see if enemies can be destroyed)\n[ ScrollBG ClearMarker CandyR ] [ Player | ... | NinjaR ] -> [ ScrollBG ClearMarker CandyR ] [ Player | ... | NinjaR ClearMarker ]\n[ ScrollBG ClearMarker CandyB ] [ Player | ... | NinjaB ] -> [ ScrollBG ClearMarker CandyB ] [ Player | ... | NinjaB ClearMarker ]\n[ ScrollBG ClearMarker CandyG ] [ Player | ... | NinjaG ] -> [ ScrollBG ClearMarker CandyG ] [ Player | ... | NinjaG ClearMarker ]\n[ ScrollBG ClearMarker CandyI ] [ Player | ... | NinjaI ] -> [ ScrollBG ClearMarker CandyI ] [ Player | ... | NinjaI ClearMarker ]\n\n(Destroy marked candies)\n[ ScrollBG ClearMarker Candy ] -> [ ScrollBG Candy0 ] again\n\n(Destroy marked enemies)\n[ ClearMarker Enemy ] -> [ Candy0 ]\n\n(Make candies fall)\ndown [ CandyF ScrollBG | no Candy ScrollBG ] -> [ ScrollBG | CandyF ScrollBG ] again\n\n(Add candies to candy scroll)\nleft [ Action Player | Candy ] [ Drop1 no Candy ] -> [ Action Player | ] [ Candy Drop1 ] again\nup [ Action Player | Candy ] [ Drop2 no Candy ] -> [ Action Player | ] [ Candy Drop2 ] again\ndown [ Action Player | Candy ] [ Drop3 no Candy ] -> [ Action Player | ] [ Candy Drop3 ] again\nright [ Action Player | Candy ] [ Drop4 no Candy ] -> [ Action Player | ] [ Candy Drop4 ] again\n\n\n==============\nWINCONDITIONS\n==============\n\nNo Candy\nNo Enemy\n\n=======\nLEVELS\n=======\n\nmessage This is a game made in two days for #candyjam. Enjoy!\n\nmessage Act 1: Candy World\n\nmessage Mr. Candy is stuck in the magical land of Candy World.\nmessage Help him escape by clearing all of the candies!\nmessage Walk up to a candy and press X to add it to your Candy Scroll.\n\nmessage Level 1\n\n###############\n#qwet#####r####\n#[[[[###.....##\n{nm/\\}##.....##\n{ssss}#p.....r#\n{ssss}##.....##\n{ssss}##.....##\n{ssss}####r####\n#]]]]##########\n\nmessage \"Wow, this Candy Scroll is cool! It can crus--I mean CLEAR three candies in a row!\" said Mr. Candy.\nmessage Mr. Candy wonders what original game mechanics he will encounter next.\n\nmessage Level 2\n\n###############\n#qwet##.......#\n#[[[[##.......#\n{nm/\\}##.....##\n{ssss}#r..p..b#\n{ssss}##.....##\n{1ss3}#.......#\n{1ss3}#.......#\n#]]]]##########\n\nmessage Mr. Candy wonders why the candies are being dropped into different columns of the Candy Scroll, and decides to investigate further.\nmessage Should he fail in his endeavors, he need only press R to restart the level.\n\nmessage Level 3\n\n###############\n#qwet##.......#\n#[[[[##.p.....#\n{nm/\\}#.......#\n{ssss}#...r...#\n{ssss}#.......#\n{ssss}#.......#\n{11s1}#.......#\n#]]]]##########\n\nmessage It appears that approaching candies from different directions determines their placement on the Candy Scroll.\nmessage Enlightened, Mr. Candy continues his quest to clear ALL of the candies. Not crush, obviously. There is only one King when it comes to crushing candies, and Mr. Candy is clearly not him.\n\nmessage Level 4\n\n#################\n#######.........#\n#######..r.r.r..#\n#qwet##.........#\n#[[[[##.........#\n{nm/\\}#..#.p.#..#\n{ssss}#.........#\n{ssss}#.........#\n{ssss}#..b.b.b..#\n{ssss}#.........#\n#]]]]############\n\nmessage Level 5\n\n#################\n#######r...p...r#\n#######.##...##.#\n#qwet##.#..#..#.#\n#[[[[##....r....#\n{nm/\\}#..#r#b#..#\n{ssss}#....b....#\n{ssss}#.#..#..#.#\n{ssss}#.##...##.#\n{ssss}#b.......b#\n#]]]]############\n\nmessage Level 6\n\n#################\n#######.........#\n#########.....###\n#qwet####...p.###\n#[[[[##.........#\n{nm/\\}#....b....#\n{ssss}#..r###r..#\n{ssss}#.b#...#b.#\n{3131}#..#...#..#\n{1131}#.........#\n#]]]]############\n\nmessage Mr. Candy continues through Candy World and notices something odd.\nmessage \"Is that a green candy? I love those!\"\n\nmessage Level 7\n\n#################\n#######.........#\n#######.p.......#\n#qwet##....#....#\n#[[[[##....r....#\n{nm/\\}#..#b#g#..#\n{ssss}#....b....#\n{s11s}#....#....#\n{1323}#.........#\n{1323}#.........#\n#]]]]############\n\nmessage Level 8\n\n#################\n#######.........#\n#######.#r#g#b#.#\n#qwet##..#.#.#..#\n#[[[[##.........#\n{nm/\\}#p..brg...#\n{ssss}#.........#\n{ssss}#..#.#.#..#\n{ssss}#.#g#b#r#.#\n{ssss}#.........#\n#]]]]############\n\nmessage Mr. Candy advances further and discovers yet another color of candies. He must be getting close to the exit!\n\nmessage Level 9\n\n#################\n#######.........#\n#######...g#i...#\n#qwet##.........#\n#[[[[##.g.....i.#\n{nm/\\}#.#..p..#.#\n{ssss}#.b.....r.#\n{ssss}#.........#\n{ssss}#...b#r...#\n{1324}#.........#\n#]]]]############\n\nmessage Mr. Candy notices something in the distance, and is ecstatic.\nmessage \"Hey, look! It's the Super Candy Diamond! If I can clear it, I will certainly be able to escape Candy World!\"\n\nmessage Level 10\n\n#################\n#######.........#\n#######.p..r..i.#\n#qwet##...rbr...#\n#[[[[##..rbgbr..#\n{nm/\\}#.rbgigbr.#\n{ssss}#..rbgbr..#\n{ssss}#...rbr...#\n{ssss}#.i..r....#\n{ssss}#.........#\n#]]]]############\n\nmessage Mr. Candy escapes from Candy World! He is delighted to return to civilization...but this delight is fleeting.\nmessage He is assaulted by evil ninjas and dragged into an interrogation room!\nmessage \"Mr. Candy, we regret to inform you that your name is trademarked. By choosing to be known as Mr. Candy, you create brand confusion and must change your name immediately.\"\nmessage Mr. Candy replies, \"This is complete nonsense!\" He tries to escape, but is not fast enough to escape the ninjas!\nmessage He loses consciousness...\n\nmessage Act 2: The Prison\n\nmessage Mr. Candy finds himself locked in a prison. It looks a lot like Candy World, but there are ninjas blocking his escape!\nmessage He suspects that he must defeat all of the ninjas before he can escape, but he doesn't know how.\nmessage Sadly, he begins clearing candies...\n\nmessage Level 11\n\n#################\n#######.........#\n#######.........#\n#qwet##.........#\n#[[[[##....#....#\n{nm/\\}#.p..r..h.#\n{ssss}#....#....#\n{ssss}#.........#\n{ssss}#.........#\n{s11s}#.........#\n#]]]]############\n\nmessage Incredible! The Candy Scroll can defeat ninjas!\nmessage Eager to test the Candy Scroll's limits, Mr. Candy proceeds through the prison.\n\nmessage Level 12\n\n#################\n#######.........#\n#######.p.r.....#\n#qwet##.........#\n#[[[[#####...####\n{nm/\\}####...####\n{ssss}####...####\n{ssss}####...####\n{ssss}####.h.####\n{s11s}####...####\n#]]]]############\n\nmessage \"Interesting,\" Mr. Candy says. \"I can only kill ninjas with my Candy Scroll if I am vertically or horizontally aligned with them.\"\n\nmessage Level 13\n\n#################\n#######.........#\n#######....h..p.#\n#qwet##.........#\n#[[[[##.........#\n{nm/\\}#...r...h.#\n{ssss}#....r....#\n{ssss}#.........#\n{ssss}#.r.......#\n{ssss}#.........#\n#]]]]############\n\nmessage Level 14\n\n#################\n##########...####\n########h#.r.#h##\n#qwet#####.r.####\n#[[[[##.........#\n{nm/\\}#..r.p.r..#\n{ssss}#.........#\n{ssss}####.r.####\n{ssss}##h#.r.#h##\n{ssss}####...####\n#]]]]############\n\nmessage \"Wow, the Candy Scroll's ninja-destroying powers even reach through walls! I'll be out of here in no time!\"\n\nmessage Level 15\n\n#################\n########b##r##b##\n########h##h##h##\n#qwet##.........#\n#[[[[##.........#\n{nm/\\}#..r.r.r..#\n{ssss}#.........#\n{ssss}#..r.p.r..#\n{ssss}#....h....#\n{s3ss}#.........#\n#]]]]############\n\nmessage As Mr. Candy makes his way through the prison, he encounters some blue ninjas. Might they bear some connection to the blue candies?\n\nmessage Level 16\n\n#################\n#######.r....####\n#######rbr....###\n#qwet##.r..k...##\n#[[[[##.........#\n{nm/\\}#..p.b....#\n{ssss}#.........#\n{ssss}##...k..r.#\n{ssss}###....rbr#\n{ssss}####....r.#\n#]]]]############\n\nmessage Mr. Candy notes that blue ninjas can only be defeated by blue candies, and prepares the Candy Scroll for more battles.\n\nmessage Level 17\n\n#################\n#######r.......b#\n#######.###h###.#\n#qwet##.#b...r#.#\n#[[[[##.#.r.b.#.#\n{nm/\\}#.k..p..k.#\n{ssss}#.#.b.r.#.#\n{ssss}#.#r...b#.#\n{ssss}#.###h###.#\n{ssss}#b.......r#\n#]]]]############\n\nmessage Level 18\n\n#################\n#######r.......b#\n#######..rhhhr..#\n#qwet##..hbbbh..#\n#[[[[##r.......b#\n{nm/\\}#....p....#\n{ssss}#r.......b#\n{ssss}#..krrrk..#\n{ssss}#..bkkkb..#\n{ssss}#r.......b#\n#]]]]############\n\nmessage Level 19\n\n#################\n#######b.......b#\n#######.k..h..k.#\n#qwet##....b....#\n#[[[[##....r....#\n{nm/\\}#.hbrprbh.#\n{ssss}#....r....#\n{ssss}#....b....#\n{ssss}#.k..h..k.#\n{ssss}#b.......b#\n#]]]]############\n\nmessage Level 20\n\n#################\n#######g...g...g#\n#######.p..b....#\n#qwet##...###...#\n#[[[[##..krrrk..#\n{nm/\\}#.b#####b.#\n{ssss}#...###...#\n{ssss}#...#.#...#\n{ssss}#...b.b...#\n{ssss}#g...g...g#\n#]]]]############\n\nmessage Mr. Candy has successfully defeated the ninjas and escaped the prison!\nmessage However, his work is not yet finished. He must find those who tried to trademark his name and destroy them!\nmessage With his honor and life at stake, he journeys to his enemy's lair...\n\nmessage Act 3: The Palace\n\nmessage Mr. Candy arrives at the palace where his nemesis lives. Inside the palace, he spots some elite green and purple ninjas.\nmessage Sensing the battles ahead, the Candy Scroll powers up! It can now hold even more candy!\n\nmessage Level 21\n\n###################\n#qwet##...........#\n#[[[[##...j.#.l...#\n{nm/\\}#...#####...#\n{ssss}#.....#.....#\n{ssss}#...........#\n{ssss}#...........#\n{ssss}#...........#\n{ssss}#.g#g...i#i.#\n{ssss}#.###...###.#\n{ssss}#.g#g...i#i.#\n{ssss}#.....p.....#\n#]]]]##############\n\nmessage Level 22\n\n###################\n#qwet##....gig....#\n#[[[[##.....g.....#\n{nm/\\}#...........#\n{ssss}#.###...###.#\n{ssss}#jrrrj.lbbbl#\n{ssss}######p######\n{ssss}#.###...###.#\n{ssss}#.#.#...#.#.#\n{ssss}#.....g.....#\n{ssss}#g...gig...g#\n{ssss}#ig.gigig.gi#\n#]]]]##############\n\nmessage Level 23\n\n###################\n#qwet##.........#.#\n#[[[[##.##k###g.#.#\n{nm/\\}#.#b..#g#.#.#\n{ssss}#..##...j...#\n{ssss}#b.r#.#..#i##\n{ssss}#r.##r##.#.##\n{ssss}#g.#i#.#...##\n{ssss}#i..p#...#..#\n{ssss}####.#..##l##\n{ssss}#..#.h.#b...#\n{ssss}#....####.#.#\n#]]]]##############\n\nmessage Mr. Candy notices an increase in ninjas in the next room. Surely they must be guarding something!\n\nmessage Level 24\n\n###################\n#qwet##...........#\n#[[[[##.##rr.bb##.#\n{nm/\\}#.#r.....b#.#\n{ssss}#.r...h...b.#\n{ssss}#.r..j#l..b.#\n{ssss}#p..k###k...#\n{ssss}#.g..l#j..i.#\n{ssss}#.g...h...i.#\n{ssss}#.#g.....i#.#\n{ssss}#.##gg.ii##.#\n{1324}#...........#\n#]]]]##############\n\nmessage After defeating the ninjas, Mr. Candy stumbles upon one of the most magnificent rooms he has ever seen...the Candy Vault!\nmessage If he can clear all of this candy, he might be able to defeat the ninjas once and for all!\n\nmessage Level 25\n\n###################\n#qwet##gb...p...br#\n#[[[[##gb.......br#\n{nm/\\}####..g..####\n{ssss}#....r#r....#\n{ssss}#....bbb....#\n{ssss}#r..b#r#b..r#\n{ssss}#....bbb....#\n{ssss}#....r#r....#\n{ssss}####..g..####\n{ssss}#ri.......ig#\n{ssss}#ri.......ig#\n#]]]]##############\n\nmessage Mr. Candy basks in the glory of his achievement: he has cleared all of the candy!\nmessage But suddenly, the palace trembles...\nmessage \"YOU! YOU CRUSH MY CANDY!\" a voice booms.\nmessage Startled, Mr. Candy is speechless and looks around for the voice's source...but finds nothing.\nmessage \"YOU CRUSH KING CRUSHER'S CANDY! NOW KING CRUSHER CRUSH YOU!\"\nmessage \"EAT NINJA!\"\nmessage Mr. Candy is ambushed! He must defeat King Crusher to escape!\n\nmessage Level 26\n\n###################\n#qwet##...........#\n#[[[[##...r.r.r...#\n{nm/\\}#...rrrrr...#\n{ssss}#...rrrrr...#\n{ssss}#..h#####h..#\n{ssss}#..##.#.##..#\n{ssss}#..#######..#\n{ssss}#..##...##..#\n{ssss}#..#.###.#..#\n{ssss}#..#######..#\n{ssss}#p..#####...#\n#]]]]##############\n\nmessage \"WHAT? YOU DARE DESTROY MY CANDY CROWN?\"\nmessage \"NINJAS! DEFEND ME WHILE I CONSTRUCT A NEW CROWN!\"\n\nmessage Level 27\n\n#####################\n#qwet##...g....i....#\n#[[[[##...g.........#\n{nm/\\}#...g.........#\n{ssss}#...j...bgb...#\n{ssss}#.p.l.r#####r.#\n{ssss}#.r.k.###.#.#.#\n{ssss}#.r.hb###.#.#b#\n{ssss}#...ji#######i#\n{ssss}#...lb##...##b#\n{ssss}#...k.#######.#\n{ssss}#...h.r#####r.#\n#]]]]################\n\nmessage \"YOU DEFEAT MY NINJAS...BUT TOO LATE!\"\nmessage \"CANDY CROWN MARK TWO...ACTIVATE!\"\n\nmessage Level 28\n\n#####################\n#qwet##..ri.........#\n#[[[[##..ir..g.i.r..#\n{nm/\\}#..ri..igbrb..#\n{ssss}#..ir..rbgir..#\n{ssss}#..ri..#####..#\n{ssss}#..ir.#.###.#.#\n{ssss}#..ri.##.#.##.#\n{ssss}#..ir.#######.#\n{ssss}#..ri.#.....#.#\n{ssss}#..ir.##...##.#\n{ssss}#p.ri..#####..#\n#]]]]################\n\nmessage \"MY CANDY BARRIER IS BROKEN? IMPOSSIBLE!\"\nmessage \"NINJAS, DEFEND ME!\"\nmessage \"...NINJAS? YOU THERE?\"\nmessage \"NEVER MIND THEN...I'LL JUST FILL YOUR CANDY SCROLL SO YOU CAN'T DO ANYTHING! BWAHAHA!\"\n\nmessage Level 29\n\n#####################\n#qwet##r....ggg....r#\n#[[[[##.....g.g.....#\n{nm/\\}#..i#######i..#\n{1334}#..##.###.##..#\n{3114}#..###.#.###..#\n{1332}#i.#########.i#\n{3112}#..#########..#\n{1334}#..##.....##..#\n{3114}#..##.....##..#\n{1332}#..###...###..#\n{3112}#p.i#######i.r#\n#]]]]################\n\nmessage \"NO...STRENGTH...FLAGGING... ACTIVATE TOTAL CANDY TRANSFORMATION!\"\nmessage This is it! Take down King Crusher once and for all, and Mr. Candy can take back his name!\n\nmessage Level 30\n\n#####################\n#qwet##......p......#\n#[[[[##...rrrrrrr...#\n{nm/\\}#..rr..r..rr..#\n{ssss}#..rr..r..rr..#\n{ssss}#..rrrrrrrrr..#\n{ssss}#..rrrrrrrrr..#\n{ssss}#..rrrrrrrrr..#\n{ssss}#..rrr...rrr..#\n{ssss}#..rr.rrr.rr..#\n{ssss}#...rrrrrrr...#\n{ssss}#.............#\n#]]]]################\n\nmessage Mr. Candy has defeated King Crusher and has taken back his name! Future generations of Candies can live in peace, all thanks to the valiant efforts of Mr. Candy...and you, you wonderful person.\nmessage Here ends the saga of Mr. Candy and the Candy Scroll.\nmessage Thanks for playing!\n",[0,4,3,3,4,1,1,1,"restart","restart",0,4,2,2,1,2,2,2,2,2,4,3,2,2,3,3,4,3,3,3,3,0,0,0,4,2,2,2,1,1,4],"background wall:0,0,0,0,0,background scrollleft:1,1,1,1,1,0,0,0,0,arrowl background:2,background scrolltop:3,background drop1 scrollbg:4,\nbackground scrollbg:5,5,5,background candyg scrollbg:6,background scrollbottom:7,0,0,0,arrowu background:8,3,background drop2 scrollbg:9,5,5,5,5,7,0,\n0,0,arrowd background:10,3,background drop3 scrollbg:11,5,5,5,6,7,0,0,0,arrowr background:12,3,background drop4 scrollbg:13,5,\n5,5,6,7,0,0,0,0,0,background scrollright:14,14,14,14,14,0,0,0,\n0,0,0,0,0,0,0,0,0,0,background:15,15,15,15,15,15,15,\n15,15,0,0,15,15,15,15,background candyb:16,15,15,15,15,0,0,15,15,\n15,background ninjab:17,0,15,15,15,15,0,0,15,15,0,background candyr:18,0,0,0,15,\n15,0,0,background candyg:19,16,0,18,0,0,15,15,15,0,0,15,15,0,\n18,0,0,0,15,background player:20,0,0,15,15,15,17,0,15,15,15,15,\n0,0,15,15,15,15,15,15,15,15,15,0,0,19,15,15,15,\n15,15,15,15,19,0,0,0,0,0,0,0,0,0,0,0,0,\n",70,"1397264072628.9756"]
	],
	[
		"Pants, Shirt, Cap",
		["title Pants, Shirt, Cap\nauthor Jaewoong Hwang\nhomepage www.jaewoong.info\n\ncolor_palette gameboycolour\nbackground_color lightred\ntext_color white\n\nkey_repeat_interval 0.14\nnoundo\n\nyoutube ZznwuZ1xn7A\n\n========\nOBJECTS\n========\n\nBackground \nLightbrown\n\nVoid\nLightred\n00000\n00000\n00000\n00000\n00000\n\nNaked\nYellow White Black\n.222.\n.000.\n00000\n.111.\n.0.0.\n\nOnPants\nYellow Blue Black\n.222.\n.000.\n00000\n.111.\n.1.1.\n\nOnPantsShirt\nYellow Blue White Black\n.333.\n.000.\n22222\n.222.\n.1.1.\n\nOnPantsShirtCap\nYellow Blue White Red\n.3333\n.000.\n22222\n.222.\n.1.1.\n\nPants\nBlue\n.....\n.000.\n.0.0.\n.0.0.\n.....\n\nShirt\nWhite\n.....\n00000\n.000.\n.000.\n.....\n\nCap\nRed\n.....\n.....\n.000.\n.0000\n.....\n\nPackageGuy\nYellow Blue Brown Lightred\n11113\n30003\n22213\n22213\n31313\n\nJustDude\nYellow Blue Lightred\n11112\n20002\n11112\n21112\n21212\n\nGotcha\nYellow Blue White Red Brown\n.3333\n.000.\n.2444\n.2444\n.1.1.\n\nWallA\nDarkgrey Black\n00000\n00000\n00000\n11111\n11111\n\nWallB\nDarkgrey\n\nWallC\nDarkgrey Black Brown\n00000\n00000\n00000\n12221\n12221\n\nDoor\nBrown Lightbrown\n10001\n10001\n10001\n10001\n10001\n\nDesk\nBrown Darkbrown\n00000\n00000\n00000\n11111\n1...1\n\nBed\nBrown Darkbrown White Grey\n00000\n13331\n22222\n22222\n22222\n\nBedB\nWhite Grey Darkbrown\n11111\n22222\n.....\n.....\n.....\n\nBookshelfT\nBrown Darkbrown Red Orange Darkblue\n.....\n00000\n00000\n11111\n12341\n\nBookshelfT2\nBrown Darkbrown Red Orange Darkblue Darkgrey\n55555\n00000\n00000\n11111\n12341\n\nBookshelfB\nBrown Darkbrown Red Orange Darkblue\n12341\n11111\n14231\n14231\n11111\n\nBookshelfBDamned\nBrown Darkbrown Red Orange Darkblue\n12341\n11111\n10001\n10001\n11111\n\nBookshelfBDamnedForever\nBrown Darkbrown Red Orange Darkblue\n12341\n11111\n10001\n10001\n11111\n\nBooks\nRed Orange Darkblue\n..000\n.000.\n11222\n11122\n.11..\n\nBox\nBrown Darkbrown Black\n.000.\n02220\n02220\n.000.\n.111.\n\nMaru\nBrown DarkBrown Darkblue Green\n.202.\n03230\n02220\n.000.\n.111.\n\nCat\nDarkblue Darkgrey\n0....\n0.0.0\n00101\n00000\n0...0\n\nAnnoyingCat\nDarkblue Orange\n0....\n0.0.0\n00101\n00000\n0...0\n\n=======\nLEGEND\n=======\n\nPlayer = Naked or OnPants or OnPantsShirt or OnPantsShirtCap or Gotcha\nClothes = Pants or Shirt or Cap\nBookshelf = BookshelfT or BookshelfT2 or BookshelfB or BookshelfBDamned or BookshelfBDamnedForever\nWalls = WallA or WallB or WallC or Bookshelf or Void or Bed\nObstacles = Desk or Books or Box or Maru\n@ = Naked\np = Pants\ns = Shirt\nc = Cap\nG = PackageGuy\n. = Background\n' = Void\n- = WallA\n| = WallB\n] = WallC\n\\ = Door\nd = Desk\n& = Bed\n% = BedB\n# = BedB and Naked\nt = BookshelfT\ny = BookshelfT2\nb = BookshelfB\n$ = Cat\nx = Box\nm = Maru\n\n=======\nSOUNDS\n=======\n\nStartgame 45770106\nStartlevel 91211500\nPlayer Move 12938702\nPlayer CantMove 8078902\nClothes Destroy 96980907\nDoor Destroy 57302\nObstacles Move 17775308\nBooks Create 4343302\nAnnoyingCat Create 67156308\nMaru Create 53412305\nEndlevel 46308908\nRestart 92531500\nEndgame 54491308\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nBedB\nPlayer, Clothes, PackageGuy, JustDude, Walls, Obstacles, Cat, AnnoyingCat, Door, Void\n\n======\nRULES \n====== \n\n[ Action Naked | Pants ] -> [ OnPants | ]\n[ Action OnPants | Shirt ] -> [ OnPantsShirt | ]\n[ Action OnPantsShirt | Cap ] -> [ OnPantsShirtCap | ]\n\n[ Action Naked | PackageGuy ] -> [ Naked | PackageGuy ] message \".. I hate this job..\"\n[ Action OnPants | PackageGuy ] -> [ OnPants | PackageGuy ] message \"Dude, please..\"\n[ Action OnPantsShirt | PackageGuy ] -> [ OnPantsShirt | PackageGuy ] message \"Be polite to your package, boy.\"\n[ Action OnPantsShirtCap | PackageGuy ] -> [ Gotcha | JustDude ] WIN\n\n[ > Player | Clothes ] -> [ > Player | > Clothes ]\n[ > Player | Obstacles ] -> [ > Player | > Obstacles ]\n\nlate DOWN [ BookshelfBDamned | AnnoyingCat ] -> [ BookshelfB | AnnoyingCat ]\nUP [ Player | BookshelfB ] -> [ Player | BookshelfBDamned ]\nUP [ AnnoyingCat | BookshelfB ] -> [ AnnoyingCat | BookshelfBDamned ]\nlate DOWN [ BookshelfBDamned | ] -> [ BookshelfBDamnedForever | Books ]\n\nlate [ Player | Cat ] -> [ Player | AnnoyingCat ]\n[ Moving Player | ... | AnnoyingCat ] -> [ Moving Player | ... | < AnnoyingCat ]\n[ AnnoyingCat | Box ] -> [ | Maru ]\n\n[ Action Player | Door ] -> [ Player | ]\n\n==============\nWINCONDITIONS\n==============\n\n======= \nLEVELS\n=======\n\nmessage LEVEL 1\nmessage \"UPS!\"\n\n|----|'\n|&@..|'\n|%.c.]'\n|s..p\\g\n------'\n\nmessage LEVEL 2\nmessage First thing first\nmessage Pants, shirt, cap\n\n|-----|''\n|&@s.p|''\n--|.-.-]'\n''|.c..\\g\n''------'\n\nmessage LEVEL 3\nmessage You're so in a hurry that you bump things hard\nmessage Remember, hit R to restart\n\n|-----|'\n|&@..c|'\n|%d||.|'\n|p.--d]'\n|...s.\\g\n-------'\n\nmessage LEVEL 4\nmessage Some bumps are lethal\n\n|--yy--|'\n|&pbbc.]'\n|#...s.\\g\n--------'\n\nmessage LEVEL 5\nmessage Sorry that you don't have drawer\n\n'|-yy-|''''\n'|&bbd-y|''\n'|#....b-|'\n|-.--.d.p|'\n|cd.s-.-.]'\n|..|.....\\g\n----------'\n\nmessage LEVEL 6\nmessage Random fact: cats are lovely\n\n|---|'\n|&@s|'\n|%.$|'\n|p.-]'\n|..c\\g\n-----'\n\nmessage LEVEL 7\nmessage \"MEOW\"\n\n|--y---|\n|&@b.pc|\n|%....$|\n|..y--]-\n|-.bds\\g\n|.....|'\n-------'\n\nmessage LEVEL 8\nmessage Box + Cat = ?\n\n|--y---|\n|&@bdpc|\n|%....$|\n|-.y--]-\n|x.bds\\g\n|.....|'\n-------'\n\nmessage LEVEL 9\nmessage Box + Cat = Portable\n\n''''|y--|\n|----bxs|\n|&@d....|\n|%...|.]-\n|..$y-.\\g\n|..$b.d-|\n|.x..p.c|\n---------\n\nmessage You're happy now\nmessage Good for you\nmessage GAME OVER\n",[2,3,3,3,1,1,1,0,2,"restart",2,2,2,3,2,0,0,0,2,2,1,0,0,3,3,3,1,1,1,2,2,2,1,3,0,0,0,3,3,3,4,1,1,1,2,2,2,3,3,3,4,1,1,1,0,0,0,3,3,3,3,4,4,1,1,1,1],"background wallb:0,0,0,0,0,0,background walla:1,1,\nbackground bed:2,background bedb books:3,1,background maru:4,background books:5,1,1,background:6,\nbackground onpantsshirtcap:7,6,6,6,1,background bookshelft2:8,background bookshelfbdamnedforever:9,6,\n8,9,6,1,1,background desk:10,6,1,\n10,6,1,1,6,6,1,6,\n6,1,1,6,6,background wallc:11,background door:12,0,\n1,0,0,0,1,background packageguy:13,background void:14,14,\n",25,"1397264366021.823"]
	],
	[
		"Gobble Rush",
		["title Gobble Rush!\nauthor Mark Richardson\nagain_interval 0.05\nnoaction\nrequire_player_movement\nrun_rules_on_level_start\n\n\n========\nOBJECTS\n========\n\nBackground\nBlack\n\nExit\nWhite Black\n01010\n10101\n01010\n10101\n01010\n\nWall\nBrown\n\nHole\nBrown\n00000\n00.00\n0...0\n0...0\n0...0\n\nPlayer\nPink Blue Brown Red DarkBlue\n.222.\n.101.\n33333\n.444.\n44.44\n\nEnemy\nLightBrown\n.....\n0..0.\n.00..\n0000.\n0..0.\n\nAlert\nRed\n....0\n....0\n.....\n....0\n.....\n\nChicken\n#EA3 #FC9 #FEA\n.....\n2....\n.110.\n01100\n.000.\n\nLettuce\n#6C3 #5A2 #482 #361 #240\n.2.2.\n24342\n12421\n01310\n.002.\n\nLoS\nWhite\n.....\n.....\n.....\n.....\n.....\n\nMoveU\nWhite\n.....\n.....\n.....\n.....\n.....\n\nMoveD\nWhite\n.....\n.....\n.....\n.....\n.....\n\nMoveL\nWhite\n.....\n.....\n.....\n.....\n.....\n\nMoveR\nWhite\n.....\n.....\n.....\n.....\n.....\n\nCanMove\nWhite\n.....\n.....\n.....\n.....\n.....\n\nLevel0\nWhite #F00\n.....\n.....\n.111.\n.....\n.....\n\nLevel1\nWhite #F00\n00000\n.....\n.111.\n.....\n.....\n\nLevel2\nWhite #F00\n.....\n00000\n.111.\n.....\n.....\n\nLevel3\nWhite #F88\n.....\n.....\n01110\n.....\n.....\n\nLevel4\nWhite #F00\n.....\n.....\n.111.\n00000\n.....\n\nLevel5\nWhite #F00\n.....\n.....\n.111.\n.....\n00000\n\n\n=======\nLEGEND\n=======\n\n. = Background\nX = Exit\n# = Wall\nH = Hole\nP = Player\nQ = Player and Exit\nE = Enemy\nF = Enemy and Exit\nC = Chicken\nD = Chicken and Exit\nL = Lettuce\nM = Lettuce and Exit\n0 = Level0\n1 = Level1\n2 = Level2\n3 = Level3\n4 = Level4\n5 = Level5\n\nMove = MoveU or MoveD or MoveL or MoveR\nObstacle = Wall or Enemy\nFood = Player or Chicken\n\n\n=======\nSOUNDS\n=======\n\nSFX0 97542903 (enemy alerted)\nPlayer Destroy 41368102 (player eaten)\nChicken Destroy 74663702 (chicken eaten)\nLettuce Destroy 74663702 (lettuce eaten)\nEnemy Create 81259707 (enemy moving)\nEndLevel 22595303\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nExit, Hole, Level0, Level1, Level2, Level3, Level4, Level5\nWall, Player, Enemy, Chicken, Lettuce\nLoS, Move\nAlert, CanMove\n\n\n======\nRULES\n======\n\n(Prevent illegal moves)\n[ > Player | Hole ] -> cancel\n\n(Tell alert enemies to move)\n[ Enemy Move ] -> [ Enemy CanMove Move ]\n\n(Stop enemies)\nlate up [ Enemy CanMove MoveU | Obstacle no Move ] -> [ Enemy | Obstacle ]\nlate down [ Enemy CanMove MoveD | Obstacle no Move ] -> [ Enemy | Obstacle ]\nlate left [ Enemy CanMove MoveL | Obstacle no Move ] -> [ Enemy | Obstacle ]\nlate right [ Enemy CanMove MoveR | Obstacle no Move ] -> [ Enemy | Obstacle ]\nlate down [ Enemy CanMove MoveD | Enemy CanMove MoveU ] -> [ Enemy | Enemy ]\nlate right [ Enemy CanMove MoveR | Enemy CanMove MoveL ] -> [ Enemy | Enemy ]\nlate up [ Enemy CanMove MoveU | Enemy no Move ] -> [ Enemy | Enemy ]\nlate down [ Enemy CanMove MoveD | Enemy no Move ] -> [ Enemy | Enemy ]\nlate left [ Enemy CanMove MoveL | Enemy no Move ] -> [ Enemy | Enemy ]\nlate right [ Enemy CanMove MoveR | Enemy no Move ] -> [ Enemy | Enemy ]\n\n(Move enemies)\nlate up [ Enemy CanMove MoveU | no Obstacle ] -> [ | Enemy MoveU ] again\nlate down [ Enemy CanMove MoveD | no Obstacle ] -> [ | Enemy MoveD ] again\nlate left [ Enemy CanMove MoveL | no Obstacle ] -> [ | Enemy MoveL ] again\nlate right [ Enemy CanMove MoveR | no Obstacle ] -> [ | Enemy MoveR ] again\nlate [ Enemy CanMove ] -> [ Enemy ]\n\n(Remove alerts)\nlate [ Enemy Alert ] -> [ Enemy ]\n\n(Create line of sight)\nlate [ Food no CanMove ] -> [ Food CanMove ]\nlate [ Move ] [ CanMove ] -> [ Move ] [ ]\n\n(Chase player)\nlate [ Player CanMove ] -> [ Player LoS ]\nlate [ Player LoS | no Wall no LoS ] -> [ Player LoS | LoS ]\nlate [ Player Los | ... | LoS | no Wall no LoS ] -> [ Player LoS | ... | LoS | LoS ]\nlate up [ Enemy LoS no Move | ... | Player LoS ] -> [ Enemy MoveU Alert | ... | Player LoS ] SFX0\nlate down [ Enemy LoS no Move | ... | Player LoS ] -> [ Enemy MoveD Alert | ... | Player LoS ] SFX0\nlate left [ Enemy LoS no Move | ... | Player LoS ] -> [ Enemy MoveL Alert | ... | Player LoS ] SFX0\nlate right [ Enemy LoS no Move | ... | Player LoS ] -> [ Enemy MoveR Alert | ... | Player LoS ] SFX0\nlate [ LoS ] -> [ ]\n\n(Chase chickens)\nstartloop\nlate random [ Chicken CanMove ] -> [ Chicken LoS ]\nlate [ Chicken LoS | no Wall no LoS ] -> [ Chicken LoS | LoS ]\nlate [ Chicken Los | ... | LoS | no Wall no LoS ] -> [ Chicken LoS | ... | LoS | LoS ]\nlate up [ Enemy LoS no Move | ... | Chicken LoS ] -> [ Enemy MoveU Alert | ... | Chicken LoS ] SFX0\nlate down [ Enemy LoS no Move | ... | Chicken LoS ] -> [ Enemy MoveD Alert | ... | Chicken LoS ] SFX0\nlate left [ Enemy LoS no Move | ... | Chicken LoS ] -> [ Enemy MoveL Alert | ... | Chicken LoS ] SFX0\nlate right [ Enemy LoS no Move | ... | Chicken LoS ] -> [ Enemy MoveR Alert | ... | Chicken LoS ] SFX0\nlate [ LoS ] -> [ ]\nendloop\n\n\n==============\nWINCONDITIONS\n==============\n\nsome Exit on Player\nno Alert\nno Move\n\n\n=======\nLEVELS\n=======\n\n..#####....\n..#X..#...3\n..#...###.0\n..#E....#.0\n..###...#.0\n....#..P#.0\n....#####..\n\n..#######..\n..#P....#.4\n..#.....#.0\n..#####.#.0\n..#EX...#.0\n..###...#.0\n....#####..\n\n..#######..\n..#.....#.5\n..#..#..#.0\n..#.....#.0\n..#.P##E#.0\n..#..#XE#.0\n..#######..\n\n..#######..\n..#.....#.0\n..#.E...#.1\n..#.E...#.0\n..#.E...#.0\n..#XE.P.#.0\n..#######..\n\n..#######..\n..#..#.X#.0\n..#..E..#.2\n..##.#E##.0\n..#.....#.0\n..#P.#..#.0\n..#######..\n\n..#######..\n..#X...P#.0\n..##.#..#.3\n..#...#.#.0\n..#.....#.0\n..#.E#.E#.0\n..#######..\n\n..######...\n..#P.#.##.0\n..#.X..E#.4\n..##.#..#.0\n..#.....#.0\n..##..E.#.0\n...######..\n\n...####....\n..##..##..0\n..#.P..##.5\n..#..X.E#.0\n..##...##.0\n...##E##..0\n....###....\n\n..#######..\n..#XE...#.0\n..#EE..##.0\n..#..P..#.1\n..#.....#.0\n..#.#...#.0\n..#######..\n\n..#######..\n..#P..#X#.0\n..#.....#.0\n..##....#.2\n..#.....#.0\n..#E..#E#.0\n..#######..\n\n..#######..\n..#X...P#.0\n..#.###.#.0\n..#.....#.3\n..#E###.#.0\n..#....C#.0\n..#######..\n\n..#######..\n..#P....#.0\n..#..#.E#.0\n..#.....#.4\n..##.C.##.0\n...##X##..0\n....###....\n\n..#######..\n..#....C#.0\n..##X#.##.0\n..#EH..#..5\n..##...#..0\n...#.PC#..0\n...#####...\n\n...######..\n...#.#..#.0\n..##Q..E#.0\n..#...#.#.0\n..#..#..#.1\n..#.E.C.#.0\n..#######..\n\n.....####..\n...###.E#.0\n...#P...#.0\n..##..L.#.0\n..#..LXL#.2\n..#E..L.#.0\n..#######..\n\n...######..\n..##LLCX#.0\n..#LLCLC#.0\n..#LCL.L#.0\n..#ELLPL#.3\n..#LLC#L#.0\n..#######..\n\n..#######..\n..#....P#.0\n..#E.#E.#.0\n..#.....#.0\n..##LLL##.4\n...##X##..0\n....###....\n\n..#######..\n..##LXL##.0\n..#..L..#.0\n..#..#..#.0\n..#E...E#.5\n..##.P.##.0\n..#######..\n\n..#######..\n..#H.P..#.0\n..#XH...#.0\n..#..H.E#.0\n..#...H.#.0\n..#.E...#.1\n..#######..\n\n..#######..\n..#.E.E.#.0\n..#P....#.0\n..#..X.E#.0\n..#L..L.#.0\n..#.E.EL#.2\n..#######..\n\n..#######..\n..#L.L.L#.0\n..#L.L.L#.0\n..#L.P.L#.0\n..#L.L.L#.0\n..#L.L.L#.3\n..##X#X##..\n\n",[1,1,1,"restart",1,3,2,1,0,0,1,1,2,0,1,2,3,2,0,1,2,0],"background:0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,background wall:1,1,1,1,1,0,0,1,\n0,background player:2,alert background enemy moveu:3,1,1,0,1,background enemy:4,0,0,background lettuce:5,\n1,1,1,0,1,0,5,background exit:6,1,1,0,\n0,0,5,1,1,1,0,0,0,1,1,\n0,1,1,1,1,1,0,0,0,0,0,\n0,0,0,0,0,background level0:7,7,7,background level4:8,7,0,\n",16,"1397264727401.1748"]
	],
	[
		"Slidings",
		["title Slidings\nauthor Alain Brobecker\nhomepage abrobecker.free.fr\n\n========\nOBJECTS\n========\n\nBackground\n#d8a96c #e5b679\n11111\n10101\n11111\n10101\n11111\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\n#88bbbb #448888\n11111\n01111\n11101\n11111\n10111\n\nOverWall\n#88bbbb #448888\n11111\n01111\n11101\n11111\n10111\n\nCount\n#88bbbb #448888 White\n11111\n02221\n12221\n12221\n10111\n\nCountEnd\n#88bbbb #448888\n11111\n01111\n11101\n11111\n10111\n\nPlayer\n#88ff22 #44ff00 #11cc00\n.112.\n10012\n10012\n21122\n.222.\n\nPlayerHasMoved\n#ffe02c #ffc700 #c87700\n.112.\n10012\n10012\n21122\n.222.\n\nDeadPlayer\n#ffe02c #ffc700 #c87700\n.112.\n10012\n10012\n21122\n.222.\n\nBallA\n#999999 #777777 #444444\n.112.\n10012\n10012\n21122\n.222.\n\nBallB\n#999999 #777777 #444444\n.112.\n10012\n10012\n21122\n.222.\n\nBallC\n#999999 #777777 #444444\n.112.\n10012\n10012\n21122\n.222.\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nA = BallA\nB = BallB\nC = BallC\nD = BallB and OverWall\nE = BallC and OverWall\nP = Player\nO = Target\nm = Count\nn = CountEnd\n\nItem = Player or Wall or BallA or BallB or BallC or Count or CountEnd\n\n=======\nSOUNDS\n=======\n\nsfx0 5160507 (move)\nsfx1 83704102 (wrong move)\nsfx2 16709508\nEndLevel 123413 (win)\nEndGame 10475908\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, BallA, BallB, BallC, Count, CountEnd, DeadPlayer, PlayerHasMoved\nOverWall\n\n======\nRULES\n======\n\n(Player movements)\n[> Player | Item] -> [ Player | Item] sfx1\n[> Player | No Item] -> [ | > Player] again sfx0\n[> Player] -> [ PlayerHasMoved ]\n\n(swap between balls)\n[Action Player] [BallA] [BallB] [BallC] -> [BallC] [Player] [BallA] [BallB]\n[ Player OverWall ] [BallA] [BallB] [BallC] -> [BallC OverWall ] [Player] [BallA] [BallB] again\n\n(count remaining moves)\n[ PlayerHasMoved ] [ Wall | CountEnd | Wall ] -> [ DeadPlayer ] [Wall | Wall | Wall]\n[ DeadPlayer ] -> [ DeadPlayer ] sfx2\n[ DeadPlayer ] -> restart\n[ PlayerHasMoved ] [ Count | CountEnd ] -> [Player] [CountEnd | Wall ]\n[ PlayerHasMoved ] -> [ Player ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Player on Target\n\n=======\nLEVELS\n=======\n\n(you must always have a # before the first counter)\n\nmessage Bring a ball on the spot. X to control next sliding ball. level 1: 3 moves\n#mmmn#\n#PA..#\n#..O.#\nD####E\n\nmessage level 2: 4 moves\n#mmmmn\n#.O..#\n#P####\n#A####\nD####E\n\nmessage level 3: 4 moves\n#mmmmn#\n#PAO..#\n##....#\nD#####E\n\nmessage level 4: 5 moves\n#mmmmmn\n#.....#\n#..O..#\n#PA####\nD#####E\n\nmessage level 5: 7 moves\n##mmmmmmmn\n##..O..P##\n#.......A#\nD########E\n\nmessage level 6: 7 moves\n#mmmmmmmn\n#P.A....#\n#.......#\n#.......#\n#..O#...#\n#.......#\n#.......#\n#B......#\n########E\n\nmessage level 7: 8 moves\n#mmmmmmm\n#.O.#P.m\n#...#ABn\n#......#\n#...#..#\n#...#..#\n#######E\n\nmessage level 8: 5 moves\n#mmmmmn\n#....P#\n#A.O..#\n#B....#\n#.C...#\n#######\n\nmessage level 9: 9 moves\n#mmmmmmm\n##..P..m\n##.....m\n##..O..n\n##A....#\n##....B#\n#######E\n\nmessage level 10: 9 moves\n#mmmmmmm\n###..##m\n##...P#m\n#..O...n\n#......#\n##.A..##\n###..###\nD######E\n\nmessage level 11: 13 moves\nmmmmmmmm\nm.P....m\nm...O..m\n#A....nm\nD######E\n\n\n",[1,2,2,4,2,3,4,4,2,3],"background wall:0,0,0,0,0,0,0,background count:1,\n0,0,0,0,0,0,1,background:2,\n2,2,2,2,0,1,2,2,\n2,2,2,0,background countend:3,2,2,background target:4,\n2,background player:5,0,0,2,2,2,2,\nbackground balla:6,0,0,2,2,2,2,background ballb:7,\n0,0,0,0,0,0,0,background ballc overwall:8,\n",17,"1397264922711.8103"]
	],
/*	[
		"Drop Swap",
		["title Drop Swap\nauthor Aaron Steed\nhomepage www.robotacid.com\n\nkey_repeat_interval 0.23\nagain_interval 0.05\nnoaction\nnoundo\nbackground_color Black\ntext_color Grey\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nBackground\nBlack\n\nPlayer\n#ffffff #000000 #626263 #3c3b3c \n.222.\n21112\n23132\n20102\n.222.\n\nDeadPlayer\n#ffffff #000000 #626263 #3c3b3c \n.222.\n21112\n21112\n23132\n.222.\n\nBaseWall\n#222222 #333333 #444444 #ffffff \n11110\n12220\n12200\n12000\n00000\n\nAPill\n#ff0000 #ff7374 #ff0000 #ff0000 \n.111.\n11110\n11010\n11100\n.000.\n\nBPill\n#00de00 #cffa92 #ff0000 #ff0000 \n.111.\n10010\n10110\n11100\n.000.\n\nCPill\n#7a35fc #b56bfd #ff0000 #ff0000 \n.111.\n10110\n11010\n11100\n.000.\n\nDPill\n#0094fc #79b5fd #ff0000 #ff0000 \n.111.\n10100\n11010\n10100\n.000.\n\nEPill\n#d1c200 #fff919 #ffffff #ff0000 \n.111.\n10010\n10010\n11110\n.000.\n\nFPill\n#ff33b1 #ff76d2 #ff0000 #ff0000 \n.111.\n10100\n11110\n10110\n.000.\n\nAllPill\n#eeee66 #ffffff #ffffcc #ffffff\n.112.\n11112\n11012\n21120\n.220.\n\nNoPill\n#ffffff #000000 #ffde85 #ff0000 \n.000.\n00000\n21012\n.000.\n..2..\n\nBomb\n#6e6e6e #000000 #ff0000 #fcf26b \n.020.\n02320\n01210\n01110\n.000.\n\nGemPill\n#ffffff #000000 #626263 #3c3b3c \n..0..\n.002.\n00022\n.223.\n..2..\n\nCount\n#ffffff #000000 #5a595a #ff0000 \n.....\n.000.\n.000.\n.000.\n.....\n\nMarked\n#ffffff #000000\n.....\n..1..\n.101.\n..1..\n.....\n\nCountTray\n#333333\n\nGemTray\n#333333\n\nStartGem\nred\n\nCollect\nWhite\n\nDebris1\n#ffffff #0739f5 #1f0f42 #ffffff\n.0.0.\n00.00\n..0..\n00.00\n.0.0.\n\nDebris2\n#ffffff #0739f5 #1f0f42 #ffffff \n.....\n.0.0.\n..0..\n.0.0.\n.....\n\nEmpty\nBlack\n\nOldPos\nBlack\n\nStartCount\nBlack\n\nDropWall1\n#222222 #333333 #444444 #ffffff\n11110\n12220\n12200\n12200\n12200\n\nDropWall2\n#222222 #333333 #444444 #ffffff \n11110\n12220\n12200\n12200\n12200\n\nDropWall3\n#222222 #333333 #444444 #ffffff \n11110\n12220\n12200\n12200\n12200\n\nDropWall4\n#222222 #333333 #444444 #ffffff \n11110\n12220\n12200\n12200\n12200\n\nDropMarker\nBlue\n\nInit\nPurple\n\n=======\nLEGEND\n=======\n\n. = Background\n@ = Player\np = DeadPlayer\n# = BaseWall\na = APill\nb = BPill\nc = CPill\nd = DPill\ne = EPill\nf = FPill\nn = NoPill\nx = AllPill\nu = Count and CountTray\nw = Count and CountTray and StartCount\ng = GemPill\nq = GemTray\no = GemTray and StartGem\np = Bomb\ni = Init\nj = DropWall1\nk = DropWall2\nl = DropWall3\nm = DropWall4\n\n\nMatchPill = APill or BPill or CPill or DPill or EPill or FPill or AllPill\nPill = MatchPill or NoPill or GemPill or Bomb\nDebris = Debris1 or Debris2\nAMatch = APill or AllPill\nBMatch = BPill or AllPill\nCMatch = CPill or AllPill\nDMatch = DPill or AllPill\nEMatch = EPill or AllPill\nFMatch = FPill or AllPill\nWall = BaseWall or DropWall1 or DropWall2 or DropWall3 or DropWall4\nItem = Pill or Debris or Wall or Player\nHeavy = Pill or Player\nDropping = Marked or DropMarker\nDropMix1 = APill or BPill or CPill or DPill or EPill\nDropMix2 = APill or BPill or CPill or DPill or EPill or GemPill\nDropMix3 = APill or BPill or CPill or DPill or EPill or NoPill\nDropMix4 = APill or BPill or CPill or DPill or EPill or FPill or GemPill\nDropMix5 = APill or BPill or CPill or DPill or EPill or FPill\nDropWallMarked = DropWall1 or DropWall3\n\n=======\nSOUNDS\n=======\n\nsfx0 54236904 (illegal)\nsfx1 5160507 (swap)\nsfx2 19008103 (allpill)\nsfx3 50665503 (crush 3)\nsfx4 80820507 (land)\nsfx5 2030908 (blast)\nsfx6 3032303 (bomb)\nsfx7 83704102 (dead)\nsfx8 7194508 (gem collect)\nEndLevel 16709508 (win)\n\n================\nCOLLISIONLAYERS\n================\n\n\nCollect, StartCount, StartGem\nBackground\nOldPos, CountTray, GemTray\nPlayer, Wall, Pill, Empty, Count, DeadPlayer, Bomb, Init\nDebris, Marked, DropMarker\n\n======\nRULES\n======\n\n(init)\n[ DropWall1 ] [ Init ] -> [ DropWall1 ] [ random DropMix1 Marked ]\n[ DropWall2 ] [ Init ] -> [ DropWall2 ] [ random DropMix1 ]\n[ DropWall3 ] [ Init ] -> [ DropWall3 ] [ random DropMix1 Marked ]\n[ DropWall4 ] [ Init ] -> [ DropWall4 ] [ random DropMix5 ]\n\n(debris clean up)\n[ Debris2 ] -> [ Empty ] again\n[ Debris1 ] -> [ Debris2 ] again\n\n(player - pill swapping)\n[ > Player | Pill ] -> [ Pill OldPos | Player ] sfx1\n[ Player Marked | OldPos ] -> [ Player | OldPos Marked ]\n\n(blocked move)\n[ > Player | No Pill ] -> [ Player | ] sfx0\n\n(pill combos)\n[ AMatch | AMatch | AMatch ] -> [ AMatch Collect | AMatch Collect | AMatch Collect ]\n[ BMatch | BMatch | BMatch ] -> [ BMatch Collect | BMatch Collect | BMatch Collect ]\n[ CMatch | CMatch | CMatch ] -> [ CMatch Collect | CMatch Collect | CMatch Collect ]\n[ DMatch | DMatch | DMatch ] -> [ DMatch Collect | DMatch Collect | DMatch Collect ]\n[ EMatch | EMatch | EMatch ] -> [ EMatch Collect | EMatch Collect | EMatch Collect ]\n[ FMatch | FMatch | FMatch ] -> [ FMatch Collect | FMatch Collect | FMatch Collect ]\n[ NoPill | NoPill | NoPill ] -> [ NoPill Collect | NoPill Collect | NoPill Collect ]\n\n(bomb activate)\n[ OldPos Bomb ] -> sfx5\nup [ OldPos Bomb | Pill ] -> [ OldPos Bomb | Pill > Collect ]\nright [ OldPos Bomb | Pill ] -> [ OldPos Bomb | Pill > Collect ]\ndown [ OldPos Bomb | Pill ] -> [ OldPos Bomb | Pill > Collect ]\nleft [ OldPos Bomb | Pill ] -> [ OldPos Bomb | Pill > Collect ]\n[ OldPos Bomb ] -> [ OldPos Empty ]\n\n(blast)\nup [ Pill > Collect | Pill ] -> [ Pill Collect | Pill > Collect ]\nright [ Pill > Collect | Pill ] -> [ Pill Collect | Pill > Collect ]\ndown [ Pill > Collect | Pill ] -> [ Pill Collect | Pill > Collect ]\nleft [ Pill > Collect | Pill ] -> [ Pill Collect | Pill > Collect ]\n[ > Collect ] -> [ Collect ]\n[ GemPill Collect ] -> [ GemPill ]\n\n(reward matches)\n(junction)\nRight [ Collect | Collect ] -> [ > Collect | > Collect ]\nDown [ Collect | Collect ] -> [ > Collect | > Collect ]\n[ Down Collect | Right Collect ] [ Collect OldPos ] -> [ Collect | Collect ] [ Bomb OldPos ] sfx6\n(4: create AllPill)\n[ MatchPill Collect | MatchPill Collect | MatchPill Collect | MatchPill Collect ] [ Collect OldPos ] -> [ MatchPill Collect | MatchPill Collect | MatchPill Collect | MatchPill Collect ] [ AllPill OldPos ] sfx2\n\n(count moves)\n(subtract on move)\nrandom right [ OldPos ] [ Count | No Count ] -> [ OldPos ] [ | ]\n(fill on Debris)\n[ Collect ] [ CountTray ] -> [ Collect ] [ CountTray Count ]\n\n(dead?)\n[ DeadPlayer ] -> cancel\n[ No Count StartCount CountTray ] [ Player ] -> [ No Count StartCount CountTray ] [ DeadPlayer ] sfx7\n[ Player | NoPill Collect ] -> [ DeadPlayer | NoPill ]\n[ DeadPlayer ] [ CountTray Count ] -> [ DeadPlayer ] [ CountTray ] sfx7\n\n(destroy matched)\n[ APill Collect ] -> [ Debris1 ] sfx3 again\n[ BPill Collect ] -> [ Debris1 ] sfx3 again\n[ CPill Collect ] -> [ Debris1 ] sfx3 again\n[ DPill Collect ] -> [ Debris1 ] sfx3 again\n[ EPill Collect ] -> [ Debris1 ] sfx3 again\n[ FPill Collect ] -> [ Debris1 ] sfx3 again\n[ AllPill Collect ] -> [ Debris1 ] sfx3 again\n[ Player ] [ NoPill Collect ] -> [ Player ] [ Debris1 ] sfx3 again\n\n(destroy NoPills)\ndown [ NoPill | Wall ] -> [ Debris1 | Wall ] again\n\n(collect gems)\ndown [ GemPill | Wall ] -> [ GemPill Collect | Wall ]\n[ GemPill Collect ] [ StartGem No GemPill ] -> [ Debris1 ] [ StartGem GemPill ] again sfx8\nright [ GemPill Collect ] [ GemPill GemTray | No GemPill GemTray ] -> [ Debris1 ] [ GemPill GemTray | GemPill GemTray ] again sfx8\n\n(drop)\n[ Heavy No Dropping ] -> [ Heavy DropMarker ]\ndown [ Heavy Dropping | Empty ] -> [ Empty | Heavy Dropping ]\n[ DropMarker ] -> [ ]\ndown [ DropWall1 | Empty ] -> [ DropWall1 | random DropMix1 ] again\ndown [ DropWall2 | Empty ] -> [ DropWall2 | random DropMix2 ] again\ndown [ DropWall3 | Empty ] -> [ DropWall3 | random DropMix3 ] again\ndown [ DropWall4 | Empty ] -> [ DropWall4 | random DropMix4 ] again\n\n(gem drop win)\nright [ GemPill GemTray | Wall ] -> win\n\n[ OldPos ] -> [ ]\n\n==============\nWINCONDITIONS\n==============\n\nNo Marked\nSome DropWallMarked\n\n======= \nLEVELS\n=======\n\nmessage collect orbs by matching 3\nmessage match 3 to restore move-energy\nmessage level 1: collect all marked orbs\n\nwuuuuu#\n#jjjjj#\n#iiiii#\n#iiiii#\n#iiiii#\n#iiiii#\n#ii@ii#\n#######\n\nmessage level 2: collect all marked orbs\n\nwuuuuuu#\n#jjjjjj#\n#iiiiii#\n#iiiiii#\n#iiiiii#\n#iiiiii#\n#iiiiii#\n#iiiiii#\n#iii@ii#\n########\n\nmessage collect gray gems by getting them to the bottom\nmessage level 3: collect 8 gems\n\noqqqqqqq#\nwuuuuuuu#\n#kkkkkkk#\n#iiiiiii#\n#iiiiiii#\n#iiiiiii#\n#iiiiiii#\n#iiiiiii#\n#iiiiiii#\n#iiiiiii#\n#iii@iii#\n#########\n\nmessage if you are next to 3 matching skulls you die\nmessage skulls can be destroyed by getting them to the bottom\nmessage level 4: collect all marked orbs\n\nwuuuuuu#\n#llllll#\n#iiiiii#\n#iiiiii#\n#iiiiii#\n#iiiiii#\n#iiiiii#\n#iiiiii#\n#iii@ii#\n########\n\nmessage level 5: collect 7 gems\n\noqqqqqqq#\nwuuuuuuu#\n#mmmmmmm#\n#iiiiiii#\n#iiiiiii#\n#iiiiiii#\n#iiiiiii#\n#iiiiiii#\n#iiiiiii#\n#iiiiiii#\n#iii@iii#\n#########\n\nmessage thanks for playing\n\n\n",[0,0,0,1],"background count counttray startcount:0,background basewall:1,1,1,1,1,1,\n1,background count counttray:2,background dropwall1:3,background cpill marked:4,apill background marked:5,4,background dpill marked:6,\nbackground epill marked:7,1,2,3,background bpill:8,4,background player:9,\n5,4,1,2,3,background dpill:10,background cpill:11,\n8,6,background bpill marked:12,1,2,3,8,\n10,10,8,5,1,2,3,\n8,apill background:13,background epill:14,6,6,1,1,\n1,1,1,1,1,1,1,\n",3,"1397265031794.002"]
	],*/
	[
		"Flying Kick",
		["title Flying Kick\nauthor Aaron Steed\nhomepage www.robotacid.com\n\nkey_repeat_interval 0.23\nagain_interval 0.1\nnoaction\nbackground_color Black\ntext_color Yellow\n\n========\nOBJECTS\n========\n\nBackground\n#e5b679\n\nWallTop \n#d32112 #820e00 #d34900 #9da3c7 \n22220\n21110\n01111\n11111\n11111\n\nWallBase\n#820e00\n\nBreakWall\n#ffd600 #ffa30d #b76800 #979594 \n10101\n00002\n10101\n00002\n12121\n\nBreakDebris1\n#ffd600 #ffa30d #b76800 #979594 \n10101\n0.0.2\n10.01\n0.0.2\n12121\n\nBreakDebris2\n#ffd600 #ffa30d #b76800 #979594 \n.0.0.\n0.0.2\n.0.0.\n0.0.2\n.2.2.\n\nBreakDebris3\n#ffd600 #ffa30d #b76800 #979594 \n.0.0.\n0...2\n.....\n0...2\n.2.2.\n\nSpikeUp\n#d32112 #820e00 #ffffff #9da3c7 \n..3..\n..2..\n.223.\n.223.\n10201\n\nMine\n#d32112 #878787 #ffffff #9da3c7 \n..2..\n.223.\n22231\n.331.\n..1..\n\nBlood1\n#d21d00 #ffe02c #ffc700 #c87700 \n0.0.0\n.000.\n00000\n.000.\n0.0.0\n\nBlood2\n#d21d00 #ffe02c #ffc700 #c87700 \n.....\n.0.0.\n..0..\n.0.0.\n.....\n\nBlood3\n#d21d00 #ffe02c #ffc700 #c87700 \n.....\n.....\n..0..\n.....\n.....\n\nBlood4\n#d21d00 #ffe02c #ffc700 #c87700 \n.....\n.....\n.....\n.....\n.....\n\nPlayerGround\n#000000 #e72119 #ffffff #ff0000 \n.000.\n.202.\n.000.\n.111.\n.0.0.\n\nPlayerFall\n#000000 #e72119 #ffffff #ff0000 \n.000.\n.202.\n.000.\n01110\n.....\n\nPlayerJumpStart\n#000000 #e72119 #ffffff #ff0000 \n.000.\n.202.\n.111.\n.0.0.\n.....\n\nPlayerJump\n#000000 #e72119 #ffffff #ff0000 \n.000.\n.202.\n.111.\n.0.0.\n.....\n\nPlayerKickRight\n#000000 #e72119 #ffffff #ff0000 \n000..\n002..\n11100\n.00..\n.....\n\nPlayerKickRightBack\n#000000 #e72119 #ffffff #ff0000 \n.000.\n.200.\n0111.\n.0...\n.....\n\nPlayerKickRightBackWait\n#000000 #e72119 #ffffff #ff0000 \n.000.\n.200.\n0111.\n.0...\n.....\n\nPlayerKickLeft\n #000000 #e72119 #ffffff #ff0000 \n..000\n..200\n00111\n..00.\n.....\n\nPlayerKickLeftBack\n#000000 #e72119 #ffffff #ff0000 \n.000.\n.002.\n.1110\n...0.\n.....\n\nPlayerKickLeftBackWait\n#000000 #e72119 #ffffff #ff0000 \n.000.\n.002.\n.1110\n...0.\n.....\n\nCrateGround\n#d32112 #ffa30d #ff8126 #c93700 \n.223.\n21123\n21123\n32233\n.333.\n\nCrateFall\n#d32112 #ffa30d #ff8126 #c93700\n.223.\n21123\n21123\n32233\n.333.\n\nCrateLeft\n#d32112 #ffe02c #ffc700 #c87700 \n.223.\n21123\n21123\n32233\n.333.\n\nCrateRight\n#d32112 #ffe02c #ffc700 #c87700 \n.223.\n21123\n21123\n32233\n.333.\n\nExit\n#000000 #ffe02c #ffc700 #c87700 \n.000.\n00000\n00010\n00000\n00000\n\nSwitch\n#ffd600 #ffa30d #a62514 #c93700 \n.....\n.....\n.001.\n.001.\n20012\n\nGateClosed\n#ffd600 #ffa30d #a62514 #c93700 \n33333\n30012\n31.12\n21112\n22222\n\nGateOpen\n#ffd600 #ffa30d #a62514 #c93700 \n3.3.3\n.....\n3...2\n.....\n2.2.2\n\nGateClosing\nPink\n\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = WallBase\nh = WallTop\n@ = PlayerGround\no = CrateGround\na = SpikeUp\ne = Exit\nf = Switch\ng = GateOpen\nj = Mine\nk = BreakWall\n\nPlayer = PlayerGround or PlayerJump or PlayerKickLeft or PlayerKickRight or PlayerKickLeftBack or PlayerKickRightBack or PlayerKickLeftBackWait or PlayerKickRightBackWait or PlayerFall or PlayerJumpStart\nWall = WallTop or WallBase\nGate = GateOpen or GateClosed\nCrate = CrateGround or CrateFall or CrateRight or CrateLeft\nItem = Player or Wall or Crate or GateClosed or BreakWall\nSpike = SpikeUp or Mine\nBlood = Blood1 or Blood2 or Blood3 or Blood4\nDebris = BreakDebris1 or BreakDebris2 or BreakDebris3\n\n=======\nSOUNDS\n=======\n\nsfx0 8545502 (kick crate)\nsfx1 25968909 (jump)\nsfx2 2437309 (kick)\nsfx3 31029704 (kick wall)\nsfx4 31651909 (death)\nsfx5 83279102 (gate)\nCrate MOVE 29447307\nsfx6 42954502 (break wall)\n\n\n================\nCOLLISIONLAYERS\n================\n\nGateClosing\nBackground\nSpike, Exit, Switch, GateOpen\nPlayer, Wall, Crate, GateClosed, BreakWall\nBlood, Debris\n\n======\nRULES\n======\n\n(AGAIN AGAIN AGAIN!!!)\n\n[Blood4] -> Restart\n\n[BreakDebris3] -> []\n[BreakDebris2] -> [BreakDebris3] again\n[BreakDebris1] -> [BreakDebris2] again\n\n(PLAYER)\n\n(input)\nright [right PlayerJump] -> [PlayerKickRightBackWait] sfx2\nleft [left PlayerJump] -> [PlayerKickLeftBackWait] sfx2\nup [up PlayerJump] -> [PlayerJump]\ndown [down PlayerJump] -> [PlayerFall] again\n\n(jump)\nup [PlayerJumpStart | No Item] -> [ | PlayerJump]\n[PlayerJumpStart] -> [PlayerJump]\nrandom up [Up PlayerGround | No Item] -> [ | PlayerJumpStart] again sfx1\n\n(falling)\nrandom down [PlayerFall | No Item] -> [ | PlayerFall] again\nrandom down [PlayerFall | Item] -> [PlayerGround | Item]\nlate down [PlayerGround | No Item] -> [PlayerFall | ] again\n\n(flying kick)\nright [PlayerKickRight | CrateGround] -> [PlayerKickRight | CrateRight] sfx0\nright [PlayerKickRight | BreakWall] -> [PlayerFall | BreakDebris1] again sfx6\nright [PlayerKickRight | Item] -> [PlayerFall | Item] again sfx3\nrandom right [PlayerKickRight | No Item] -> [ | PlayerKickRight] again\n[PlayerKickRightBack] -> [PlayerKickRight] again\n[PlayerKickRightBackWait] -> [PlayerKickRightBack] again\nleft [PlayerKickLeft | CrateGround] -> [PlayerKickLeft | CrateLeft] sfx0\nleft [PlayerKickLeft | BreakWall] -> [PlayerFall | BreakDebris1] again sfx6\nleft [PlayerKickLeft | Item] -> [PlayerFall | Item] again sfx3\nrandom left [PlayerKickLeft | No Item] -> [ | PlayerKickLeft] again\n[PlayerKickLeftBack] -> [PlayerKickLeft] again\n[PlayerKickLeftBackWait] -> [PlayerKickLeftBack] again\n\n(CRATES)\n\n(push)\nhorizontal [> Player | Crate] -> [> Player | > Crate]\n\n(falling)\nrandom down[CrateFall | No Item] -> [ | CrateFall] again\nrandom down [CrateFall | Item] -> [CrateGround | Item]\nlate down [CrateGround | No Item] -> [CrateFall | ] again\n\n(flying)\nright [CrateRight | CrateGround] -> [CrateFall | CrateRight] again\nright [CrateRight | BreakWall] -> [CrateFall | BreakDebris1] again sfx6\nright [CrateRight | Item] -> [CrateFall | Item] again\nrandom right [CrateRight | No Item] -> [ | CrateRight] again\nleft [CrateLeft | CrateGround] -> [CrateFall | CrateLeft] again\nleft [CrateLeft | BreakWall] -> [CrateFall | BreakDebris1] again sfx6\nleft [CrateLeft | Item] -> [CrateFall | Item] again\nrandom left [CrateLeft | No Item] -> [ | CrateLeft] again\n\n(SPIKES + DEATH)\n[Blood3|] -> [Blood3 | Blood4]\n[Blood2|] -> [Blood2 | Blood3] again\n[Blood1|] -> [Blood1 | Blood2] again\nlate [Player Spike] -> [Blood1 Spike] again sfx4\n\n(GATES)\nlate [Item Switch] [GateOpen] -> [Item Switch] [GateOpen GateClosing]\nlate [No Item Switch] [GateClosing] -> [Switch] []\nlate [GateClosing GateOpen] -> [GateClosed] sfx5\nlate [No Item Switch] [GateClosed] -> [Switch] [GateOpen] sfx5\n\n==============\nWINCONDITIONS\n==============\n\nSome Player on Exit \n\n======= \nLEVELS\n=======\n\nMESSAGE AIIIYYAAAARRGGHH!!\n\n#......#\n#.e....#\n#hhh...#\n#......#\n#....hh#\n#......#\n#hh....#\n#......#\n#....hh#\n#.@....#\n#hhhhhh#\n\n#............#\n#............#\n#............#\n#..........e.#\n#.......o.hhh#\n#.......o.####\n#.......o.####\n#.......o.####\n#......hhh####\n#......#######\n#..o.@.#######\n#hhhhhh#######\n\n#...........#\n#...........#\n#.........e.#\n#........hhh#\n#...........#\n#a.o........#\n#hhhh.......#\n#...........#\n#.......oaa.#\n#......hhhhh#\n#.@.aa.######\n#hhhhhh######\n\n#.......#\n#.......#\n#.e.....#\n#hhh....#\n#.......#\n#.....gg#\n#.......#\n#hh..o..#\n#....o..#\n#..hhhhh#\n#...f.@.#\n#hhhhhhh#\n\n#.......#\n#.......#\n#.e.....#\n#hhh....#\n#.......#\n#....kkk#\n#....kkk#\n#....kkk#\n#kkk....#\n#kkk....#\n#kkk..@.#\n#hhhhhhh#\n\n#............#\n#............#\n#.......e....#\n#.......h....#\n#....o.....o.#\n#....o.....o.#\n#....o.....o.#\n#...hhh...hhh#\n#aaa###.@.####\n#hhh###hhh####\n\n#.........#\n#.......e.#\n#......hhh#\n#.........#\n#hh.......#\n#.........#\n#h.ooo....#\n#..hhh..gg#\n#.......h.#\n#hhh.hhh#.#\n#.@.f.....#\n###########\n\n#..................#\n#..................#\n#..................#\n#.e................#\n#hhh.......o...o...#\n####.......o...o...#\n####.......o...o...#\n####gg.....o...o...#\n####.......o...o...#\n####hhh....o...o...#\n####....f..o.@.o...#\n####hhhhhhhhhhhhhhh#\n\n#.......#\n#...e...#\n#...h...#\n#...o...#\n#..ooo..#\n#..ooo..#\n#..hhh..#\n#.......#\n#hh.@.hh#\n###hhh###\n\n#...........#\n#...........#\n#.e.........#\n#hhh........#\n##..........#\n##.ooo..ooo.#\n##.kkk..kkk.#\n##..........#\n##.....@....#\n##hhhhhhhhhh#\n\n#...........#\n#..o..e..o..#\n#..o..h..o..#\n#..o.....o..#\n#..o.....o..#\n#..o.....o..#\n#.hhhhhhhhh.#\n#...........#\n#hh..o......#\n##...o...o..#\n##...o...o..#\n##...o...h..#\n##.@.o..aaa.#\n##hhhhhhhhhh#\n\nh.............h\nh.............h\nh...........e.h\nh..........hhhh\nh......g......h\nh.....ggg.....h\nh..ooo...ooo..h\nh..kkk...kkk..h\nh.............h\nh...f..@..f...h\nhhhhhhhhhhhhhhh\n\n#...............#\n#.............e.#\n#.....o...o..hhh#\n#.....o...o.....#\n#.....o...o.....#\n#gg...o...o....h#\n#.....o...o.....#\n#..@..o...o....f#\n#hhhhhhhhhhh..hh#\n###########aaaa##\n#################\n\n#...............#\n#...............#\n#...............#\n#.............e.#\n#............hhh#\n#.......g.......#\n#......ggg......#\n#...............#\n#..ooo.....ooo..#\n#..hhh.....hhh..#\n#...f...@...f...#\n#hhhhhhhhhhhhhhh#\n\n#...............#\n#............e..#\n#...........hhh.#\n#...............#\n#....o.o.o.o....#\n#....h.h.h.h....#\n#....ooo.ooo....#\n#h...hhh.hhh....#\n##............@.#\n##hh...aaa...hhh#\n#################\n\n#..........#\n#..........#\n#..........#\n#...o....e.#\n#...o...hhh#\n#...o......#\n#...o......#\n#kkkk.kkkkk#\n#...k.k....#\n#.@.k.k....#\n#hhhhhhhhhh#\n\nMESSAGE Right, that's my training done for the day...\n\nMESSAGE ...off to the pub I go.\n\n\n\n",[0,1,1,0,1,0,3],"background wallbase:0,0,0,0,0,0,0,0,0,0,0,background:1,1,1,1,1,1,\nbackground crateground:2,background walltop:3,0,0,0,1,1,1,1,1,1,1,1,1,3,0,1,\n1,1,1,1,1,1,1,1,3,0,1,1,1,1,1,1,1,\n1,1,1,0,1,1,1,1,2,3,background playerground:4,3,1,1,0,1,1,\n1,1,1,1,2,3,1,1,0,1,1,1,1,2,3,1,3,\n1,background spikeup:5,0,1,1,1,1,1,1,1,1,1,background crateground spikeup:6,0,1,1,1,\n1,2,3,2,3,1,5,0,1,1,1,1,1,1,2,3,1,\n1,0,1,1,1,1,2,3,1,3,1,1,0,1,1,3,1,\n1,1,1,1,1,1,0,1,background exit:7,3,1,1,1,1,1,1,3,\n0,1,1,3,1,1,1,1,1,1,3,0,1,1,1,1,1,\n1,1,1,2,3,0,0,0,0,0,0,0,0,0,0,0,0,\n",15,"1397265077451.8643"]
	],
	[
		"Cratopia",
		["title Cratopia\nauthor CHz [v1]\nhomepage quiteajolt.com\n\nagain_interval 0.06\nrun_rules_on_level_start \n\n========\nOBJECTS\n========\n\nBlueSky\nBlue\n\nCrateInfection\n#3F5AC2 #5063C5 Blue\n00000\n02120\n01110\n02120\n00000\n\n\nSpace\nBlack\n\nEditModeDrop\nBlack\n.....\n.....\n.....\n.....\n.....\n\nEditModeArrow\nWhite Black\n11011\n11011\n11011\n10001\n11011\n\nEditModeCursor\nRed\n00.00\n0...0\n.....\n0...0\n00.00\n\n\nGoal\nDarkBlue #0D1319\n11111\n10001\n10001\n10001\n10001\n\nGoalLocked\nDarkBlue #0D1319 Gray\n12121\n22222\n12021\n22222\n12021\n\nKey\nYellow\n.....\n.....\n...00\n00000\n0.0..\n\nCrate\n#765026 #C77629\n00000\n0.1.0\n01110\n0.1.0\n00000\n\nLadder\nDarkBrown\n0...0\n00000\n0...0\n00000\n0...0\n\n\nFire\nBrown #765026 Orange Red\n33232\n32222\n22220\n00000\n00100\n\nBurningCrate\nDarkRed Red\n00000\n0.1.0\n01110\n0.1.0\n00000\n\nBurntCrate\nDarkGray Gray\n00000\n0.1.0\n01110\n0.1.0\n00000\n\n\nPlayerRight\nBlack Orange White Red\n.000.\n.111.\n.2222\n.333.\n.3.3.\n\nPlayerLeft\nBlack Orange White Red\n.000.\n.111.\n2222.\n.333.\n.3.3.\n\nPlayerLadder\nBlack Orange White Red\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nPlayerRightDisabled\nGray\n.000.\n.000.\n.0000\n.000.\n.0.0.\n\nPlayerLeftDisabled\nGray\n.000.\n.000.\n0000.\n.000.\n.0.0.\n\nPlayerLadderDisabled\nGray\n.000.\n.000.\n00000\n.000.\n.0.0.\n\nPlayerJumpLeft\nBlack\n\nPlayerJumpRight\nBlack\n\n\nOrb\nRed Purple DarkBlue\n.000.\n01110\n01210\n01110\n.000.\n\nCrateArtifact\n#765026 #C77629\n.....\n.000.\n.010.\n.000.\n.....\n\nCrateInfectionSeed\nWhite\n\nCrateInfectionComplete\nWhite\n.....\n.....\n.....\n.....\n.....\n\nCrateInfectionTemp\nWhite\n.....\n.....\n.....\n.....\n.....\n\n\nGrass\nBrown #765026 Green LightGreen \n23233\n02002\n10000\n00000\n00100\n\nDirt\nBrown #765026\n00001\n00000\n10000\n00000\n00100\n\nCrumble\nBrown\n0.0.0\n00000\n.....\n.....\n.....\n\n\n=======\nLEGEND\n=======\n\nBackground = BlueSky or CrateInfection\n. = BlueSky\n+ = CrateInfection\nS = Space\n\nD = EditModeDrop and Space\n\nG = Goal\n@ = GoalLocked\nK = Key\nL = Ladder\n\n> = PlayerRight\n< = PlayerLeft\n^ = PlayerLadder\nPlayer = PlayerLeft or PlayerRight or PlayerLadder or EditModeCursor\nNonCursorPlayer = PlayerLeft or PlayerRight or PlayerLadder\nPlayerJump = PlayerJumpLeft or PlayerJumpRight\nPlayerDisabled = PlayerLeftDisabled or PlayerRightDisabled or PlayerLadderDisabled\n\nC = Crate\n\nO = Orb\nA = CrateArtifact and CrateInfection\nT = Dirt and EditModeDrop\nY = Goal and CrateInfectionSeed\nU = Grass and EditModeDrop\nI = EditModeDrop\n\n* = Grass\n# = Dirt\nF = Fire\n- = Crumble\nGround = Grass or Dirt or Fire or Crumble\n\nSolid = Crate or Ground or Space or Key or Fire or Crumble\n\nThing = Orb or Player or PlayerDisabled or Crate or Ground or EditModeArrow or Key or Fire or Crumble\n\nTransformable = Key or Ladder or Fire or BurningCrate or BurntCrate or Grass or Dirt or Crumble\n\n\n=======\nSOUNDS\n=======\n\nShowMessage 72692706\n\nCrate Move Horizontal 99804707\nEditModeCursor Move 44871706\n\nSFX0 97366302 (win; manually triggered because some levels are cutscenes)\nSFX1 41487108 (activate edit mode)\nSFX2 37184702 (bridge crumble)\nSFX3 79796108 (CRATE RAIN)\nSFX4 73912901 (leave edit mode)\nSFX5 26404105 (jump)\nSFX6 31560708 (get orb)\nSFX7 16509700 (get key)\nSFX8 38835508 (crate fire)\nSFX9 24561108 (crate infection)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nGoal, GoalLocked, Ladder, EditModeDrop\nOrb, Key, Player, PlayerJump, PlayerDisabled, Crate, Ground, Space, EditModeArrow, Fire, BurningCrate, BurntCrate, CrateArtifact\nEditModeCursor, CrateInfectionSeed, CrateInfectionComplete, CrateInfectionTemp\n\n======\nRULES\n======\n\n( ==================\n ENDGAME ANIMATIONS\n ================== )\n\n(play the sound effect when infection begins)\n[ NonCursorPlayer CrateInfectionSeed ] -> [ Crate CrateInfectionSeed ] SFX9\n[ Goal CrateInfectionSeed ] -> [ Goal CrateInfectionSeed ] SFX9\n\n(infection radiation)\n[ CrateInfectionSeed | no CrateInfectionComplete no Space ] -> [ CrateInfectionSeed | CrateInfectionTemp ] again\n[ CrateInfectionSeed ] -> [ CrateInfectionComplete ]\n\n(when the infection hits a specified trigger tile, move on to the next level; due to the object limit, I'm using EditModeDrop for this)\n[ CrateInfectionComplete EditModeDrop ] -> [ CrateInfectionComplete EditModeDrop ] win\n\n(infection tile transformations)\nlate [ CrateInfectionTemp BlueSky ] -> [ CrateInfectionTemp CrateInfection ]\nlate [ CrateInfectionTemp Transformable ] -> [ CrateInfectionTemp Crate ]\nlate [ CrateInfectionTemp ] -> [ CrateInfectionSeed ]\n\n(when the player touches the artifact, start infection)\n[ > NonCursorPlayer | CrateArtifact ] -> [ | NonCursorPlayer CrateInfectionSeed ]\n\n\n( =========\n EDIT MODE\n ========= )\n\n(hitting the X key when in the normal game activates the edit mode)\n[ EditModeDrop Space ] UP [ ACTION NonCursorPlayer | ... | EditModeDrop ] -> [ EditModeDrop Space ] [ ACTION NonCursorPlayer | ... | EditModeDrop EditModeCursor ] SFX1\n[ EditModeDrop Space ] [ ACTION NonCursorPlayer ] -> [ EditModeDrop EditModeArrow ] [ ACTION NonCursorPlayer ]\n[ EditModeDrop EditModeArrow ] [ ACTION PlayerLeft ] -> [ EditModeDrop EditModeArrow ] [ PlayerLeftDisabled ]\n[ EditModeDrop EditModeArrow ] [ ACTION PlayerRight ] -> [ EditModeDrop EditModeArrow ] [ PlayerRightDisabled ]\n[ EditModeDrop EditModeArrow ] [ ACTION PlayerLadder ] -> [ EditModeDrop EditModeArrow ] [ PlayerLadderDisabled ]\n\n(hitting the X key while in edit mode returns to platform control)\n[ ACTION EditModeCursor ] [ EditModeDrop EditModeArrow ] -> [ ACTION EditModeCursor ] [ EditModeDrop Space ]\n[ ACTION EditModeCursor ] [ PlayerLeftDisabled ] -> [ ACTION EditModeCursor ] [ PlayerLeft ]\n[ ACTION EditModeCursor ] [ PlayerRightDisabled ] -> [ ACTION EditModeCursor ] [ PlayerRight ]\n[ ACTION EditModeCursor ] [ PlayerLadderDisabled ] -> [ ACTION EditModeCursor ] [ PlayerLadder ]\n[ ACTION EditModeCursor ] -> [ ] SFX4\n\n(restrict the cursor's movement)\nHORIZONTAL [ > EditModeCursor | no EditModeArrow ] -> [ EditModeCursor | no EditModeArrow ]\n[ UP EditModeCursor ] -> [ EditModeCursor ]\n\n( {1} )\n(Hitting the down arrow in edit mode drops a crate. The rule that does this is further down so that it happens after the normal gravity assertion; if it were here, the crate would fall one row before drawing and would appear to start on the second row from the top.\n\nSearch for {2} to find the rule.)\n\n\n\n( ===============\n NORMAL MOVEMENT\n =============== )\n\n(forces another turn after player movement to assert gravity)\n[ MOVING NonCursorPlayer ] -> [ MOVING NonCursorPlayer ] again\n\n(Change the player's orientation based on movement.)\n[ LEFT NonCursorPlayer ] -> [ LEFT PlayerLeft ]\n[ RIGHT NonCursorPlayer ] -> [ RIGHT PlayerRight ]\nlate [ NonCursorPlayer Ladder ] -> [ PlayerLadder Ladder ]\n\n(shove crates)\nHORIZONTAL [ > NonCursorPlayer | Crate ] -> [ > NonCursorPlayer | > Crate ]\n\n(level 2 ends when you grab the orb)\n[ > NonCursorPlayer | Orb ] -> [ > NonCursorPlayer | Orb ] SFX6 win\n\n(burn some crates)\n[ BurntCrate ] -> [ ]\n[ BurningCrate ] -> [ BurntCrate ] again\n[ BurntCrate | Crate ] -> [ BurntCrate | BurningCrate ]\nDOWN [ Crate no CrateInfection | Fire ] -> [ BurningCrate | Fire ] SFX8 again\n\n\n\n( ==================\n CLIMBING & GRAVITY\n ================== )\n\n(A player can climb on top of a crate by walking into it or pressing up while facing it, but only if there's something on the other side of the crate so the player can't push it, and also if there's nothing above the player or the crate. Done by using a temporary player object that moves up if there's no obstacle above and then moves on top of the crate if there's no obstacle there.)\nRIGHT [ > NonCursorPlayer | Crate | Solid ] -> [ PlayerJumpRight | Crate | Solid ]\nRIGHT [ ^ PlayerRight | Crate | Solid ] -> [ PlayerJumpRight | Crate | Solid ]\nUP [ PlayerJumpRight | no Solid ] -> [ PlayerJumpRight | v PlayerRight ]\nLEFT [ > NonCursorPlayer | Crate | Solid ] -> [ PlayerJumpLeft | Crate | Solid ]\nLEFT [ v PlayerLeft | Crate | Solid ] -> [ PlayerJumpLeft | Crate | Solid ]\nUP [ PlayerJumpLeft | no Solid ] -> [ PlayerJumpLeft | ^ PlayerLeft ]\n\n(don't let the player move up or down unless they're on a ladder)\n[ UP NonCursorPlayer no Ladder ] -> [ NonCursorPlayer no Ladder ]\n\n(assert gravity)\nDOWN [ STATIONARY Crate ] -> [ > Crate ] again\nDOWN [ STATIONARY NonCursorPlayer no Ladder | no Ladder ] -> [ > NonCursorPlayer no Ladder | no Ladder ] again\n\n(get keys and unlock goals; happens after gravity so you can fall on keys)\nHORIZONTAL DOWN [ > NonCursorPlayer | Key ] [ GoalLocked ] -> [ > NonCursorPlayer | ] [ Goal ] SFX7\n\n(Clean up after jumping.)\n(If the player is on top of a temporary jump token, then the player moved up but was blocked by an obstacle on top of the crate, so move the player back down.)\nlate DOWN [ NonCursorPlayer | PlayerJump ] -> [ | NonCursorPlayer ]\n(If the player and the temporary jump token both exist here, then the player jumped successfully. Clear the token and destroy the crumbling floor if the player was standing on one.)\nlate DOWN [ NonCursorPlayer ] [ PlayerJump | Crumble ] -> [ NonCursorPlayer ] [ | ] SFX5 SFX2\nlate [ NonCursorPlayer ] [ PlayerJump ] -> [ NonCursorPlayer ] [ ] SFX5\n(If there's a temporary jump token remaining here, then the player tried jumping but was blocked from above. Turn the token back into the player.)\nlate [ PlayerJumpLeft ] -> [ PlayerLeft ]\nlate [ PlayerJumpRight ] -> [ PlayerRight ]\n\n\n\n( =============\n MISCELLANEOUS\n ============= )\n\n( {2} )\n(Hitting X over one of the arrows in edit mode drops a crate. Search for {1} for an explanation of why this rule is here after gravity.)\nDOWN [ DOWN EditModeCursor | no Thing ] -> [ EditModeCursor | Crate ] SFX3 again\n[ DOWN EditModeCursor ] -> [ EditModeCursor ]\n\n(win condition; player must be standing on solid ground to enter the goal)\nlate DOWN [ NonCursorPlayer Goal | Solid ] -> [ NonCursorPlayer Goal | Solid ] SFX0 win\n\n(crumble breakable floors if the player is walking away after standing on one; happens after pushing, climbing, & gravity)\nDOWN [ PERPENDICULAR NonCursorPlayer no Ladder | Crumble ] -> [ PERPENDICULAR NonCursorPlayer no Ladder | ] SFX2\n\n\n\n==============\nWINCONDITIONS\n==============\n\n(win condition is a rule to enforce that the player must be stationary on the goal)\n\n=======\nLEVELS\n=======\n\nmessage I love crates.\nmessage I could push them or climb on them every day.\n\n(mechanics tutorial)\nSSSSSSSSS\nS.......S\nS.*..C..S\nS.#****LS\nSG.C..#LS\nS..C..#LS\nS*****#LS\nS......LS\nS>.C..C.S\nS*******S\nSSSSSSSSS\n\n(mechanics quiz)\nSSSSSSSSSSSSSSSSSSSSS\nS................C..S\nS..............****LS\nS................C.LS\nS.......C.CL...****LS\nS.......***L.......LS\nSG....>......***...LS\nS**...C....C......C*S\nS##*.**************#S\nS###*###############S\nSSSSSSSSSSSSSSSSSSSSS\n\nmessage I wish the world had more crates.\n\n(rain tutorial prelude)\nSSSSSSSSSSSSSSSSSSS\nSG..<.............S\nS*.*L.............S\nS...L.............S\nS.***.********....S\nS..C..............S\nSL***.****.****...S\nSL.........C...***S\nSL.......L***....OS\nS*......C.....C.**S\nS#*************.##S\nS##############*##S\nSSSSSSSSSSSSSSSSSSS\n\nmessage [Press X to rain crates. Use the arrow keys to drop crates and X to return.]\nmessage\nmessage Who said that?\n\n(rain tutorial)\nSDDDDDDDDDDDDDDDDDS\nSG................S\nS*.*L.............S\nS...L.............S\nS.***.********....S\nS.................S\nSL***.****.****...S\nSL.............***S\nSL.......L***....>S\nS*.....CC......C**S\nS#*************C##S\nS##############*##S\nSSSSSSSSSSSSSSSSSSS\n\nmessage This is... exhilarating.\n\n(rain 1)\nSDDDS\nSG..S\nS*..S\nS...S\nS...S\nS...S\nS>..S\nS***S\nSSSSS\n\n(rain 2)\nSDDDDDDDDDDDDS\nS.K..........C..C...@S\nS****F*****S\nSSSSSSSSSSSS\n\n(fire 3)\nSDDDDDDDDDS\nS.........S\nS...^.....S\nS*.***....S\nS#.#......S\nS#.#K*....S\nS#.#......S\nS#.#**....S\nS#.....**LS\nS#.....@#LS\nS......*#LS\nS........LS\nS***F*****S\nSSSSSSSSSSS\n\n(crumble 1)\nSDDDDDDDDDDDS\nSK..........S\nS****...L...S\nS@.>........S\nS****-----**S\nS####*FFF*##S\nSSSSSSSSSSSSS\n\n(crumble 2)\nSDDDDDDDDDS\nS.......**S\nS.****..##S\nS.......C........+++++++CCCS\nS*******CCCCCCCCCCCCS\nST##CCCCCCCCCCCCCCCCS\nSSSSSSSSSSSSSSSSSSSSS\n\n(endgame 2 [crumble 3 redux])\nSSSSSSSSSSSSSSSSS\nSU******.*******S\nS...............S\nSL*.**.****L***LS\nSL.........L...LS\nSL**.***.****.*LS\nSL.............LS\nSL*.****.*.F*.*LS\nSL.............LS\nSL****-.*.-*F.*LS\nSL......Y......LS\nS*C...........C*S\nS#**FFF***FFF**#S\nSSSSSSSSSSSSSSSSS\n\n(endgame 3 [mechanics tutorial redux])\nSSSSSSSSS\nS.......S\nS.*..C..S\nS.#****LS\nSY.C..#LS\nS..C..#LS\nS*****#LS\nS......LS\nS..C..C.S\nS******US\nSSSSSSSSS\n\n(endgame 4 [planet])\nSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS\nSSSSSSSSSSSS###.....SSSSSSSSSSSS\nSSSSSSSSS#####**#......SSSSSSSSS\nSSSSSSSS######****#.....SSSSSSSS\nSSSSSY##########***#.....*SSSSSS\nSSSSS#############.........SSSSS\nSSSS###FFFFF................SSSS\nSSSS................****###.SSSS\nSSS................****######SSS\nSSFF..............#****####**.SS\nSS##....*.........##########**SS\nSS#.....#..........##########.SS\nS#.................#######.....S\nS.................#######......S\nS...............FFF##..........S\nS............#FF...............S\nS........#######..........F....S\nS......#####****#..............S\nS.......#####***#..............S\nS..............................S\nSS............................SS\nSSFFF......................***SS\nSS.FFF.....................***SS\nSSS.##......................*SSS\nSSSS#.......................SSSS\nSSSS........................SSSS\nSSSSS#....................ISSSSS\nSSSSSS###.................SSSSSS\nSSSSSSSS####............SSSSSSSS\nSSSSSSSSS######........SSSSSSSSS\nSSSSSSSSSSSS######..SSSSSSSSSSSS\nSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS\n\nmessage\nmessage\nmessage Bliss.\n\n\n",[1,1,1,3,3,3,3,1,3,3,3,3,3,2,3,3,3,3,3,3,3,0],"bluesky space:0,0,0,0,0,0,0,0,0,0,0,0,0,0,bluesky goal:1,bluesky grass:2,bluesky:3,3,3,\nbluesky ladder:4,4,4,2,bluesky dirt:5,5,0,0,3,3,3,2,3,2,3,3,3,2,5,\n0,0,3,2,3,2,3,2,3,3,3,2,5,0,0,3,4,4,2,\n3,2,3,3,3,2,5,0,0,3,3,3,3,3,3,3,3,3,2,\n5,0,0,3,3,3,2,3,2,3,3,3,2,5,0,0,3,3,3,\n2,3,2,3,3,bluesky crate:6,2,5,0,0,3,3,3,2,3,2,3,3,6,\n2,5,0,0,3,3,3,2,3,2,3,4,3,2,5,0,0,3,3,\n3,2,3,3,3,2,3,2,5,0,0,3,3,3,2,3,2,6,2,\n3,2,5,0,0,3,3,3,2,3,2,3,2,3,2,5,0,0,3,\n3,3,2,3,2,3,3,3,2,5,0,0,3,3,3,3,3,2,3,\n3,3,2,5,0,0,3,3,3,3,3,3,2,3,bluesky playerright:7,6,2,0,0,\n3,3,3,3,3,3,2,3,2,5,5,0,0,3,3,3,3,3,3,\n2,bluesky orb:8,2,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n",5,"1397265209690.2634"]
	],
	[
		"Heroes of Sokoban 3",
		["title Heroes of Sokoban III: The Bard and The Druid\nauthor Jonah Ostroff\ntext_color yellow\nkey_repeat_interval 0.25\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nBackground \n#989898 #C8C8C8\n00000\n00100\n00000\n00010\n00000\n\nGoal \nBrown Yellow\n.000.\n00000\n00010\n00000\n00000\n\nWall\nDarkgrey #222222\n01000\n11111\n00010\n00010\n11111\n\nFighter (Warrior sounds better in-game, but I want different abbreviations for the classes in the editor.)\n#FF4444 Pink DarkBrown\n.000.\n.111.\n00000\n.000.\n.2.2.\n\nWizard\n#2266FF Pink\n.000.\n.010.\n00000\n.000.\n00000\n\nThief\n#66DD66 Pink DarkBrown\n.000.\n.010.\n00000\n.0.0.\n.0.0.\n\nPriest\n#FFFFAA Pink\n.000.\n.111.\n00000\n.000.\n00000\n\nBard\n#8800FF #884400 #444444\n.222.\n.111.\n00000\n.000.\n.0.0.\n\nDruid\n#FF8800 Pink DarkBrown\n.212.\n.111.\n00000\n.000.\n00000\n\nSFighter \n#880000 Pink DarkBrown\n.000.\n.111.\n00000\n.000.\n.2.2.\n\nSWizard\n#000088 Pink\n.000.\n.010.\n00000\n.000.\n00000\n\nSThief\n#006600 Pink DarkBrown\n.000.\n.010.\n00000\n.0.0.\n.0.0.\n\nSPriest\n#B8B800 Pink\n.000.\n.111.\n00000\n.000.\n00000\n\nSBard\n#440088 #884400 #444444\n.222.\n.111.\n00000\n.000.\n.0.0.\n\nSDruid\n#884400 Pink DarkBrown\n.212.\n.111.\n00000\n.000.\n00000\n\nCrate \nOrange #552200\n.111.\n10001\n10001\n10001\n.111.\n\nYellowSwitch\nYellow Black\n.....\n.111.\n.101.\n.111.\n.....\n\nYellowOpen\nYellow\n0...0\n.....\n.....\n.....\n0...0\n\nYellowDoor\nYellow #AA7722\n01010\n10001\n00000\n10001\n01010\n\nPurpleSwitch\n#6611CC Black\n.....\n.111.\n.101.\n.111.\n.....\n\nPurpleDoor\n#6611CC #220088\n01010\n10001\n00000\n10001\n01010\n\nPurpleOpen\n#6611CC\n0...0\n.....\n.....\n.....\n0...0\n\nMonsterDoor\nDarkGrey #222222 Red\n21002\n22122\n20212\n20012\n21112\n\nWarpball\nBlue\n\nShadowDoor\nPurple\n\nGoblin\nGreen DarkBrown DarkGreen\n0.2.0\n00000\n..0..\n.111.\n.1.1.\n\nDying\nWhite\n\nSaved\n#D8D800\n..0..\n.000.\n..0..\n..0..\n.....\n\nHasSavedDoor\nYellow\n.....\n.....\n.....\n.....\n.....\n\nCorpse\n#CCC\n.000.\n.000.\n00000\n.0.0.\n.0.0.\n\nNote\n#8800FF\n.....\n..00.\n.00..\n.00..\n.....\n\n=======\nLEGEND\n=======\n\nPlayer = Fighter or Wizard or Thief or Priest or Bard or Druid\nSPlayer = Swizard or Sthief or SFighter or SPriest or SBard or SDruid\nHero = Player or Splayer\nHealer = Priest or SPriest (Unlike the other heroes, priests must function even when inactive. \"Healer\" is the generic term for an active or inactive priest.)\nClosedDoor = PurpleDoor or YellowDoor or MonsterDoor\nOpenDoor = YellowOpen or PurpleOpen\nSwitch = PurpleSwitch or YellowSwitch\nMonster = Goblin\nMoveable = Crate or SPlayer or Monster\nStatic = Wall or ClosedDoor\nWeighing = Crate or Hero or Monster or Wall\nVulnerable = Hero or Monster\nInvulnerable = Crate or Static\n. = Background\n# = Wall\nF = Fighter\nW = Wizard\nT = Thief\nP = Priest\nB = Bard\nD = Druid\n1 = SFighter\n2 = SThief\n3 = SWizard\n4 = SPriest\n5 = SBard\n6 = SDruid\n* = Crate\nG = Goal\n[ = YellowDoor\n] = PurpleDoor\n{ = YellowSwitch\n} = PurpleSwitch\nO = Goblin\nM = MonsterDoor\n\n=======\nSOUNDS\n=======\n\nMoveable move 82056307\nSfx0 21221308 (teleport)\nEndlevel 36315908\nSfx1 66399906 (switch player)\nSfx2 92172900 (close door)\nSfx3 15129100 (open door)\nSfx4 69860105 (saved)\nSfx5 63194902 (kill enemy)\nSfx6 81996702 (dying player)\nSfx7 20187909 (Bard leading)\nSfx8 93615108 (Transmutation)\nEndGame 86793500\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nWarpball, Dying\nGoal, Switch, OpenDoor, ShadowDoor, HasSavedDoor\nClosedDoor, Hero, Crate, Wall, Monster, Corpse\nSaved\nNote\n\n======\nRULES \n======\n[Saved] [Goal] -> [] [HasSavedDoor] (Remembering whether we saved someone last round by temporarily changing some door to a HasSavedDoor. This is purely for sound effects purposes.)\n\n[Corpse] -> Restart\n\n[ > Fighter | Moveable ] -> [ > Fighter | > Moveable ] \n[ > Moveable | Moveable ] [ Fighter] -> [ > Moveable | > Moveable ] [ Fighter] (Fighters push.)\n\n[ < Thief | Moveable ] -> [ < Thief | < Moveable ] (Thieves pull.)\n\n[ > Wizard ] -> [ Wizard > Warpball]\n[ > Warpball | no Moveable no Static] -> [ | > Warpball]\n[ > Warpball | Static] [Wizard] -> [ | Static ] [> Wizard]\n[ > Warpball | Moveable ] [Wizard] -> [ | Wizard Sfx0] [Moveable]\n[ > Warpball] [Wizard] -> [] [> Wizard]\n(Wizards telexport. What they really do is shoot a \"warpball\", which causes them to move normally if it hits a wall or the edge of the screen and warp if it hits something they can warp with.)\n\n(Druid does his thing. Warpball gets reused as a placeholder here. That's gonna happen a lot.)\n[> Druid | Crate] -> [Druid | Wall Sfx8]\n[> Druid | Monster] -> [Druid | Wall Sfx8]\n[> Druid | Wall] -> [Druid | Crate Sfx8]\n[> Druid | Healer] -> [Druid | Healer Saved]\n[> Druid | Hero] -> [Druid | Hero Warpball]\n[Warpball | Healer] -> [Saved | Healer]\n[Warpball Hero] -> [Wall Sfx8]\n(What strategic purpose could it serve for healers to protect against petrification? None, but it's fun.)\n\n(I mean, theoretically you could write some horrid dragon breath timing puzzle where the ability to delay an extra turn without moving or switching characters is necessary in order to let you move someone else at the correct moment, but even if dragons still existed, that sounds like a really gross level.)\n\n(Bard moves stuff. Reusing \"WarpBall\" for totally different purpose, so we can cancel the move if he doesn't move.)\n[> Bard no Note] -> [> Note > Bard WarpBall]\n[> Note] [Note] -> [> Note] [> Note]\n[> Note Moveable | no Static no Moveable no Bard] -> [| Moveable Sfx7]\n+[> Note Bard WarpBall| no Static no Moveable no Bard] -> [| Bard]\n\n(Why are we doing this pseudo-movement instead of using the built-in version? Because using movement directions makes the note-adding stuff way easier below, and you can't use movement directions in the LATE phase, so the actual moving has to be done before then.)\n\n[WarpBall] -> Cancel\n[Note] -> []\n\n(The following mess is for changing characters. But at least it's less messy than before. Thanks to Stephen for spotting my silly redundancies.)\n[ Action Fighter] [SThief] -> [SFighter] [Thief Sfx1]\n[ Action Thief] [SWizard] -> [SThief] [Wizard Sfx1]\n[ Action Wizard] [SPriest] -> [SWizard] [Priest Sfx1]\n[ Action Priest] [SBard] -> [SPriest] [Bard Sfx1]\n[ Action Bard] [SDruid] -> [SBard] [Druid Sfx1]\n[ Action Druid] [SFighter] -> [SDruid] [Fighter Sfx1]\n\n[ Action Fighter] [SWizard] -> [SFighter] [Wizard Sfx1]\n[ Action Thief] [SPriest] -> [SThief] [Priest Sfx1]\n[ Action Wizard] [SBard] -> [SWizard] [Bard Sfx1]\n[ Action Priest] [SDruid] -> [SPriest] [Druid Sfx1]\n[ Action Bard] [SFighter] -> [SBard] [Fighter Sfx1]\n[ Action Druid] [SThief] -> [SDruid] [Thief Sfx1]\n\n[ Action Fighter] [SPriest] -> [SFighter] [Priest Sfx1]\n[ Action Thief] [SBard] -> [SThief] [Bard Sfx1]\n[ Action Wizard] [SDruid] -> [SWizard] [Druid Sfx1]\n[ Action Priest] [SFighter] -> [SPriest] [Fighter Sfx1]\n[ Action Bard] [SThief] -> [SBard] [Thief Sfx1]\n[ Action Druid] [SWizard] -> [SDruid] [Wizard Sfx1]\n\n[ Action Fighter] [SBard] -> [SFighter] [Bard Sfx1]\n[ Action Thief] [SDruid] -> [SThief] [Druid Sfx1]\n[ Action Wizard] [SFighter] -> [SWizard] [Fighter Sfx1]\n[ Action Priest] [SThief] -> [SPriest] [Thief Sfx1]\n[ Action Bard] [SWizard] -> [SBard] [Wizard Sfx1]\n[ Action Druid] [SPriest] -> [SDruid] [Priest Sfx1]\n\n[ Action Fighter] [SDruid] -> [SFighter] [Druid Sfx1]\n[ Action Thief] [SFighter] -> [SThief] [Fighter Sfx1]\n[ Action Wizard] [SThief] -> [SWizard] [Thief Sfx1]\n[ Action Priest] [SWizard] -> [SPriest] [Wizard Sfx1]\n[ Action Bard] [SPriest] -> [SBard] [Priest Sfx1]\n[ Action Druid] [SBard] -> [SDruid] [Bard Sfx1]\n\n(Bard plays music. This is my favorite part of the code, btw. Yes, you can make square area effects with just one object!)\n[no Note | no Note | Bard] -> [^ Note | ^ Note | Bard]\n[no Note | Bard] -> [^ Note | Bard]\n[> Note | no Note | no Note] -> [Note | Note | Note]\n[> Note | no Note] -> [Note | Note]\n[> Note] -> [Note]\n\n(Now enemies attack. Yeah, there's only one kind of enemy now.)\n\nLate [Goblin | Vulnerable] -> [Goblin | Dying Vulnerable]\n\n(Vulnerable objects that are attacked are designated as \"Dying\", but heroes can be saved by the Priest. Then the stuff that didn't get saved dies.)\n\nLate [Dying Healer] -> [Saved Healer]\nLate [Healer | Dying Hero] -> [Healer | Saved Hero]\nLate [Dying Monster] -> [Sfx5]\nLate [Dying Hero] -> [Corpse Sfx6]\n\n(Doors opening.)\n\nlate [Weighing YellowSwitch] [YellowDoor] -> [Weighing YellowSwitch] [ShadowDoor]\nlate [YellowSwitch no Weighing] [YellowOpen] -> [YellowSwitch] [YellowDoor sfx2]\nlate [YellowSwitch no Weighing] [ShadowDoor] -> [YellowSwitch] [YellowDoor]\nlate [ShadowDoor] -> [YellowOpen sfx3]\n\nlate [Weighing PurpleSwitch] [PurpleDoor] -> [Weighing PurpleSwitch] [ShadowDoor]\nlate [PurpleSwitch no Weighing] [PurpleOpen] -> [PurpleSwitch] [PurpleDoor sfx2]\nlate [PurpleSwitch no Weighing] [ShadowDoor] -> [PurpleSwitch] [PurpleDoor]\nlate [ShadowDoor] -> [PurpleOpen sfx3]\n\nlate [MonsterDoor] -> [ShadowDoor]\nlate [ShadowDoor] [Monster] -> [MonsterDoor] [Monster]\nlate [ShadowDoor] -> [sfx3]\n\n(Looks for a HasSavedDoor and, if there is one, puts a warpball on the Priest. Then, if someone was saved this turn, plays the sound only if the Priest doesn't have the warpball. Finally, cleans that up.)\n\nlate [HasSavedDoor] [Healer] -> [Goal] [Healer WarpBall]\nlate [Saved] [Healer no WarpBall] -> [Saved sfx4] [Healer]\nlate [HasSavedDoor] -> [Goal]\nlate [WarpBall] -> []\n\nlate [Note no Moveable] -> []\n\n==============\nWINCONDITIONS\n==============\n\nAll Hero on Goal \nAll Goal on Hero\n\n======= \nLEVELS\n=======\n\nMessage Many years have passed since the events of Heroes of Sokoban II.\n\nMessage Dragons have vanished from the realm, never to be seen again.\n\nMessage And new heroes have cropped up, as if there were only room for so many beings in one world.\n\n###################\n#.F.#.........#**G#\n#***#...*****.#..*#\n#.G.#...*...*.#2..#\n#####...*...*.#####\n#.......*...*.....#\n#.......*...*.....#\n#####..**..**.#####\n#*..#.***.***.#..G#\n#*G*#..*...*..#.O.#\n#3.*#.........#4..#\n###################\n\nMessage Purple bard charms nearby crates. \n\n#############\n#{#....{#...#\n#.#.*#B.[.G.#\n#*#.....#...#\n#############\n\n###############\n#..############\n#.B..****.....#\n#..######.#####\n#########G#####\n###############\n\nMessage Monsters may also be charmed.\n\n#############\n#.......#...#\n#...#...#...#\n#O..B..OM.G.#\n#...#...#...#\n#.......#...#\n#############\n\nMessage No one can resist the bard's music.\n\n############\n#G#.F.{..O.#\n#.[........#\n#G#.5.{..O.#\n############\n\n############\n##[[[[[[[###\n##[#####[###\n##[##[[[[{*#\n#...#[######\n#.T.#......#\n#...#.5.G.G#\n############\n\n########\n#*G{####\n###.####\n#...[W##\n###.#.5#\n#*G*####\n########\n\n#########\n#....G#G# \n#.#*..#[#\n#.**....#\n#.......#\n#.{4{B{.#\n#...{...#\n#########\n\n############\n#*.{..{.**{#\n############\n#B21.......#\n##########[#\n#.G..G..G..#\n############\n\nMessage Orange druid turns stone into wood, wood into stone.\n\n#############\n#.[.{.2.#.D.#\n#.#########.#\n#....G.G..#.#\n#############\n\n#############\n#...#####{{{#\n#.D.##...{{{#\n#...##.##{{{#\n#############\n#...#..######\n#.1.#..##G.G#\n#...#..#[...#\n#############\n\n#############\n#O*....{...3#\n##.####.#####\n##.###O.O##G#\n##.####.###.#\n##D[....###G#\n#############\n\nMessage Living things may also be turned into stone.\n\nMessage Try not to think about the moral implications, and don't do it any more than necessary.\n\n#############\n####.4..##G.#\n#O..F..OM#.G#\n####.6..##G.#\n#############\n\n###############\n#.............#\n#.5.}}}.]]]]].#\n#...}}}.]G.G].#\n#.D.}}}.]]]]].#\n#.............#\n###############\n\n#########\n#G#####W#\n#########\n#G#####6#\n#########\n\n#############\n#......O.G.G#\n#.###########\n#.###########\n#...#########\n#B.6#########\n#############\n\n################\n#...#...########\n#.G.#.}.....{[O#\n#...#.F.########\n#...#...########\n#.G.].4.########\n#...#...########\n#...#.5.########\n#.G.#.}.....{[O#\n#...#...########\n################\n\n#####M########\n#G.GM#F.2###O#\n#...#M.......#\n#G.GM#3.6###O#\n#####M########\n\n############\n#6######B###\n#........###\n############\n#.#######.4#\n#.......##1#\n#G.G.G.G##O#\n############\n\n###############\n#....#O.O#...G#\n#..##W...1##..#\n#..#O..O..O#.G#\n#4.#..OGO..#..#\n#..#O..O..O#.G#\n#..##2...6##..#\n#....#O.O#...G#\n###############\n\nMessage Get ready.\n\n#######################\n#.F.*....#G.G#....*.4.#\n#...#....#...#....#...#\n#######.........#######\n#####.#####O#####.#####\n#..##O#..#...#..#O##..#\n#.2.*....#G.G#....*.5.#\n#..##O#..*...#..#O##..#\n#####.####...####.#####\n#######..#..*O.*#######\n#...###.#######...#...#\n#.3.###.##G.G##...#.6.#\n#######################\n\n################\n#..............#\n#.1.4......G.G.#\n#..............#\n#.2.B......G.G.#\n#..............#\n#.3.6......G.G.#\n#..............#\n################\n\nMessage Thanks for playing!\n",[1,4,1,3,1,0,2,3,4,2,3,4,0,4,1,4,2,0,4,0,4,4,1,4,2,2,4,2,3,4,2,0,1,4,1,0,4,3,4,2,4,3,4,3,4,0],"background wall:0,0,0,0,0,0,0,0,\nbackground crate:1,0,background:2,0,1,0,0,background goal:3,\n0,2,0,3,0,0,background yellowswitch:4,2,\nbackground crate note:5,2,2,0,0,0,0,background yellowdoor:6,\n0,0,0,0,0,0,background bard:7,2,\n0,0,0,0,0,0,background note swizard:8,0,\n0,0,0,0,0,0,0,0,\n",12,"1397265277461.7083"]
	],
	[
		"Manic Ammo",
		["title Manic Ammo\nauthor David Eastman\nhomepage @eastmad\n\n========\nOBJECTS\n========\n\nBackground \ngray \n\nTarget \ndarkgray gray lightgray white\n33333\n31112\n31002\n31002\n32222\n\nWall \nBROWN\n\nBoom\nRed YELLOW orange \n.101.\n10001\n00200\n10001\n.101.\n\n\nPlayer \nPINK YELLOW BLACK \n.222.\n.000.\n22122\n.222.\n.2.2.\n\n\nCrateW \nBrown DarkBrown lightbrown\n11111\n12001\n11111\n12001\n11111\n\nCrateN\nBrown DarkBrown lightbrown\n11111\n12121\n10101\n10101\n11111\n\nCrateMineN\nBrown DarkBrown lightbrown darkblue\n11111\n12121\n10101\n10301\n11111\n\nCrateGunN\nBrown DarkBrown lightbrown darkred\n11111\n12121\n10101\n10301\n11111\n\nCrateGunS\nBrown DarkBrown lightbrown darkred\n11111\n12321\n10101\n10101\n11111\n\n\nCrateS\nBrown DarkBrown lightbrown\n11111\n10101\n10101\n12121\n11111\n\nCrateE\nBrown DarkBrown lightbrown\n11111\n10021\n11111\n10021\n11111\n\n\nShell\nyellow orange\n..0..\n.000.\n.000.\n.000.\n.101.\n\n\nBang\nYellow LightRed\n.101.\n10001\n00000\n10001\n.101.\n\nGunN\nred lightred\n..0..\n..0..\n.101.\n00000\n.000.\n\nGunW\nred lightred\n...0.\n..100\n00000\n..100\n...0.\n\nGunS\nred lightred\n.000.\n00000\n.101.\n..0..\n..0..\n\nGunE\nred lightred\n.0...\n001..\n00000\n001..\n.0...\n\nInertMine\ndarkblue blue lightblue\n.....\n.101.\n.020.\n.101.\n.....\n\nActiveMine\ndarkred red lightred\n.....\n.101.\n.020.\n.101.\n.....\n\nSquawk\nlightblue blue\n....0\n.0000\n.0000\n.11.0\n1111.\n\nSquawkBang\norange lightblue\n....0\n.0000\n.0000\n.11.0\n1111.\n\nDroid\nblack green\n..0..\n.000.\n00100\n.000.\n..0..\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\nN = CrateN\nE = CrateE\nW = CrateW\nS = CrateS\nO = Target\n+ = Shell\n^ = GunN\n< = GunW\n> = GunE\n˅ = GunS\nM = InertMine\nA = ActiveMine\nB = Boom\n% = CrateGunN\n& = CrateMineN\n@ = CrateGunS\nX = Squawk\nD = Droid\n\n=======\nSOUNDS\n=======\n\nSFX1 55891909\nSFX2 5736502\nSFX4 6922102\n\nShell move 61960307\nInertMine move 61960307\nDroid move 81713505\nEndLevel 8341708\nShell create 91688700\nGunN create 91688700\nGunS create 91688700\nGunW create 91688700\nInertMine create 91688700\nActiveMine create 93182703\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, CrateN, CrateE, CrateW, CrateS, Shell, GunN, GunW, GunE, GunS, Bang, InertMine, ActiveMine, Boom, CrateMineN, CrateGunN, CrateGunS, Squawk, Droid, SquawkBang\n\n======\nRULES \n====== \n \n \n[Bang] -> [background]\n[boom] -> restart\n[> player][Droid] -> [> player][> Droid]\n[ > Player | Shell ] -> [ > Player | > Shell ] \n[ > Droid | Shell ] -> [ > Droid | > Shell ]\n[ > Player | InertMine ] -> [ > Player | > InertMine ] \n[Action Player|InertMine] -> [Action Player|ActiveMine]\n[> Droid|InertMine] -> [Droid|ActiveMine]\n[> Player | ActiveMine] -> [Player | boom ]\n[> Droid | ActiveMine] -> [Droid | boom ]\n[> shell | ActiveMine] -> [boom | boom ]\n \n[Action Player|Squawk] -> [Action Player|SquawkBang]\n[> Droid|Squawk] -> [Droid |SquawkBang]\n\n[SquawkBang][CrateMineN] -> [SquawkBang][ActiveMine] \n[SquawkBang][CrateGunN] -> [SquawkBang][GunN]\n[SquawkBang][CrateGunS] -> [SquawkBang][GunS]\n[SquawkBang][CrateN] -> [SquawkBang][Shell] \n[SquawkBang][CrateS] -> [SquawkBang][Shell]\n[SquawkBang][CrateE] -> [SquawkBang][Shell]\n[SquawkBang][CrateW] -> [SquawkBang][Shell]\n[SquawkBang] -> [] SFX1\n\nDOWN [ Action Player |CrateN] -> [Action Player | Shell]\nUP [Action Player | CrateS] -> [Action Player | Shell]\nLEFT [Action Player | CrateE] -> [Action Player | Shell]\nRIGHT [Action Player | CrateW] -> [Action Player | Shell] \nDOWN [Action Player | CrateGunN] -> [Action Player | GunN]\nUP [Action Player | CrateGunS] -> [Action Player | GunS]\nDOWN [Action Player | CrateMineN] -> [Action Player | ActiveMine]\n\nUP [Action Player | GunN| No Bang ] -> [Player | GunN | Bang ] SFX4\nLEFT [Action Player | GunW | No Bang] -> [Player | GunW | Bang ] SFX4\nDOWN [Action Player | GunS| No Bang ] -> [Player | GunS | Bang ] SFX4\nRIGHT [Action Player | GunE | No Bang] -> [Player | GunE | Bang ] SFX4\n\nUP [ > Droid | GunN| No Bang ] -> [Droid | GunN | Bang ] SFX4\nLEFT [ > Droid | GunW | No Bang] -> [Droid | GunW | Bang ] SFX4\nDOWN [> Droid | GunS| No Bang ] -> [Droid | GunS | Bang ] SFX4\nRIGHT [> Droid | GunE | No Bang] -> [Droid | GunE | Bang ] SFX4\n[bang|shell] -> [bang|bang ]\n[boom|no player] -> [boom|boom] SFX2\n\n\n==============\nWINCONDITIONS\n==============\n\nAll Player on Target\n\n======= \nLEVELS\n=======\n\n\n\nMESSAGE Due to a clerical error, You are trapped in a bunker\n\n########\n#.....P#\n#......#\n#......#\n#......#\n#O.....#\n########\n\nMESSAGE A bunker with several levels, full of crates and munitions\n\n########\n#.....O#\n#..+...#\n#......#\n#..N...#\n#P.....#\n########\n\nMESSAGE Crates open from one side\n\n########\n#...+.P#\n#....+.#\n#..++..#\n#++..++#\n#.ON...#\n########\n\nMESSAGE But shells are volatile\nMESSAGE Try firing the gun \n\n#########\n#..+.+.O#\n#..N+...#\n#....S..#\n#...^...#\n#.P.....#\n#########\n\nMESSAGE Chain reaction\n\n#########\n#+.+O+.P#\n#+.++...#\n#.+.+.N.#\n#+......#\n#E+++.<.#\n#########\n\nMESSAGE Inert mines, active mines\n\n#########\n#+.+P+..#\n#.......#\n#.......#\n#SSSSM..#\n#.O.E...#\n#########\n\nMessage Crates can have any munitions in them\n\n#########\n#.......#\n#.&+..+.#\n#.+O&.+.#\n#.+++%..#\n#.P.S...#\n#########\n\n\nMESSAGE There seems to be another way to open crates\n\n#########\n#.X.....#\n#.......#\n#..P....#\n#....NNN#\n#.>..SON#\n#########\n\n\nMESSAGE Hey, it's a friendly worker droid!\n\n#########\n#.D...PN#\n#..+...N#\n#A.+....#\n#.NN.O..#\n#..+....#\n#########\n\n\nMESSAGE Now this is where the main bunker levels begin.\n\n###########\n#O+N..+.W.#\n#SN&..+.NX#\n#.DN.+.+..#\n#%.NWP.NS+#\n#...+N....#\n###########\n\n\nMESSAGE This doesn't look safe\n\n###########\n#P..&&&&&&#\n#DX.N....&#\n#...&&&&&&#\n#.N.N...O.#\n#&&&&&&&&&#\n###########\n\n\nMESSAGE Carefully packed\n\n###########\n#PESW.WDW.#\n#NW..&N@.N#\n#.N%NWN.X.#\n#N...NNNNN#\n#N.NNNNNON#\n###########\n\nMESSAGE Symbiosis\n\n###########\n#P.NNN.DN.#\n#MM>.+++N.#\n#..N.NN+..#\n#++N++....#\n#++...<.O.#\n###########\n\nMESSAGE Inert Mine field\n\n###########\n#.P..M.M..#\n#.MMM.M.MM#\n#..M..MNM.#\n#MM.MM.MOS#\n#.M..MD...#\n###########\n\nMESSAGE Last level\n\n###########\n#..+..P.+.#\n#.N..@.N..#\n#+.&..E.&.#\n#++..S.SSS#\n#.X+&..NO.#\n###########\n\nMESSAGE Congratulations! Now you can return to fighting on the front line.\n",[1,1,2,2,3,4,0,0,0,0,4,2,2,2,2,4,0,3,3,3,3,3,3,4,2,4,1,1,"restart","restart",1,0,1,2,2,2,3,4,0,0,0,0,4,2,2,2,2,2,4,4,4,4,4,4,0,3,3,"restart","restart",3,3,2,3,2,1,4,4,2,1,2,2,1,0,1,1,2,4,0,0,3,3,2,2,3,4,4,4,"restart","restart",2,2,3,4,4,0,0,3,3,4,3,4,1,1,4,1,2,2,3,4,4,1,0,1,0,0,4,4,2,2,4,2,3,3,3,0,3,3,2,4,1,1,0,1,2,1,1,2,4,0,"undo","undo","undo","undo","undo","undo","undo",1,1,2,3,0,3,2,1,1,1,2,4,0],"background wall:0,0,0,0,0,0,0,0,background:1,\n1,1,background player:2,1,0,0,1,1,1,\n1,background gune:3,0,0,1,1,1,1,1,\n0,0,1,1,1,1,1,0,0,\n1,1,1,1,1,0,0,1,1,\n1,1,background target:4,0,0,1,1,1,1,\n1,0,0,0,0,0,0,0,0,\n",16,"1397265361355.714"]
	],
	[
		"Tunnel Rat",
		["title Tunnel Rat\nauthor James Noeckel\nnoundo\nagain_interval 0.07\nyoutube SG1uBb104Is\n========\nOBJECTS\n========\nBackground\n#4c352b #4e382f #533c30\n01010\n02211\n20010\n00012\n12102\n\nPlayerS\n#a65200 red #6f3c0a\n.0.0.\n.000.\n21012\n20002\n22022\n\nPlayerU\n#a65200 red #6f3c0a\n.0.0.\n.101.\n20002\n22022\n.2.2.\n\ninflow\nyellow orange white\n00000\n00000\n22222\n11111\n11111\n\nexit\ngreen\n.0.0.\n0.0.0\n.0.0.\n0.0.0\n.0.0.\n\ntempwall\nblue\n\nDirtM\n#82642b #876b35 #927538\n01010\n02211\n20010\n00012\n12102\n\nDirtU\n#82642b #876b35 #927538 #b19154\n22222\n33333\n00000\n01012\n12102\n\n\nRock\n#e0e0e0 #a4a4a4 #8a8a8a #7c7c7c\n.000.\n01112\n11123\n11223\n.233.\n\nenemy\nwhite #ff7070 black #880000 red\n01414\n14343\n14343\n14443\n43232\n\nh_grav\nblack\n.....\n.....\n..0..\n.....\n.....\n\nh_step\nred\n.....\n.....\n..0..\n.....\n.....\n\n(h_dead\nblack\n)\npickupoverlay\npink\n\nenemyoverlay\npink\n\ndestroy\nred\n0...0\n.0.0.\n..0..\n.0.0.\n0...0\nscrolling\nblue\n.....\n.....\n..0..\n.....\n.....\n\nShoes\n#ff11f7 #9711ff #641d9a\n...0.\n...10\n...01\n.1111\n.2222\n\nEraser\n#00ff12 #99ffa0 #008509\n..10.\n.1000\n10000\n.2000\n..20.\n\nUnraser\n#00ff12 #99ffa0 #008509\n.01..\n0001.\n00001\n0002.\n.02..\n\nShoesworn\npurple pink\n.....\n.....\n.....\n.....\n10.01\n\n\n=======\nLEGEND\n=======\n# = Dirtm\n. = Background\nP = playerS\no = Rock\ns = shoes\nx = enemy\n@ = dirtm and destroy\n$ = dirtm and inflow\ne = exit and Dirtm\n% = unraser\n\ndirt = dirtm or dirtu\nPlayer = PlayerS or PlayerU\nHelpers = h_grav or scrolling or h_step\nPickups = shoes or Eraser or Unraser\nHeldpickups = shoesworn\nSolid = Dirt or Player or Rock or Pickups or enemy\nHeavy = Rock or Pickups or enemy\noverlays = pickupoverlay or enemyoverlay\nEverything = Solid or tempwall or overlays\n\n=======\nSOUNDS\n=======\nSFX1 36137902\nSFX2 78903905\nSFX3 14420703\nSFX4 25525902\nSFX5 49701704\nSFX6 98046907\nSFX7 16284302\nSFX8 96668708\nSFX9 86449100\n================\nCOLLISIONLAYERS\n================\n\nhelpers\nBackground\ntempwall, solid\nHeldpickups\noverlays\ndestroy, inflow, exit\n\n\n======\nRULES\n======\n\nup [ > PlayerU ] -> cancel\ndown [ > PlayerU ] -> [ PlayerS ]\n\n(digging/jumping up)\nup [ > PlayerS | no Solid | no Solid no inflow ] -> [ | | PlayerU scrolling ] SFX2\nup [ > PlayerS | no Solid | Dirt no inflow ] -> [ | | PlayerU scrolling ] SFX7\nup [ > PlayerS | no Solid no inflow ] -> [ | PlayerU scrolling ] SFX2\nup [ > PlayerS | Dirt no inflow ] -> [ | PlayerU scrolling ] SFX7\n\n(scrolling and terraingen)\n[ scrolling ] [ Everything destroy ] -> [ scrolling ] [ destroy ]\n[ scrolling ] [ inflow no Player ] -> [ scrolling ] [ inflow tempwall ]\nrandom [ scrolling ] [ inflow ] -> [ scrolling ] [ inflow random overlays ]\nrandom [ scrolling ] [ inflow ] -> [ scrolling ] [ inflow random overlays ]\nrandom [ scrolling ] [ inflow ] -> [ scrolling ] [ inflow random overlays ]\nrandom [ scrolling ] [ inflow ] -> [ scrolling ] [ inflow random overlays ]\nrandom [ scrolling ] [ inflow ] -> [ scrolling ] [ inflow enemyoverlay ]\nrandom [ scrolling ] [ inflow ] -> [ scrolling ] [ inflow enemyoverlay ]\n\n\n\nstartloop\nrandom [ tempwall ] -> [ dirtm ]\nrandom [ tempwall ] -> [ dirtm ]\nrandom [ tempwall ] -> [ dirtm ]\nrandom [ tempwall ] -> [ dirtm ]\nrandom [ tempwall ] -> [ dirtm ]\nrandom [ tempwall ] -> [ dirtm ]\nrandom [ tempwall ] -> [ ]\nrandom [ tempwall ] -> [ ]\nrandom down [ tempwall | solid ] -> [ rock | Solid ]\nrandom down [ tempwall | solid ] -> [ rock | Solid ]\nendloop\n\n\n[ pickupoverlay rock ] -> [ random pickups]\n[ enemyoverlay rock ] -> [ enemy ]\n\nrandom down [ Solid inflow | rock | rock ] -> [ rock inflow | rock | rock ]\n[ no Solid | inflow Solid | no Solid ] -> [ | inflow | ]\n[ no Solid | inflow Solid | inflow Solid | no Solid ] -> [ | inflow | inflow | ]\n\n\ndown [ scrolling ] [ Everything ] -> [ scrolling ] [ > Everything ]\n\n\n(gravity)\ndown [ Heavy ] -> [ down Heavy ] again\n\n(up [ > PlayerS | no Solid ] [ Everything destroy ] -> [ > PlayerS scrolling | ] [ destroy ]\nup [ > PlayerS | Dirt ] [ Everything destroy ] -> [ > PlayerS scrolling | dirt ] [ destroy ]\ndown [ Everything ] [ Player scrolling ] -> [ > Everything ] [ PlayerU scrolling ]\n)\n\n(movement in general)\nhorizontal [ > PlayerU | Dirt ] -> [ | PlayerS ] SFX1\nhorizontal [ > PlayerU ] -> [ > PlayerS ]\n\n[ action PlayerU ] -> [ PlayerS ]\n[ > Player | Dirt ] -> [ | Player ] SFX1\n\n\n(use pickup) \n\nup [ action PlayerS shoesworn | Solid | no inflow no exit ] -> [ | Solid | PlayerS ] SFX4\nup [ action PlayerS shoesworn | | Solid | no inflow no exit ] -> [ | | Solid | PlayerS ] SFX4\nup [ action PlayerS shoesworn | | | | no inflow no exit ] -> [ | | | | PlayerU ] SFX4\n\n(pushing)\nHorizontal [ > Player | Heavy ] -> [ > Player | > Heavy ] SFX6\nHorizontal [ > Heavy | Heavy ] -> [ > Heavy | > Heavy ]\nHorizontal [ > Enemy | Dirt ] -> [ > Enemy | ] SFX1\nHorizontal [ > Enemy | pickups | Solid ] -> [ > Enemy | | Solid ] SFX4\n([Enemy h_dead no h_grav] -> message flattened to death)\n(down [ Enemy h_dead | destroy ] -> [ Enemy | destroy ] message flattened to death)\n([ > Enemy | Player ] -> [ | Enemy h_dead ] SFX5)\n([ moving Enemy h_dead ] -> [ moving Enemy moving h_dead ])\n[ moving Enemy h_grav ] -> [ moving Enemy moving h_grav ]\ndown [ > Enemy h_grav | Solid no Player no Enemy ] -> [ | Enemy ] SFX4\ndown [ > Enemy | Player ] -> [ > Enemy | ] SFX4\n\n\n\n\n(pickup)\n\n[ > Player | shoes ] -> [ | stationary Player shoesworn ] SFX3\n\n[ > Player | Eraser ] [ Solid no Player no Pickups ] -> [ > Player | Eraser ] [ DirtM ]\nstartloop\nrandom [ > Player | Unraser ] [ Solid no Player | no Solid ] -> [ > Player | Unraser ] [ Solid | Rock ]\nrandom [ > Player | Unraser ] [ Solid no Player | no Solid ] -> [ > Player | Unraser ] [ Solid | Dirtm ]\nrandom [ > Player | Unraser ] [ Solid no Player | no Solid ] -> [ > Player | Unraser ] [ Solid | Dirtm ]\nrandom [ > Player | Unraser ] [ Solid no Player | no Solid ] -> [ > Player | Unraser ] [ Solid | Dirtm ]\nendloop\n[ > Player | Pickups ] -> [ | stationary Player ] SFX8\n\n(steps)\nup [ PlayerS | no Solid ] -> [ PlayerS | h_step ]\n[ moving PlayerS ] [ h_step ] -> [ moving PlayerS ] [ moving h_step ]\n\n(late steps)\nlate down [ h_step | Player ] -> [ | Player ]\nlate [h_grav] [h_step] -> [h_grav] []\nlate down [ h_step no Solid | no Player ] [ PlayerS ] -> [ PlayerS | ] [ ]\nlate down [ h_step Dirt | no Player ] [ PlayerS ] -> [ PlayerS | ] [ ] SFX1\n\n(player gravity)\nlate down [ PlayerS | h_grav ] -> [ | PlayerS ]\nlate down [ PlayerS | no Solid ] -> [ PlayerS | h_grav ]\n\nlate [ Player no shoesworn] [ shoesworn ] -> [ Player shoesworn ] [ ]\n\n(enemy gravity)\nlate down [ enemy | no Solid ] -> [ enemy h_grav | ]\nlate down [ enemy | Player ] -> [ enemy h_grav | ]\n\n\n(cleanup)\nlate [scrolling] -> []\nlate [overlays] -> []\nlate [h_step] -> []\n\n(beautify)\nlate up [ Dirtm | no Dirt ] -> [ DirtU | ]\nlate up [ DirtU | Dirt ] -> [ Dirtm | Dirt ]\n\n(death)\n[ Player destroy ] -> [ destroy ] SFX4\n\n(life)\nlate [ Player exit ] [ exit no Player ] -> [ Player exit ] [ ] SFX9\n==============\nWINCONDITIONS\n==============\nall exit on player\n=======\nLEVELS\n=======\n\nmessage Survive. x to use held item.\n$$$$$$$$$$$$$$$$$$$\neeeeeeeeeeeeeeeeeee\neeeeeeeeeeeeeeeeeee\n###################\n###################\n###################\n###################\n###################\n###################\n###################\n###################\n###################\n###################\n###################\n###################\n###################\n#########P#########\n###################\n###################\n###################\n###################\n###################\n###################\n@@@@@@@@@@@@@@@@@@@\n\nmessage Is that a light at the end of the tunnel?\n$$$$$$$$$$$$$$$$$$$$$$$$$\neeeeeeeeeeeeeeeeeeeeeeeee\neeeeeeeeeeeeeeeeeeeeeeeee\no.......................o\no.......................o\no..x.x.x.x.xpx.x.x.x.x..o\no#.#.#.#.#.#x#.#.#.#.#.#o\no.#.#.#.#.#.#.#.#.#.#.#.o\no#.#.#.#.#.#.#.#.#.#.#.#o\no.#.#.#.#.#.#.#.#.#.#.#.o\no#.#.#.#.#.#.#.#.#.#.#.#o\no.#.#.#.#.#.#.#.#.#.#.#.o\no#.#.#.#.#.#.#.#.#.#.#.#o\no.......................o\no.......................o\no.......................o\no.......................o\no......#................o\no.....##..............#.o\no....###...%...#..#..##.o\n###..############.#######\n########.##.#############\n####.#####..#############\n########.....############\n#########################\n#########################\n@@@@@@@@@@@@@@@@@@@@@@@@@\n",[0,0,3,0,3,0,3,0,3,0,3,0,3,0,0,2,0,1,0,1,0,1,0,1,0,1,0,2,0,3,0,3,0,2,0,3,3,3,0,1,0,1,0,1,1,0,2,0,1,0,2,0,1,1,1,0,3,0,3,3,3,3,0,3,3,4,0,3,0,1,0,2,0,1,0,2,0,1,1,1,1,1,0,2,0,3],"background inflow:0,background dirtu exit:1,background dirtm exit:2,background dirtm:3,3,3,3,3,3,3,3,3,3,3,3,background rock:4,background dirtu:5,3,3,\n3,3,background unraser:6,5,background destroy dirtm:7,0,1,background exit:8,5,3,3,3,3,3,3,3,3,3,background shoes:9,\n5,3,3,3,3,3,3,3,3,7,0,1,8,5,3,3,3,3,3,\n3,3,3,3,3,3,3,3,3,3,3,3,3,3,7,0,1,8,5,\n3,3,4,5,3,3,3,3,4,5,3,3,3,3,3,3,3,3,3,\n7,0,1,8,5,3,3,3,background enemy:10,5,4,5,3,3,3,3,3,3,3,\n3,3,3,3,3,7,0,1,2,3,3,3,3,4,5,3,3,3,3,\n3,3,3,3,3,3,3,3,3,3,7,0,1,background eraser exit:11,5,3,3,3,3,\n3,3,3,3,3,3,3,3,4,5,4,5,3,3,3,7,0,1,2,\n3,4,5,3,4,4,5,3,3,3,3,3,3,4,5,4,5,3,3,\n3,7,0,background exit rock:12,1,4,5,3,3,3,3,3,background:13,13,13,5,3,3,3,\n3,3,3,3,3,4,background destroy rock:14,0,8,8,5,3,3,3,3,3,background eraser:15,background players:16,5,\n13,5,4,5,3,3,3,3,3,3,3,7,0,8,1,3,3,3,4,\n5,3,3,3,4,5,3,3,3,3,3,3,3,3,3,3,7,0,8,\n1,3,3,3,3,3,3,3,3,4,5,3,3,3,3,3,3,3,3,\n3,3,7,0,8,1,3,3,3,4,5,3,3,3,4,5,3,3,3,\n3,3,3,3,3,4,4,14,0,8,background enemy exit:17,5,3,3,3,3,3,3,3,\n3,13,4,5,3,3,3,3,3,3,4,5,7,0,12,12,4,4,4,\n6,5,4,5,3,3,3,13,5,3,3,3,3,3,3,3,3,background destroy:18,0,\n1,2,10,5,4,5,3,3,3,3,3,3,13,5,3,3,4,5,3,\n3,3,3,18,0,17,12,5,4,5,3,4,5,4,5,3,13,4,5,\n3,3,3,3,3,3,3,3,18,0,8,8,5,3,13,5,3,13,4,\n5,6,5,13,5,3,3,3,3,3,3,3,3,18,0,1,2,3,3,\n13,5,3,13,5,3,6,5,13,5,3,3,13,5,3,3,3,3,18,\n",1,"1398622969208.197"]
	],
	[
		"Cute Train",
		["title cute train\nauthor Mark Wonnacott\nhomepage http://twitter.com/ragzouken\n\nflickscreen 16x10\ncolor_palette pastel\nyoutube pTgEXwzk7XU\n\nnoundo\nnorestart\n\n========\nOBJECTS\n========\n\nBackground\nlightgreen green\n01000\n00110\n10010\n10100\n01001\n\nWater\nblue white lightblue\n20010\n02002\n12020\n00220\n02002\n\nWater2\nblue white lightblue\n02000\n20210\n00202\n01022\n20200\n\nTemp\nblue\n\nGerald\nblue black\n.000.\n01010\n10001\n01110\n.000.\n\nMountain\ndarkbrown darkbrown\n..0..\n.10..\n.000.\n0000.\n11001\n\nForest\ndarkgreen brown\n.000.\n00000\n00000\n00100\n.111.\n\nBeach\nyellow white\n00010\n01000\n00001\n00100\n10000\n\nPlayer\nyellow black\n.000.\n01010\n10001\n01110\n.000.\n\nGhostVTrack\nyellow\nGhostHTrack\nyellow\nGhostURTrack\nyellow\nGhostULTrack\nyellow\nGhostDLTrack\nyellow\nGhostDRTrack\nyellow\n\nVTrack\ngrey darkbrown\n0...0\n0...0\n01110\n0...0\n0...0\n\nHTrack\ngrey darkbrown\n00000\n..1..\n..1..\n..1..\n00000\n\nStructs\nblack darkbrown\n11111\n10101\n11111\n10101\n11111\n\nURTrack\ngrey darkbrown\n...00\n..0..\n.01..\n0..1.\n0...1\n\nULTrack\ngrey darkbrown\n00...\n..0..\n..10.\n.1..0\n1...0\n\nDLTrack\ngrey darkbrown\n1...0\n.1..0\n..10.\n..0..\n00...\n\nDRTrack\ngrey darkbrown\n0...1\n0..1.\n.01..\n..0..\n...00\n\nUTrain\nred black darkred\n.000.\n01110\n00000\n00100\n00000\n\nRTrain\nred black darkred\n0000.\n00010\n01010\n00010\n0000.\n\nLTrain\nred black darkred\n.0000\n01000\n01010\n01000\n.0000\n\nDTrain\nred black darkred\n00000\n00100\n00000\n01110\n.000.\n\nCart\nred black darkred\n22222\n21112\n21112\n21112\n22222\n\nSmoke1\nwhite\n..0..\n.0.0.\n0.0.0\n.0.0.\n..0..\n\nSmoke2\nwhite\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\nSmoke3\nwhite\n.....\n..0..\n.0.0.\n..0..\n.....\n\nSwitching\nblack\n\n\nSwitch\nred black\n...0.\n..1..\n.1...\n.111.\n.....\n\n=======\nLEGEND\n=======\n\n. = Background\n^ = Mountain\n% = Forest\n~ = Water\n, = Beach\n\n| = VTrack\n- = HTrack\nr = URTrack\n¬ = ULTrack\nl = DRTrack\nj = DLTrack\nX = VTrack and Structs\nZ = HTrack and Structs\nQ = ULTrack and Structs\n\nP = Player\n\nT = VTrack and UTrain\nC = VTrack and Cart\n\n[ = HTrack and RTrain\n] = HTrack and Cart\n\n/ = Switch\n\n1 = GhostHTrack and URTrack\n! = HTrack and GhostURTrack\n2 = HTrack and GhostDRTrack\n3 = HTrack and GhostULTrack\n4 = GhostHTrack and DLTrack\n5 = GhostVTrack and URTrack\n6 = GhostVTrack and DRTrack\n7 = GhostVTrack and ULTrack\n8 = GhostVTrack and DLTrack\n\n_ = Beach and HTrack\n\nWaterR = Water or Water2\n\nGhost = GhostHTrack or GhostVTrack or GhostULTrack or GhostURTrack or GhostDLTrack or GhostDRTrack\nTrain = UTrain or DTrain or LTrain or RTrain\nMover = Train or Player or Cart\n\nG = Gerald and Structs\n\n=======\nSOUNDS\n=======\n\nSFX0 91301709\nSFX1 53409305\nSFX2 38557307\nSFX3 99431502\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nBeach GhostVTrack GhostHTrack GhostURTrack GhostULTrack GhostDLTrack GhostDRTrack\nStructs Temp\nVTrack HTrack URTrack ULTrack DLTrack DRTrack Switch\nWater Water2 Mountain Forest Player UTrain RTrain LTrain DTrain Cart Gerald\nSwitching Smoke1 Smoke2 Smoke3\n\n======\nRULES \n======\n\n[ Ghost no Background] -> [ Ghost Background ]\n\n[ WaterR no Temp ] -> [ random WaterR Temp ] (animate water)\n\n[ action Player no Structs | Cart ] [ Train ] -> [ Player Temp | Cart ] [ Train ] (pressing action adds momentum)\n\n(move the train if there's momentum left)\nrandom [ Mover Temp ] [ UTrain ] -> [ Mover ] [ up UTrain ] SFX0\nrandom [ Mover Temp ] [ DTrain ] -> [ Mover ] [ down DTrain ] SFX0\nrandom [ Mover Temp ] [ RTrain ] -> [ Mover ] [ right RTrain ] SFX0 \nrandom [ Mover Temp ] [ LTrain ] -> [ Mover ] [ left LTrain ] SFX0\n\n(move the train if we're on the impassable structs)\n[ Structs Mover ] [ UTrain ] -> [ Structs Mover ] [ up UTrain ] SFX0\n[ Structs Mover ] [ DTrain ] -> [ Structs Mover ] [ down DTrain ] SFX0\n[ Structs Mover ] [ RTrain ] -> [ Structs Mover ] [ right RTrain ] SFX0\n[ Structs Mover ] [ LTrain ] -> [ Structs Mover ] [ left LTrain ] SFX0\n\nlate [ Mover Temp ] -> [ Mover Temp ] again (repeat if there is momentum left)\nlate [ Mover Structs ] -> [ Mover Structs ] again (repeat if the train is still on structs)\n\n(cart follows train)\n[ Cart | > Train ] -> [ > Cart | > Train ]\n[ Cart | perpendicular Train ] -> [ > Cart | perpendicular Train ]\n\n(player follows cart)\n[ Player | > Cart ] -> [ > Player | > Cart ]\n[ Player | perpendicular Cart ] -> [ > Player | perpendicular Cart ]\n\n[ > Player | Structs no Gerald no Cart ] -> [ Player | Structs ] message It's dangerous to walk along railway bridges!\n[ > Mover Temp ] -> [ > Mover > Temp ]\n\n(endgame message)\n[ > Player | Gerald ] -> [ Player | Gerald ] message you made it! thanks for playing.\n[ action Player | Gerald ] -> [ Player | Gerald ] message you made it! thanks for playing.\n\n(train turns when entering corners)\nup [ > UTrain | URTrack ] -> [ > RTrain | URTrack ]\nup [ > UTrain | ULTrack ] -> [ > LTrain | ULTrack ]\n\nright [ > RTrain | ULTrack ] -> [ > DTrain | ULTrack ]\nright [ > RTrain | DLTrack ] -> [ > UTrain | DLTrack ]\n\ndown [ > DTrain | DRTrack ] -> [ > RTrain | DRTrack ]\ndown [ > DTrain | DLTrack ] -> [ > LTrain | DLTrack ]\n\nleft [ > LTrain | URTrack ] -> [ > DTrain | URTrack ]\nleft [ > LTrain | DRTrack ] -> [ > UTrain | DRTrack ]\n\n(animate smoke)\n[ Smoke3 ] -> [ ]\n[ Smoke2 ] -> [ Smoke3 ]\n[ Smoke1 ] -> [ Smoke2 ]\n\n[ action Player Switch ] -> [ Player Switch Switching ] \n\n(switch all uncovered tracks at once)\n[ Switching ] [ GhostHTrack URTrack no Temp no Train no Cart ] -> [ Switching ] [ HTrack GhostURTrack Temp ]\n[ Switching ] [ HTrack GhostURTrack no Temp no Train no Cart ] -> [ Switching ] [ GhostHTrack URTrack Temp ]\n[ Switching ] [ GhostHTrack DRTrack no Temp no Train no Cart ] -> [ Switching ] [ HTrack GhostDRTrack Temp ]\n[ Switching ] [ HTrack GhostDRTrack no Temp no Train no Cart ] -> [ Switching ] [ GhostHTrack DRTrack Temp ]\n[ Switching ] [ GhostHTrack ULTrack no Temp no Train no Cart ] -> [ Switching ] [ HTrack GhostULTrack Temp ]\n[ Switching ] [ HTrack GhostULTrack no Temp no Train no Cart ] -> [ Switching ] [ GhostHTrack ULTrack Temp ]\n[ Switching ] [ GhostHTrack DLTrack no Temp no Train no Cart ] -> [ Switching ] [ HTrack GhostDLTrack Temp ]\n[ Switching ] [ HTrack GhostDLTrack no Temp no Train no Cart ] -> [ Switching ] [ GhostHTrack DLTrack Temp ]\n\n[ Switching ] [ GhostVTrack URTrack no Temp no Train no Cart ] -> [ Switching ] [ VTrack GhostURTrack Temp ]\n[ Switching ] [ VTrack GhostURTrack no Temp no Train no Cart ] -> [ Switching ] [ GhostVTrack URTrack Temp ]\n[ Switching ] [ GhostVTrack DRTrack no Temp no Train no Cart ] -> [ Switching ] [ VTrack GhostDRTrack Temp ]\n[ Switching ] [ VTrack GhostDRTrack no Temp no Train no Cart ] -> [ Switching ] [ GhostVTrack DRTrack Temp ]\n[ Switching ] [ GhostVTrack ULTrack no Temp no Train no Cart ] -> [ Switching ] [ VTrack GhostULTrack Temp ]\n[ Switching ] [ VTrack GhostULTrack no Temp no Train no Cart ] -> [ Switching ] [ GhostVTrack ULTrack Temp ]\n[ Switching ] [ GhostVTrack DLTrack no Temp no Train no Cart ] -> [ Switching ] [ VTrack GhostDLTrack Temp ]\n[ Switching ] [ VTrack GhostDLTrack no Temp no Train no Cart ] -> [ Switching ] [ GhostVTrack DLTrack Temp ]\n\nlate [ no Mover Temp ] -> [ ]\n\n[ Switching ] [ Ghost Mover ] -> [ Switching ] [ Ghost Mover ] SFX3 (play blocking sound if switch tracks are covered while switching)\n[ Switching ] -> [ ] SFX2 (play switching sound, end switching)\n\n[ > UTrain ] -> [ > UTrain Smoke1 ]\n[ > DTrain ] -> [ > DTrain Smoke1 ]\n[ > LTrain ] -> [ > LTrain Smoke1 ]\n[ > RTrain ] -> [ > RTrain Smoke1 ]\n\n\n\n==============\nWINCONDITIONS\n==============\n\n======= \nLEVELS\n=======\n\n(feel free to try making more puzzles!\n\nediting tip: copy out a few rows of screens to edit in isolation\n\n* use bridges (structs) to force the train over junctions before there's a chance to switch them\n* use bridges to make switches unreachable until junctions have been crossed\n* use the train itself and narrow passages to make switches unreachable until junctions have been crossed)\n\nmessage welcome to the breezy isles!\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n~~~~~~~~~~~~~~~~~~,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n~~~~~~~~~~~~~~~~~,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n~~~~~~~~~~~~~~~~~,,..,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n~~~~~~~~~~~~~~~~~,,,p.,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n~~~~~~~~~~~~~~~~~~,,....,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n~~~~~~~~~~~~~~~~~~,,,.....,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n~~~~~~~~~~~~~~~~~~~,,,......,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n~~~~~~~~~~~~~~~~~~~~,,.......,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n~~~~~~~~~~~~~~~~~~~,,,........,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~~~\n~~~~~~~~~~~~~~~~~~,,,..........,,,,,,,,~~~~~~~~~~~~~~~~~~~~~~~~~\n~~~~~~~~~~~~~~~~~~,,...............,,,,,,~~~~~~~~~~~~~~~~~~~~~~~\n~~~~~~~~~~~~~~~~,~~,...%.........%....,,,,~~~~~~~~~~~~~~~~~~~~~~\n~~~~~~~~~~~~~,,,,,~..%.................,,,,~~~~~~~~~~~~~~~~~~~~~\n~~~~~~~~,,,,,,,,..~~%%%%%.r-------¬.....,,,,~~~~~~~~~~~~~~~~~~~~\n,,,,,,,,,,,,,....%%~%%%%%%t.......l-¬.....,,,~~~~~~~~~~~~~~~~~~~\n,,,,,,..........%%%~~%%%%%c%%.......l-¬....,,~~~~~~~~~~~~~~~~~~~\n........%%%..%%%%%%%~%%%%%|%%%%%....|.l--¬..,,~~~~~~~~~~~~~~~~~~\n.%%%%.%%%%%%%%%%%%%%~%%%%%|%%%%%%%..|...%l¬.,,~~~~~~~~~~~~~~~~~~\n%%%%%%%%%%%%%%%%%%%%~%%%%%|%%%%%%%%.l¬..%%|.,,~~~~~~~~~~~~~~~~~~\n%%%%%%%%%%%%%%%%%%%%~%%%%%|%%%%%%%%..|.%%%|.,,~~~~~~~~~~~~~~~~~~\n%%%%r---------------z-¬%%%|%%%%%%....|%%%%|.,,~~~~~~~~~~~~~~~~~~\n%%.rj........%%%%%%%~%l¬%.|..........|%%%rj,,,~~~~~~~~~~~~~~~~~~\n%%rj.~~~~G~~~~%%%%%%~^%l--¬..........l---j.,,,~~~~~~~~~~~~~~~~~~\n%.|.~~~~~x~~~~~%%%%^~^....|.....^^^........,,~~~~~~~~~~~~~~~~~~~\n%.|.~~~~~~~~~~~%%^^^~^....l¬...^^^^^^......,,~~~~~~~~~~~~~~~~~~~\n%.|.~~~~~~~~~~%%%^^^~^^^..^l¬^^^^^^^^^^^^^.,^^~~~~~~~~~~~~~~~~~~\n%%l¬.~~~~~~~%%%^^^^^~^^^^^^^l¬^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~~\n%%.|..~~~~%%%%^^^^^~~^^^^^^^^x~^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~\n%%%|.%%%%%%%%^^^^^^~^^^^^^^^~x~^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~\n%%%x%%%%%%%%%^^^^^~~^^^^^^^^~x~^^^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~\n%%rj%%%%%%%%%^^^^^^~^^^^^^^~~x~%...%%^^%%^^^^^^^^^^^^^~~^~~~~~~~\n%%5z---¬%%%%%^^^^^^~^^^^^^^~^l¬..%r------¬%%^^^^^^^^^^^~~~~~~~~~\n%%|%%%%|%%%%^^^^^^^~~^^^^^~~^^l¬..|.%%%%%|%%%.^^^^^^^^^^^~~~~~~~\n%r4z---¬%%%%^^^^^^^^~~^^^^~^^^.l--l---3--j%%..^^^^^^^^^^^^~~~~~~\n%x./%r-¬%%%%^^^^^^^^^~~^^~~^^^........|%%%%%..^^^^^^^^^^^^^~~~~~\n%l--zj¬j%%%%^^^^^^^^^^~~~~^^^^%%..../.|.%%...^^^^^^^^^^^^^~~~~~~\n%%%%%%5z¬z¬%^^^^^^^^^^^^~~^^^^^%%%....|......^^^^^^^^^^^^^^~~~~~\n%%r--¬x%lzj%^^^^^^^^^^^^~^^^^^^%%%%..~x~~~~~~~^^^^^^^^^^^^^^~^~~\n%%|%%|x%%%%%%^^^^^^^^^^^~^^^^^^%%%%%~~x~~~~~~~~^^^^^^^^^^^^^~~~~\n%%|%%|x%%%%%%%%^^^^^^^^^~^^^^^^%%%%%~~x~~~~~~~~^^^^^^^^^^^^^~~~~\n%%r--47---¬¬---zzzzz1zzzzz¬^^^^^%%%..~x~~~~....%^^^^^^^^^^^~~~~~\n%%|%%%x%.%lj%%^^^^^^x^^^~^lz¬^^^^%%...|..%...%.%%%^^^^^^,,~~~~~~\n%%|%/.l¬.%%%^^^^^^^^x^^^~~^^lz¬^^%%...|.....%...........,,~~~^^~\n%%|%%%lj%%%^^^^^^^^^x^^^^~^~^^x^^^%%.rl-----------r-----__zzz¬^~\n%%l¬%%%%%^^^^^^^^^^^x^^^^~~^^^x^^^%%.|........%...|.....,,~~^x^~\n%%lj%%%%%^^^^^^^^^^r-¬^^^~~~~^x^^^^^%|...%^^^.....l¬../.,,~~~x~~\n%%%%%%%%^^^^^^^^^^^|l¬%^^~~~~~x~^^^^^|.^^^^^^^^^^..|....^^^~~x~~\n%%%%%%%^^^^^^^^^^%rj%|%^^^~~^^x^^^^^rj%%^^^^^^^%%.%l¬.^^^^^^~x~~\n%%%%%%^^^^^^^^^^^%|%%|%^^~^^~^x^^^%.|...%%..%.......|....,,~~x~~\n%%%%^^^^^^^^^^^^^%|/.|%^~^^^^^x^^^%.|.%.............|...,,,~^x^~\n%%^^^^^^^^^^^^^^^%l--8^^^^^^^rj%^^..|..r----!-------2--1___zzj^~\n^^^^^^^^^^^^^^^^^%|%^x^^^^^^^x^^^^%.|.%|%%..|....%..|%.|,,,~~^~~\n^^^^^^^^^^^^^^^^^^|.rlzz--3z-4¬^^^%.|.%l¬...|.......|..l¬,,~~~~~\n^^^^^^^^^^^^^^^^^^x^|^^^..|^..|%^^..l¬%%l-----------j...|,,,~~~~\n^^^^^^^^^^^^^^^^^^l-|---¬/|^.%|%^^%..|.%.%%.l¬%....%....|,,,,~~~\n^^^^^^^^^^^^^^^^^^^%|.%%l-j---j%^^^%.l¬.....%l¬.%.....%.|,,,,~~~\n^^^^^^^^^^^^^^^^^^^%|%%%%%%%%%%^^^^%%.|.%%%...l--¬......l¬,,,~~~\n^^^^^^^^^^^^^^^^^^^^x^^^^%%%^^^^^^^%%.|..%..%...%l-¬%....|,,,~~~\n^^^^^^^^^^^^^^^^^^^^x^^^^^^^^^^^^^^%%%|%%%%..%%....l¬....|,,,,~~\n^^^^^^^^^^^^^^^^^^^^x^^^^^^^^^^^^^^^%%|%^^%%......%.l¬...|.,,,~~\n^^^^^^^^^^^^^^^^^^^^x^%%%%%^^^^^^^^^^^|%%^^^^^^.%%...|...|^^^,~~\n^^^^^^^^^^^^^^^^^^^%|%%....%%^^^^^^^^%|%%%^^^^^^^^^%.|.^^|^^,,~~\n^^^^^^^^^^^^^^^^^^^%|%..%^..%%^^^^^%%rj%%^^^^^^^%....|...|^,,,~~\n^^^^^^^^^^^^^^^^^^^%|./.^%%..%%^^^%%.|.%..%......../.6---¬^,,,~~\n^^^^^^^^^^^^^^^^^^^%|..%^%....%^^^%..|%..%...%......rj...|.,,,~~\n^^^^^^^^^^^^^^^^^^^%l--!z1--¬--zzz----------------!-j..%.|,,,,~~\n^^^^^^^^^^^^^^^^^^^^%%%|^|..|.%^^^%..|.%.%..%..%..|...%..|,,,,~~\n^^^^^^^^^^^^^^^^^^^^^^^x^|%%|%^^^^%%.|%%%.........|......|,,,,~~\n^^^^^^^^^^^^^^^^^^^^^^^x^x^^x^^^^^^%%|%^^^^^^.....|...^^rj^,,~~~\n^^^^^^^^^^^^^^^^^^^^^^^x^x^^x^^^^^^^^|%.^^^^^^^^%.|.^^^^|^^^^~~~\n^^^^^^^^^^^^^^^^^^^^^^^x^x^^x^^^^^^^%|^^^^^^^^.%..|.....|,,^^~~~\n^^^^^^^^^^^^^^^^^^^^^^^x^x^^l¬^^^^^%%|%%^^^.%.....|...%.|,,,~~~~\n^^^^^^^^^^^^^^^^^^^^^^^x^lzzjx^^^^%%.|..%%........|.%...|,,,~~~~\n^^^^^^^^^^^^^^^^^^^^^^^l¬^^^^x^^^^%%.l¬%......%..rj..%..|,,,~~~~\n^^^^^^^^^^^^^^^^^^^^^^^^x^^^^x^^^^%%%.l¬.%......rj.....rj,,,~~~~\n^^^^^^^^^^^^^^^^^^^^^^^^x^^^^x^^^^^%%%%l--------j------j,,,,~~~~\n^^^^^^^^^^^^^^^^^^^^^^^^lzzzzj^^^^^^^%%%%%.%%%%...%%%%^^^,,,~~~~\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^%%%%%^^^^^^^^^^^^^^^^^~~\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^~~\n\n",[3,2,3,2,3,2,3,3,2,3,2,2,2,2,2,2,4,4,2,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,0,0,1,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,2,4,0,4,4,1,1,2,2,4,0,0,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4],"background water:0,background water2:1,0,0,1,1,0,1,1,1,1,1,1,0,1,background beach:2,2,background:3,3,background forest:4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,background mountain:5,5,5,5,5,5,5,5,5,5,5,5,\n5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,1,1,0,1,1,0,0,0,1,0,1,1,1,2,2,3,4,4,4,4,4,4,3,3,3,4,4,4,4,4,4,4,background urtrack:6,background structs vtrack:7,background drtrack:8,4,4,4,4,4,4,4,4,4,4,4,\n4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,1,1,1,0,1,0,1,1,1,0,0,1,0,0,2,2,3,4,4,4,4,3,6,background vtrack:9,9,9,8,3,4,4,6,\nbackground ghosturtrack vtrack:10,9,background ghostdltrack htrack:11,3,background htrack:12,4,6,9,9,6,9,9,9,8,8,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,0,0,1,1,1,1,1,0,1,0,1,0,1,1,2,\n2,3,4,4,4,4,6,background dltrack:13,3,3,3,background ultrack:14,9,9,7,13,background htrack structs:15,4,15,background switch:16,12,4,12,4,4,12,4,4,4,14,13,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,\n1,0,1,1,1,1,0,1,1,1,0,1,1,0,1,2,2,3,4,4,4,6,13,3,1,1,1,3,3,3,4,4,12,4,12,4,15,4,12,4,4,12,4,16,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,\n5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,1,0,1,0,1,0,1,1,1,1,1,0,1,1,2,2,3,3,4,4,12,3,1,0,0,1,1,3,4,4,4,12,4,12,6,13,4,14,9,9,11,4,3,4,4,4,4,\n4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,1,1,1,0,1,0,1,1,1,1,0,1,0,1,2,3,3,4,4,4,12,3,1,1,1,1,1,1,4,4,4,\n12,4,12,12,14,10,7,7,7,background ghostultrack vtrack:17,7,8,8,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,1,1,0,1,0,1,1,0,0,1,0,1,2,\n3,3,4,4,4,12,3,0,0,1,1,0,0,4,4,4,14,9,14,14,13,15,4,4,4,12,4,14,13,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,\n0,1,1,0,1,0,0,0,1,0,0,1,1,1,2,2,3,4,4,4,4,12,3,1,0,0,1,0,0,4,4,4,4,4,4,4,4,14,8,4,4,12,3,3,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,\n5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,1,1,0,0,1,1,0,1,0,0,0,1,2,2,3,4,4,4,4,12,3,background gerald structs:18,7,0,0,1,1,4,4,4,4,4,4,4,4,15,15,4,4,12,4,4,4,5,5,5,\n5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,1,0,1,0,1,0,0,1,1,1,1,1,2,2,3,4,4,4,4,12,3,1,0,1,1,1,4,4,4,4,\n4,4,4,4,4,14,13,4,4,14,8,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,1,0,1,0,0,0,1,0,1,0,0,1,0,2,2,\n3,3,4,4,4,12,3,0,0,0,1,0,4,4,4,4,4,4,4,4,4,4,4,4,4,14,13,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,\n1,1,1,0,0,0,1,1,0,1,0,0,1,0,2,2,3,3,4,4,4,12,3,0,1,1,0,4,4,4,4,4,4,5,5,5,5,5,5,4,4,12,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,\n5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,1,1,0,1,0,1,1,1,1,0,0,1,2,2,3,3,4,4,4,4,12,4,1,1,1,0,4,4,5,5,5,5,5,5,5,5,5,5,5,4,12,4,5,5,5,5,5,\n5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,1,1,1,1,0,0,1,1,1,1,1,0,2,2,3,3,4,4,4,4,12,4,4,1,0,4,4,5,5,5,5,\n5,5,5,5,5,5,5,5,4,12,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,1,0,0,0,0,0,0,1,1,0,1,1,2,2,3,\n3,4,4,4,4,12,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,15,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,\n0,0,0,1,0,0,0,1,0,1,1,1,2,2,3,3,4,4,4,4,4,12,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,15,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,\n5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,1,2,2,2,1,0,1,1,1,1,0,1,2,3,4,4,4,4,4,4,12,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,15,5,5,5,5,5,5,\n4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,2,2,2,2,2,2,0,0,1,2,2,1,0,1,4,4,4,4,4,4,12,4,4,4,5,5,5,5,5,0,5,\n5,5,5,5,5,5,5,5,5,15,5,5,5,5,5,5,6,9,9,8,9,9,7,8,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,2,2,3,2,2,2,2,0,2,2,2,2,3,1,1,\n0,4,4,4,4,12,4,4,5,5,5,5,1,1,1,0,1,0,5,5,5,5,5,5,5,15,5,5,5,5,6,9,13,4,16,12,4,3,5,12,4,4,5,5,5,5,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,\n0,2,2,3,3,3,2,2,2,2,2,3,3,3,4,4,1,1,1,0,0,15,1,1,1,0,0,1,0,5,5,5,5,1,0,5,5,5,5,5,5,background ghosturtrack htrack:19,7,7,7,7,12,8,4,4,3,12,5,6,9,9,9,9,7,7,7,7,9,9,\n9,9,8,4,5,5,5,5,5,5,5,5,5,5,5,5,1,2,2,2,3,3,3,2,2,2,3,3,3,4,4,4,4,4,4,4,4,12,4,5,5,5,5,5,5,5,5,5,5,5,1,1,5,5,5,5,5,15,5,5,5,5,14,14,\n9,9,9,background ghostdltrack vtrack:20,7,8,5,12,3,4,5,5,5,5,4,4,3,3,12,4,5,5,5,5,5,5,5,5,5,5,5,5,0,1,2,2,2,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,14,8,4,3,3,5,5,5,5,5,5,\n5,5,5,0,0,5,5,5,5,15,5,5,5,5,5,4,4,4,4,5,5,15,5,12,4,4,5,5,5,4,4,3,16,3,12,4,5,5,5,5,5,5,5,5,5,5,5,5,0,1,2,2,2,3,3,3,3,3,3,3,4,3,4,4,\n4,4,4,4,4,4,14,8,3,3,5,5,5,5,5,5,5,5,5,5,1,5,5,5,5,15,5,5,5,5,5,5,5,5,5,5,5,15,5,12,4,4,5,5,5,4,3,3,3,4,background ghosthtrack urtrack:21,9,7,7,7,7,7,7,8,5,5,5,5,5,\n0,1,1,2,2,2,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,12,3,3,3,5,5,5,5,5,5,5,5,5,1,0,1,1,1,15,1,1,5,5,5,5,5,5,0,5,5,12,3,14,8,4,5,5,5,4,3,4,\n5,5,15,5,5,5,5,5,5,5,14,7,7,8,5,5,0,0,1,2,2,2,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,3,12,3,3,3,5,5,5,5,5,5,5,5,1,1,0,5,5,5,15,5,0,0,1,0,0,\n5,1,5,5,5,12,3,16,12,4,4,5,5,4,3,5,4,4,19,9,9,7,7,7,7,8,5,5,5,15,5,5,1,0,1,0,2,2,2,3,3,3,3,3,3,3,6,9,9,9,9,9,9,9,9,14,9,8,5,5,5,5,5,5,\n5,0,0,1,5,5,5,5,5,14,8,5,5,0,0,1,0,5,5,5,5,background ghosthtrack ultrack:22,9,9,13,4,4,5,5,4,3,3,4,3,12,3,4,5,5,5,5,15,5,5,5,15,5,5,0,0,1,1,1,2,2,3,3,3,3,3,3,3,12,3,\n4,4,4,4,4,4,3,3,3,14,8,5,5,5,5,1,0,0,5,5,5,5,5,5,5,5,15,5,0,5,1,1,0,5,5,5,5,15,5,5,12,4,4,5,5,5,4,3,3,3,12,3,4,5,5,5,5,15,5,5,5,15,5,5,\n0,1,1,0,1,2,2,2,3,3,3,3,3,3,12,3,4,4,4,4,4,4,3,3,3,3,14,8,5,1,0,0,5,5,5,5,5,5,5,5,5,5,14,8,5,5,0,1,5,0,5,5,5,12,3,3,12,4,5,5,5,5,4,4,\n3,3,14,9,9,7,7,7,8,13,5,5,5,15,5,5,1,1,1,0,1,0,2,2,2,3,3,3,3,3,12,3,3,4,4,4,4,4,3,3,3,3,5,14,7,7,7,7,8,5,5,5,5,5,5,5,5,5,5,15,5,5,5,0,\n5,5,5,6,7,11,3,4,12,4,5,5,5,5,5,4,4,3,12,3,4,5,5,5,14,7,7,7,7,13,5,5,0,0,0,0,0,1,1,2,2,2,3,3,3,3,12,3,3,4,4,4,4,4,3,3,3,3,5,5,0,1,0,1,\n14,8,3,3,4,5,5,5,5,5,5,14,7,7,7,7,7,7,7,13,5,14,9,9,13,4,5,5,5,5,5,5,4,4,12,4,5,5,5,5,5,5,5,5,5,5,5,5,1,1,0,1,0,0,1,0,2,2,2,3,3,3,12,3,\n3,4,4,4,4,4,3,3,3,5,5,5,5,5,5,4,3,14,8,3,4,4,4,4,4,5,5,5,5,5,5,1,5,5,5,4,5,5,4,4,4,5,5,5,5,5,5,5,5,5,15,5,5,5,5,5,5,5,5,5,5,5,5,5,\n0,0,1,0,0,1,0,0,2,2,2,3,3,3,12,3,3,3,4,4,4,4,3,3,5,5,5,5,5,5,5,3,3,3,12,3,3,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,\n5,5,15,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,1,1,0,1,1,2,2,2,3,4,3,12,3,3,3,4,4,4,3,3,3,5,5,5,5,5,5,5,3,4,3,12,3,3,4,4,4,4,4,4,4,5,5,5,5,\n5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,15,5,5,5,5,5,5,5,5,5,5,5,5,5,0,1,1,0,1,0,0,0,2,2,2,3,3,3,14,8,3,3,3,4,4,3,3,3,5,5,5,5,5,5,5,3,\n6,9,8,3,3,3,4,4,4,4,4,4,4,4,5,5,5,4,4,3,4,4,3,4,5,5,5,5,5,5,5,5,4,4,12,4,4,5,5,5,5,4,4,4,5,5,5,5,0,0,1,0,1,1,0,1,0,2,2,2,3,3,3,12,\n3,3,3,3,3,3,3,3,3,5,5,5,5,5,5,4,12,3,12,3,3,3,3,4,4,3,3,3,4,4,5,5,5,3,3,3,3,3,3,3,4,4,4,4,5,5,5,4,4,3,12,3,4,4,5,5,4,4,4,4,4,5,5,5,\n1,1,0,1,0,1,0,0,0,2,2,2,3,3,3,14,8,9,9,8,3,3,3,3,3,5,5,5,5,5,5,4,12,4,12,3,16,3,3,0,1,3,3,3,3,3,4,5,6,9,9,9,9,9,8,3,3,4,4,4,4,5,5,4,\n3,3,12,3,3,4,5,4,4,3,3,4,4,5,5,5,0,0,0,0,0,0,0,1,0,1,2,2,3,3,3,3,12,3,3,14,9,9,9,8,3,3,5,5,5,5,5,5,12,4,12,3,3,3,1,1,0,0,3,3,6,9,9,9,\n13,3,3,3,3,3,14,9,8,3,3,4,4,5,4,6,9,9,12,9,9,9,9,9,9,9,8,3,4,4,5,5,1,1,0,0,1,1,0,0,0,0,2,2,2,3,3,3,14,8,3,3,3,4,4,12,3,3,5,5,5,5,5,5,\n12,4,22,9,9,9,7,7,7,7,9,9,8,3,3,3,4,3,4,3,4,4,4,3,14,9,9,9,9,9,9,13,3,4,12,3,4,4,4,5,4,3,14,8,4,4,5,5,0,1,0,0,0,0,0,1,1,1,1,2,2,2,3,3,\n3,12,3,3,4,4,4,12,3,3,5,5,5,5,5,4,12,4,12,4,3,3,0,1,0,1,3,3,12,3,3,5,4,3,3,6,9,8,4,4,3,3,3,4,4,4,4,4,4,3,12,4,4,5,3,5,4,3,4,14,8,4,5,5,\n1,1,1,0,1,0,1,1,0,0,1,2,2,2,2,3,3,12,4,4,4,4,4,12,3,3,5,5,5,5,5,4,12,4,12,4,4,3,1,1,0,0,3,3,background htrack smoke3:23,3,3,5,5,4,3,12,4,14,8,3,3,4,3,4,5,4,4,4,\n3,3,12,3,4,5,5,5,5,4,3,3,12,4,4,5,0,1,0,1,1,1,1,1,1,1,1,1,2,2,2,3,3,14,8,4,4,4,6,13,3,3,5,5,5,5,5,5,14,9,13,4,4,3,0,0,0,0,4,3,background htrack player smoke2:24,3,4,5,\n5,4,3,12,4,3,12,4,3,4,4,4,5,5,4,5,3,4,12,4,3,5,5,5,5,4,3,4,12,4,4,5,0,0,1,1,1,0,1,0,1,1,1,0,0,2,2,2,3,3,14,9,9,9,13,3,3,3,3,5,5,5,5,5,\n4,4,4,4,3,3,1,0,1,0,3,3,background cart htrack smoke1:25,3,5,5,5,3,3,12,3,3,12,4,3,4,3,4,4,5,5,5,4,3,12,3,3,5,5,5,5,3,3,3,12,3,4,5,0,1,1,0,1,1,0,0,0,0,1,0,1,0,2,2,\n2,3,3,3,3,3,2,2,2,2,2,5,5,5,5,5,4,4,4,4,3,3,1,1,0,3,3,3,background htrack rtrain:26,3,5,5,5,3,3,12,3,3,12,3,3,3,3,3,4,5,5,5,3,3,12,3,3,5,5,5,3,3,3,3,12,4,4,5,\n1,1,0,0,0,0,0,0,1,1,0,1,0,0,1,2,2,2,2,2,2,2,2,2,2,2,5,5,5,5,5,5,5,4,3,3,3,3,1,1,1,3,3,4,12,3,5,5,5,4,3,21,9,9,12,8,4,3,4,3,3,5,5,5,\n3,3,12,4,3,5,5,5,4,3,3,3,12,4,4,5,0,1,0,0,0,1,1,0,0,0,0,0,0,0,1,0,0,2,2,2,2,2,2,2,1,1,5,5,5,5,5,5,5,3,3,3,5,5,1,1,0,3,4,3,12,3,3,5,\n5,3,3,12,3,3,12,14,8,3,3,4,3,5,5,5,3,4,12,3,3,3,5,5,3,3,3,3,12,4,5,5,0,1,1,0,1,1,0,1,1,1,0,1,0,0,1,0,0,0,1,0,1,1,0,1,1,0,0,1,5,5,5,5,\n5,5,5,5,5,5,5,0,0,3,3,3,12,4,3,5,5,3,3,12,3,3,12,4,14,8,3,4,3,5,5,5,3,3,12,3,3,3,5,3,3,3,4,3,12,4,5,5,1,1,1,1,0,0,1,1,1,1,1,0,1,1,1,0,\n1,0,1,0,1,0,1,0,0,0,0,0,0,1,5,5,5,5,5,5,5,5,5,5,5,4,4,3,12,3,3,5,4,3,3,12,3,3,12,3,3,12,3,3,3,3,5,5,3,3,12,4,3,3,5,4,3,3,3,3,12,3,5,5,\n1,0,0,0,1,1,0,0,0,0,0,0,0,1,1,1,1,1,0,1,1,1,1,0,0,1,1,0,1,1,5,5,5,5,5,5,5,5,5,5,5,5,4,3,12,3,3,5,4,3,3,12,3,3,12,3,4,12,4,3,3,4,5,4,\n3,3,12,3,3,3,4,3,3,3,3,6,13,3,5,5,1,1,0,0,0,1,0,1,1,0,0,0,0,1,0,0,0,0,0,0,1,1,0,1,0,0,0,0,1,1,5,5,5,5,5,5,5,5,5,5,5,5,4,3,12,3,3,3,\n3,3,3,12,4,3,12,3,3,14,8,3,3,4,5,3,3,3,12,3,3,3,3,3,3,3,6,13,12,3,5,5,0,1,1,0,0,1,0,0,0,0,0,0,1,0,0,1,1,0,1,1,0,0,1,1,1,0,1,0,1,0,5,5,\n5,5,5,5,5,5,5,5,5,5,5,3,6,9,8,3,4,3,3,12,3,3,12,3,3,3,12,3,4,3,5,3,3,3,21,9,9,9,9,9,9,9,13,3,12,4,5,5,1,0,1,0,1,1,1,0,1,1,0,0,1,0,0,0,\n0,0,0,1,1,1,0,0,1,1,0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,5,3,12,3,14,9,8,3,3,12,3,3,12,4,3,3,14,8,3,3,4,3,16,3,12,3,3,3,3,3,3,3,3,3,12,4,5,5,\n0,1,1,1,1,0,1,0,0,0,1,0,1,0,1,0,1,0,1,1,0,0,0,0,1,0,0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,5,3,12,3,3,3,14,9,9,background drtrack ghosthtrack:27,9,9,13,3,3,3,4,14,8,3,3,3,\n3,6,13,3,3,3,5,3,3,4,3,3,12,4,5,5,1,1,0,1,1,1,1,0,0,1,0,0,0,1,0,0,0,1,1,0,0,0,0,1,0,0,0,1,0,1,0,5,5,5,5,5,5,5,5,5,5,5,5,3,12,3,3,3,\n3,3,3,12,4,3,3,3,3,3,3,3,14,9,9,9,background ghostdrtrack vtrack:28,13,3,3,3,3,5,3,3,3,4,3,12,4,5,5,1,1,1,0,0,1,1,0,0,0,0,1,1,0,0,0,1,0,0,0,0,1,0,1,0,1,0,1,1,0,1,0,\n5,5,5,5,5,5,5,5,5,5,5,3,12,3,16,3,5,3,3,12,3,3,3,3,4,3,3,3,3,3,3,3,12,3,3,4,3,5,5,3,4,3,3,3,12,5,5,5,1,0,0,1,1,0,0,1,1,0,0,0,0,0,1,0,\n0,0,0,0,0,1,1,0,0,0,1,1,1,1,1,0,1,5,5,5,5,5,5,5,5,5,5,3,12,3,3,3,5,3,3,19,9,8,3,3,3,3,3,3,3,3,5,3,12,3,4,3,3,5,5,3,3,3,3,6,13,5,5,5,\n1,1,1,0,1,1,1,1,1,1,1,1,0,1,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,5,1,5,5,5,5,5,5,5,5,5,2,2,background beach htrack:29,2,2,5,5,3,2,29,2,14,9,9,9,8,3,3,3,3,5,3,\n12,3,3,3,3,6,9,9,9,9,9,13,2,5,5,5,0,1,1,1,0,1,0,0,1,0,0,1,0,1,0,1,0,0,1,0,0,1,1,0,0,0,1,1,1,1,1,1,0,0,5,5,5,5,5,5,5,5,2,2,29,2,2,5,\n5,2,2,29,2,2,2,2,2,14,9,9,9,9,9,9,14,9,9,9,9,13,5,2,2,2,2,2,2,2,5,5,1,0,0,1,1,1,0,1,0,0,1,1,0,1,1,1,1,0,1,0,0,1,0,0,0,0,0,1,1,1,0,0,\n1,1,1,5,0,5,5,5,5,5,0,0,15,0,0,5,5,2,2,29,2,2,2,2,2,2,2,2,3,5,5,5,5,3,2,2,2,5,5,2,2,2,2,2,2,2,5,5,0,0,1,1,0,0,1,0,1,0,0,1,1,0,1,1,\n0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1,0,1,0,0,1,5,5,5,0,1,1,15,0,0,1,5,0,1,15,0,1,2,2,2,2,2,2,2,5,5,2,2,2,2,2,2,2,5,5,2,2,2,2,2,2,5,5,\n0,1,1,0,0,0,0,0,1,1,0,1,0,0,0,0,1,0,1,1,1,0,1,0,1,0,1,1,1,0,1,0,0,1,1,1,0,0,1,1,0,1,0,1,15,5,1,1,0,0,5,15,1,1,1,2,2,2,2,2,2,5,2,2,\n2,2,2,2,2,2,5,5,0,1,0,1,1,1,5,5,1,1,1,0,0,0,0,0,1,1,0,1,0,1,1,0,1,1,0,1,1,1,0,1,1,1,1,0,0,1,0,1,1,0,0,1,1,0,5,1,0,1,0,5,14,7,7,7,\n7,7,7,13,5,0,1,0,0,0,1,2,2,2,2,2,2,2,2,2,2,0,1,0,0,1,1,0,0,0,5,5,1,0,1,0,1,1,0,1,1,1,1,1,1,0,0,0,1,1,0,1,0,0,1,0,0,1,1,1,1,0,1,0,\n0,0,0,0,0,1,1,0,0,1,0,5,5,5,1,1,1,1,5,5,0,0,1,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,1,0,1,1,0,1,0,1,1,0,1,0,1,1,1,1,1,1,0,0,1,1,1,\n0,1,0,1,0,1,1,1,1,1,1,0,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,0,0,0,1,1,1,0,1,1,1,1,0,1,0,1,1,0,1,0,0,0,0,0,0,1,1,0,1,0,0,0,1,0,1,0,0,1,\n",1,"1398623070351.8035"]
	],
	[
		"sokobond demake",
		["title Sokobond: The Demake\nauthor Jonah Ostroff\nhomepage www.sokobond.com\ntext_color #202020\nbackground_color #FDFDFD\nkey_repeat_interval 0.25\nrun_rules_on_level_start\nnoaction\nyoutube 2R0sTlruOZc\n\n========\nOBJECTS\n========\n\nBackground \n#FFFFFF #F8F8F8\n00000\n01010\n00000\n01010\n00000\n\nPlayer\n#FFBBEE\n00000\n0...0\n0...0\n0...0\n00000\n\nWall\nYellow White\n00000\n00000\n00000\n00000\n00000\n\nHydrogen\nRed Black\n.....\n.111.\n.101.\n.111.\n.....\n\nNitrogen\nGreen Black\n.....\n.111.\n.101.\n.111.\n.....\n\nOxygen\nBlue Black\n.....\n.111.\n.101.\n.111.\n.....\n\nCarbon\nYellow Black\n.....\n.111.\n.101.\n.111.\n.....\n\nHelium\nWhite Black\n.....\n.111.\n.101.\n.111.\n.....\n\n1Electron\nLightGray\n.....\n.0...\n.....\n.....\n.....\n\n2Electron\nLightGray\n.....\n...0.\n.....\n.0...\n.....\n\n3Electron\nLightGray\n.....\n.0.0.\n.....\n.0...\n.....\n\n4Electron\nLightGray\n.....\n.0.0.\n.....\n.0.0.\n.....\n\nBondU\nBlack\n..0..\n.....\n.....\n.....\n.....\n\nBondL\nBlack\n.....\n.....\n0....\n.....\n.....\n\nBondR\nBlack\n.....\n.....\n....0\n.....\n.....\n\nBondD\nBlack\n.....\n.....\n.....\n.....\n..0..\n\n\nBondUL\nBlack\n..0..\n.....\n0....\n.....\n.....\n\nBondUR\nBlack\n..0..\n.....\n....0\n.....\n.....\n\nBondUD\nBlack\n..0..\n.....\n.....\n.....\n..0..\n\nBondLR\nBlack\n.....\n.....\n0...0\n.....\n.....\n\nBondLD\nBlack\n.....\n.....\n0....\n.....\n..0..\n\nBondRD\nBlack\n.....\n.....\n....0\n.....\n..0..\n\nBondULR\nBlack\n..0..\n.....\n0...0\n.....\n.....\n\nBondULD\nBlack\n..0..\n.....\n0....\n.....\n..0..\n\nBondURD\nBlack\n..0..\n.....\n....0\n.....\n..0..\n\nBondLRD\nBlack\n.....\n.....\n0...0\n.....\n..0..\n\nBondULRD\nBlack\n..0..\n.....\n0...0\n.....\n..0..\n\nTemp1\nRed\n\nTemp2 (These are placeholders for various things.)\nGreen\n\nTemp3\nBlue\n\nTemp4\nYellow\n\n=======\nLEGEND\n=======\n\nAtom = Hydrogen or Oxygen or Nitrogen or Carbon or Helium\nOrbital = 1Electron or 2Electron or 3Electron or 4Electron\nUBond = BondU or BondUL or BondUR or BondUD or BondULR or BondULD or BondURD or BondULRD\nLBond = BondL or BondUL or BondLR or BondLD or BondULR or BondULD or BondLRD or BondULRD\nRBond = BondR or BondUR or BondLR or BondRD or BondULR or BondURD or BondLRD or BondULRD\nDBond = BondD or BondUD or BondLD or BondRD or BondULD or BondURD or BondLRD or BondULRD\n1Bond = BondU or BondL or BondR or BondD\n2Bond = BondUL or BondUR or BondUD or BondLR or BondLD or BondRD\n3Bond = BondULR or BondULD or BondURD or BondLRD\nBond = 1Bond or 2Bond or 3Bond or BondULRD\nTemps = Temp1 or Temp2 or Temp3 or Temp4\nAtomStuff = Bond or Orbital\n\n. = Background\n# = Wall\nH = Hydrogen and 1Electron\nO = Oxygen and 2Electron\nN = Nitrogen and 3Electron\nC = Carbon and 4Electron\nE = Helium\n0 = Helium and Player \n1 = Hydrogen and 1Electron and Player\n2 = Oxygen and 2Electron and Player\n3 = Nitrogen and 3Electron and Player\n4 = Carbon and 4Electron and Player\nP = Player\n\n=======\nSOUNDS\n=======\n\nSfx1 64050702 (Bonding sound)\nEndLevel 96545300 (End level)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer\nBond\nWall, Atom\nOrbital\nTemps\n\n======\nRULES \n======\n\n(This is the old way I did movement, and it was super inefficient.)\n([> Player Atom] -> [> Player > Atom]\n\nUp [ Moving Atom UBond | Atom] -> [ Moving Atom UBond | Moving Atom]\n+ Left [ Moving Atom LBond | Atom] -> [ Moving Atom LBond | Moving Atom]\n+ Right [ Moving Atom RBond | Atom] -> [ Moving Atom RBond | Moving Atom]\n+ Down [ Moving Atom DBond | Atom] -> [ Moving Atom DBond | Moving Atom]\n+ [> Atom | Atom] -> [> Atom | > Atom])\n\n[Up Player] -> [Up Player Temp1]\n[Left Player] -> [Left Player Temp2]\n[Right Player] -> [Right Player Temp3]\n[Down Player] -> [Down Player Temp4]\n\nUp [Temps UBond | no Temps] -> [Temps Ubond | Temps]\n+ Left [Temps LBond | no Temps] -> [Temps Lbond | Temps]\n+ Right [Temps RBond | no Temps] -> [Temps Rbond | Temps]\n+ DOwn [Temps DBond | no Temps] -> [Temps Dbond | Temps]\n+ Up [Temp1 | Atom no Temp1] -> [Temp1 | Atom Temp1]\n+ Left [Temp2 | Atom no Temp2] -> [Temp2 | Atom Temp2]\n+ Right [Temp3 | Atom no Temp3] -> [Temp3 | Atom Temp3]\n+ Down [Temp4 | Atom no Temp4] -> [Temp4 | Atom Temp4]\n\n[Temp1 Atom] -> [Up Atom]\n[Temp2 Atom] -> [Left Atom]\n[Temp3 Atom] -> [Right Atom]\n[Temp4 Atom] -> [Down Atom]\n\n[ > Atom | Wall] -> Cancel\n\n[ > Atom AtomStuff] -> [ > Atom > AtomStuff]\n\nLate Right [Orbital no Temps no RBond|Orbital no Temps no LBond] -> [Orbital Temp1|Orbital Temp2 Sfx1] (Bond horizontally.)\n+ Late [Temp1 no Bond] -> [Temp3 BondR]\n+ Late [Temp1 BondU] -> [Temp3 BondUR]\n+ Late [Temp1 BondL] -> [Temp3 BondLR]\n+ Late [Temp1 BondD] -> [Temp3 BondRD]\n+ Late [Temp1 BondUL] -> [Temp3 BondULR]\n+ Late [Temp1 BondUD] -> [Temp3 BondURD]\n+ Late [Temp1 BondLD] -> [Temp3 BondLRD]\n+ Late [Temp1 BondULD] -> [Temp3 BondULRD]\n+ Late [Temp2 no Bond] -> [Temp3 BondL]\n+ Late [Temp2 BondU] -> [Temp3 BondUL]\n+ Late [Temp2 BondR] -> [Temp3 BondLR]\n+ Late [Temp2 BondD] -> [Temp3 BondLD]\n+ Late [Temp2 BondUR] -> [Temp3 BondULR]\n+ Late [Temp2 BondUD] -> [Temp3 BondULD]\n+ Late [Temp2 BondRD] -> [Temp3 BondLRD]\n+ Late [Temp2 BondURD] -> [Temp3 BondULRD]\n+ Late [Temp3 1Electron] -> []\n+ Late [Temp3 2Electron] -> [1Electron]\n+ Late [Temp3 3Electron] -> [2Electron]\n+ Late [Temp3 4Electron] -> [3Electron]\n\nLate Down [Orbital no Temps no DBond|Orbital no Temps no UBond] -> [Orbital Temp1|Orbital Temp2 Sfx1] (Bond vertically.)\n+ Late [Temp1 no Bond] -> [Temp3 BondD]\n+ Late [Temp1 BondU] -> [Temp3 BondUD]\n+ Late [Temp1 BondL] -> [Temp3 BondLD]\n+ Late [Temp1 BondR] -> [Temp3 BondRD]\n+ Late [Temp1 BondUL] -> [Temp3 BondULD]\n+ Late [Temp1 BondUR] -> [Temp3 BondURD]\n+ Late [Temp1 BondLR] -> [Temp3 BondLRD]\n+ Late [Temp1 BondULR] -> [Temp3 BondULRD]\n+ Late [Temp2 no Bond] -> [Temp3 BondU]\n+ Late [Temp2 BondL] -> [Temp3 BondUL]\n+ Late [Temp2 BondR] -> [Temp3 BondUR]\n+ Late [Temp2 BondD] -> [Temp3 BondUD]\n+ Late [Temp2 BondLR] -> [Temp3 BondULR]\n+ Late [Temp2 BondLD] -> [Temp3 BondULD]\n+ Late [Temp2 BondRD] -> [Temp3 BondURD]\n+ Late [Temp2 BondLRD] -> [Temp3 BondULRD]\n+ Late [Temp3 1Electron] -> []\n+ Late [Temp3 2Electron] -> [1Electron]\n+ Late [Temp3 3Electron] -> [2Electron]\n+ Late [Temp3 4Electron] -> [3Electron]\n\n==============\nWINCONDITIONS\n==============\n\nNo Orbital\n\n======= \nLEVELS\n=======\n\nMessage This is a demake of Sokobond by Alan Hazelden and Harry Lee.\n\nMessage Get the full version at www.sokobond.com!\n\n#########\n####....#\n####....#\n#....#H.#\n#...O#..#\n#.1.....#\n#....####\n#########\n\nMessage Water atoms are icosahedral.\n\n######\n#H..O#\n#....#\n#1.###\n######\n\nMessage The blue tint seen in large bodies of water comes from the pigment in the oxygen atoms.\n\n########\n###...##\n#2.H.H.#\n###...##\n########\n\nMessage The Earth's surface and the human body are both 70% water. That CAN'T be a coincidence, right?\n\n#######\n#..O..#\n#..#..#\n#.1#H.#\n#..#..#\n#..O..#\n#######\n\nMessage \"One hydrogen per oxide\" is defined as the speed at which atoms move.\n\n#######\n#.H.3.#\n#.....#\n#.H.H.#\n#######\n\nMessage Ammonia is an inflammatory condition of the lungs. \n\n#######\n#.....#\n#.....#\n#H#H#H#\n#.....#\n#..3..#\n#######\n\nMessage Hang on, I was thinking of \"pneumonia\".\n\n#########\n####4####\n###...###\n##.H.H.##\n#.......#\n##.H.H.##\n###...###\n####.####\n#########\n\nMessage 90% of all the methane in the world is produced in Arizona.\n\n#########\n##H...H##\n#...4...#\n##H...H##\n#########\n\nMessage Methane contains the name \"Ethan\". Do you think it was discovered by a guy named Ethan?\n\n########\n#......#\n#...H..#\n#O.H..3#\n#...H..#\n#......#\n########\n\nMessage Hydroxylamine contains almost every vowel of the alphabet almost exactly once.\n\n#########\n#.......#\n#..H.H..#\n#.2...C.#\n#..H.H..#\n#.......#\n#########\n\nMessage Methanol occurs naturally in peppermint oils.\n\n#########\n#.......#\n#.1...E.#\n###.H.###\n###...###\n###.O.###\n#########\n\nMessage Helium is named after the Greek god Helios, who first discovered its existence.\n\n#########\n#.......#\n#.E.E.E.#\n###H.1###\n###.H.###\n###...###\n###.N.###\n#########\n\nMessage Inhaling helium contracts the ear drum, causing pitches to sound higher. Your voice is perceived normally by everyone else.\n\n#######\n###..##\n##..H.#\n#..N..#\n#.H..H#\n##..0.#\n#######\n\nMessage The first helium balloons were used at the wedding of Queen Victoria and Prince Albert, popularizing the term \"noble gas\". \n\n#######\n#.....#\n#..N..#\n#..0..#\n#H.H.H#\n#.#.#.#\n#.....#\n#######\n\nMessage Helium does not form chemical bonds with other elements, but it's the bonds of friendship that really matter.\n\n########\n#......#\n#...H#N#\n#......#\n##H#H.0#\n##.....#\n####...#\n########\n\nMessage Scientists have been searching for centuries to discover the missing elements between hydrogen and helium on the periodic table.\n\nMessage Thanks for playing! Go get the full version, which has lots of cool stuff that I couldn't write in PuzzleScript: www.sokobond.com\n",[2,2,1,2,2,3],"background wall:0,0,0,0,0,0,0,0,0,\n0,0,0,0,background:1,0,0,0,0,\n0,0,0,1,1,1,0,0,0,\n0,0,1,1,1,background bondr hydrogen:2,1,0,0,\n0,1,1,1,1,1electron background bondlrd carbon player:3,background bondu hydrogen:4,1,0,\n0,0,1,1,1,background bondl hydrogen:5,1,0,0,\n0,0,0,1,1,1electron background hydrogen:6,0,0,0,\n0,0,0,0,1,0,0,0,0,\n0,0,0,0,0,0,0,0,0,\n",14,"1397265775629.195"]	
	],
	[
		"castlemouse",
		["title Memories Of Castlemouse\nauthor Wayne Myers\nhomepage www.conniptions.org\n\ntext_color lightgreen\nagain_interval 0\nyoutube CnjtQbU0Gg8\n\n========\nOBJECTS\n========\n\nBackground \nBlack\n\nWall\nBrown DarkBrown\n00010\n11111\n01000\n11111\n00010\n\nFloor\n#888855 #885588\n00100\n01110\n11011\n01110\n00100\n\n\nHole\nBlack #222222 Brown\n21112\n10000\n10000\n10000\n10000\n\nMarker\nRed\n00.00\n0...0\n.....\n0...0\n00.00\n\nMMarker\nPurple\n00.00\n0...0\n.....\n0...0\n00.00\n\nCMarker\nPurple\n00.00\n0...0\n.....\n0...0\n00.00\n\nDMarker\nPurple\n00.00\n0...0\n.....\n0...0\n00.00\n\nEMarker\nPurple\n00.00\n0...0\n.....\n0...0\n00.00\n\nMouse\nLightGrey Black\n.....\n.1.1.\n.000.\n.010.\n..1..\n\nUpMovingMouse\nLightGrey Black\n.....\n.1.1.\n.000.\n.010.\n..1..\n\nLeftMovingMouse\nLightGrey Black\n.....\n.1.1.\n.000.\n.010.\n..1..\n\nRightMovingMouse\nLightGrey Black\n.....\n.1.1.\n.000.\n.010.\n..1..\n\nDownMovingMouse\nLightGrey Black\n.....\n.1.1.\n.000.\n.010.\n..1..\n\nCat\nWhite Green Pink Grey\n0...0\n00000\n01010\n30203\n.000.\n\nRightMovingCat\nWhite Green Pink Grey\n0...0\n00000\n01010\n30203\n.000.\n\nLeftMovingCat\nWhite Green Pink Grey\n0...0\n00000\n01010\n30203\n.000.\n\nUpMovingCat\nWhite Green Pink Grey\n0...0\n00000\n01010\n30203\n.000.\n\nDownMovingCat\nWhite Green Pink Grey\n0...0\n00000\n01010\n30203\n.000.\n\nDog\nDarkBrown Black\n.0.0.\n01010\n00000\n00100\n01110\n\nUpMovingDog\nDarkBrown Black\n.0.0.\n01010\n00000\n00100\n01110\n\nDownMovingDog\nDarkBrown Black\n.0.0.\n01010\n00000\n00100\n01110\n\nLeftMovingDog\nDarkBrown Black\n.0.0.\n01010\n00000\n00100\n01110\n\nRightMovingDog\nDarkBrown Black\n.0.0.\n01010\n00000\n00100\n01110\n\nElephant\nLightGrey Black #eeeeee Grey\n.000.\n31300\n32330\n30000\n.0..0\n\nUpMovingElephant\nLightGrey Black #eeeeee Grey\n.000.\n31300\n32330\n30000\n.0..0\n\nDownMovingElephant\nLightGrey Black #eeeeee Grey\n.000.\n31300\n32330\n30000\n.0..0\n\nLeftMovingElephant\nLightGrey Black #eeeeee Grey\n.000.\n31300\n32330\n30000\n.0..0\n\nRightMovingElephant\nLightGrey Black #eeeeee Grey\n.000.\n31300\n32330\n30000\n.0..0\n\n=======\nLEGEND\n=======\n\nX = Background\n. = Floor\n# = Wall\nE = Elephant and Floor and Marker\nD = Dog and Floor and Marker\nC = Cat and Floor and Marker\nM = Mouse and Floor and Marker\n3 = Elephant and Floor\n2 = Dog and Floor\n1 = Cat and Floor\n0 = Mouse and Floor\nH = Hole and Floor\n\nPlayer = Marker\n\nObstacle = Wall or Hole\n\nVerticalMovingElephant = UpMovingElephant or DownMovingElephant\nHorizontalMovingElephant = LeftMovingElephant or RightMovingElephant\nMovingElephant = VerticalMovingElephant or HorizontalMovingElephant\n\nVerticalMovingDog = UpMovingDog or DownMovingDog\nHorizontalMovingDog = LeftMovingDog or RightMovingDog\nMovingDog = VerticalMovingDog or HorizontalMovingDog\n\nVerticalMovingCat = UpMovingCat or DownMovingCat\nHorizontalMovingCat = LeftMovingCat or RightMovingCat\nMovingCat = VerticalMovingCat or HorizontalMovingCat\n\nVerticalMovingMouse = UpMovingMouse or DownMovingMouse\nHorizontalMovingMouse = LeftMovingMouse or RightMovingMouse\nMovingMouse = VerticalMovingMouse or HorizontalMovingMouse\n\nMoveMarker = MMarker or CMarker or DMarker or EMarker\n\n=======\nSOUNDS\n=======\n\nSFX0 40739509 (Mouse in hole)\nSFX1 65087301 (Scared mouse)\nSFX2 10901907 (Hit wall)\nSFX3 45415107 (Scared dog)\nSFX4 80636305 (Scared cat)\nSFX5 3673502 (Scared elephant)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nFloor\nHole\nMouse, MovingMouse, Cat, MovingCat, Dog, MovingDog, Elephant, MovingElephant, Wall\nMarker, MoveMarker\n\n======\nRULES \n====== \n\n(Marker rules)\n[ > Marker Mouse ] -> [ MMarker > Mouse ]\n[ > Marker Cat ] -> [ CMarker > Cat ]\n[ > Marker Dog ] -> [ DMarker > Dog ]\n[ > Marker Elephant ] -> [ EMarker > Elephant ]\n\nstartLoop\n\n(Elephant rules)\n[ UP Elephant ] -> [ UP UpMovingElephant ]\n[ DOWN Elephant ] -> [ DOWN DownMovingElephant ]\n[ LEFT Elephant ] -> [ LEFT LeftMovingElephant ]\n[ RIGHT Elephant ] -> [ RIGHT RightMovingElephant ]\n\n[ UpMovingElephant ] -> [ Up UpMovingElephant ] again\n[ LeftMovingElephant ] -> [ Left LeftMovingElephant ] again\n[ RightMovingElephant ] -> [ Right RightMovingElephant ] again\n[ DownMovingElephant ] -> [ Down DownMovingElephant ] again\n\nright [ Elephant | Stationary Dog | No Obstacle ] -> [ Elephant | right Dog | SFX3 ]\nleft [ Elephant | Stationary Dog | No Obstacle ] -> [ Elephant | left Dog | SFX3 ]\nup [ Elephant | Stationary Dog | No Obstacle ] -> [ Elephant | up Dog | SFX3 ]\ndown [ Elephant | Stationary Dog | No Obstacle ] -> [ Elephant | down Dog | SFX3]\nright [ VerticalMovingElephant | Stationary Dog | No Obstacle ] -> [ VerticalMovingElephant | right Dog | SFX3 ]\nleft [ VerticalMovingElephant | Stationary Dog | No Obstacle ] -> [ VerticalMovingElephant | left Dog | SFX3 ]\nup [ HorizontalMovingElephant | Stationary Dog | No Obstacle ] -> [ HorizontalMovingElephant | up Dog | SFX3 ]\ndown [ HorizontalMovingElephant | Stationary Dog | No Obstacle ] -> [ HorizontalMovingElephant | down Dog | SFX3]\n\n[ > MovingElephant | Cat | ] -> [ Elephant | Cat | SFX5 ]\n[ > MovingElephant | Mouse ] -> [ Elephant | Mouse ]\n[ > MovingElephant | Dog | Obstacle | ] -> [ Elephant | Dog | Obstacle | SFX3 ]\n[ > MovingElephant | Dog | No Obstacle ] -> [ Elephant | > Dog | SFX3 ]\n[ > MovingElephant | Obstacle | ] -> [ Elephant | Obstacle | SFX2 ]\n\n(Dog rules)\n[ UP Dog ] -> [ UP UpMovingDog ]\n[ DOWN Dog ] -> [ DOWN DownMovingDog ]\n[ LEFT Dog ] -> [ LEFT LeftMovingDog ]\n[ RIGHT Dog ] -> [ RIGHT RightMovingDog ]\n\n[ UpMovingDog ] -> [ Up UpMovingDog ] again\n[ LeftMovingDog ] -> [ Left LeftMovingDog ] again\n[ RightMovingDog ] -> [ Right RightMovingDog ] again\n[ DownMovingDog ] -> [ Down DownMovingDog ] again\n\nright [ Dog | Stationary Cat | No Obstacle ] -> [ Dog | right Cat | SFX4 ]\nleft [ Dog | Stationary Cat | No Obstacle ] -> [ Dog | left Cat | SFX4 ]\nup [ Dog | Stationary Cat | No Obstacle ] -> [ Dog | up Cat | SFX4 ]\ndown [ Dog | Stationary Cat | No Obstacle ] -> [ Dog | down Cat | SFX4]\nright [ VerticalMovingDog | Stationary Cat | No Obstacle ] -> [ VerticalMovingDog | right Cat | SFX4 ]\nleft [ VerticalMovingDog | Stationary Cat | No Obstacle ] -> [ VerticalMovingDog | left Cat | SFX4 ]\nup [ HorizontalMovingDog | Stationary Cat | No Obstacle ] -> [ HorizontalMovingDog | up Cat | SFX4 ]\ndown [ HorizontalMovingDog | Stationary Cat | No Obstacle ] -> [ HorizontalMovingDog | down Cat | SFX4]\n\n[ > MovingDog | Mouse | ] -> [ Dog | Mouse | SFX3 ]\n[ > MovingDog | Elephant ] -> [ Dog | Elephant ]\n[ > MovingDog | Cat | Obstacle | ] -> [ Dog | Cat | Obstacle | SFX4 ]\n[ > MovingDog | Cat | No Obstacle ] -> [ Dog | > Cat | SFX4 ]\n[ > MovingDog | Obstacle | ] -> [ Dog | Obstacle | SFX2 ]\n\n(Cat rules)\n[ UP Cat ] -> [ UP UpMovingCat ]\n[ DOWN Cat ] -> [ DOWN DownMovingCat ]\n[ LEFT Cat ] -> [ LEFT LeftMovingCat ]\n[ RIGHT Cat ] -> [ RIGHT RightMovingCat ]\n\n[ UpMovingCat ] -> [ Up UpMovingCat ] again\n[ LeftMovingCat ] -> [ Left LeftMovingCat ] again\n[ RightMovingCat ] -> [ Right RightMovingCat ] again\n[ DownMovingCat ] -> [ Down DownMovingCat ] again\n\nright [ Cat | Stationary Mouse | No Wall ] -> [ Cat | right Mouse | SFX1 ]\nleft [ Cat | Stationary Mouse | No Wall ] -> [ Cat | left Mouse | SFX1 ]\nup [ Cat | Stationary Mouse | No Wall ] -> [ Cat | up Mouse | SFX1 ]\ndown [ Cat | Stationary Mouse | No Wall ] -> [ Cat | down Mouse | SFX1]\nright [ VerticalMovingCat | Stationary Mouse | No Wall ] -> [ VerticalMovingCat | right Mouse | SFX1 ]\nleft [ VerticalMovingCat | Stationary Mouse | No Wall ] -> [ VerticalMovingCat | left Mouse | SFX1 ]\nup [ HorizontalMovingCat | Stationary Mouse | No Wall ] -> [ HorizontalMovingCat | up Mouse | SFX1 ]\ndown [ HorizontalMovingCat | Stationary Mouse | No Wall ] -> [ HorizontalMovingCat | down Mouse | SFX1]\n\n[ > MovingCat | Elephant | ] -> [ Cat | Elephant | SFX4 ]\n[ > MovingCat | Dog ] -> [ Cat | Dog ]\n[ > MovingCat | Mouse | Wall | ] -> [ Cat | Mouse | Wall | SFX1 ]\n[ > MovingCat | Mouse | No Wall ] -> [ Cat | > Mouse | SFX1 ]\n[ > MovingCat | Obstacle | ] -> [ Cat | Obstacle | SFX2 ]\n\n(Mouse rules)\n[ UP Mouse ] -> [ UP UpMovingMouse ]\n[ DOWN Mouse ] -> [ DOWN DownMovingMouse ]\n[ LEFT Mouse ] -> [ LEFT LeftMovingMouse ]\n[ RIGHT Mouse ] -> [ RIGHT RightMovingMouse ]\n\n[ UpMovingMouse ] -> [ Up UpMovingMouse ] again\n[ LeftMovingMouse ] -> [ Left LeftMovingMouse ] again\n[ RightMovingMouse ] -> [ Right RightMovingMouse ] again\n[ DownMovingMouse ] -> [ Down DownMovingMouse ] again\n\nright [ Mouse | Stationary Elephant | No Obstacle ] -> [ Mouse | right Elephant | SFX5 ]\nleft [ Mouse | Stationary Elephant | No Obstacle ] -> [ Mouse | left Elephant | SFX5 ]\nup [ Mouse | Stationary Elephant | No Obstacle ] -> [ Mouse | up Elephant | SFX5 ]\ndown [ Mouse | Stationary Elephant | No Obstacle ] -> [ Mouse | down Elephant | SFX5]\nright [ VerticalMovingMouse | Stationary Elephant | No Obstacle ] -> [ VerticalMovingMouse | right Elephant | SFX5 ]\nleft [ VerticalMovingMouse | Stationary Elephant | No Obstacle ] -> [ VerticalMovingMouse | left Elephant | SFX5 ]\nup [ HorizontalMovingMouse | Stationary Elephant | No Obstacle ] -> [ HorizontalMovingMouse | up Elephant | SFX5 ]\ndown [ HorizontalMovingMouse | Stationary Elephant | No Obstacle ] -> [ HorizontalMovingMouse | down Elephant | SFX5]\n\n[ > MovingMouse | Dog | ] -> [ Mouse | Dog | SFX1 ]\n[ > MovingMouse | Cat ] -> [ Mouse | Cat ]\n[ > MovingMouse | Elephant | Wall | ] -> [ Mouse | Elephant | Wall | SFX5 ]\n[ > MovingMouse | Elephant | No Obstacle ] -> [ Mouse | > Elephant | SFX5 ]\n[ > MovingMouse | Wall | ] -> [ Mouse | Wall | SFX2 ]\n[ > MovingMouse | Hole | ] -> [ No MovingMouse | Hole | SFX0 ]\n\nendloop\n\n\n(Late marker rules)\n\nlate [ Mouse ] [ MMarker ] -> [ Mouse Marker ] []\nlate [ Cat ] [ CMarker ] -> [ Cat Marker ] []\nlate [ Dog ] [ DMarker ] -> [ Dog Marker ] []\nlate [ Elephant ] [ EMarker ] -> [ Elephant Marker ] []\n\n==============\nWINCONDITIONS\n==============\n\nNo MovingMouse\nNo Mouse\n\n======= \nLEVELS\n=======\n\nMessage In 2001 I was very lost.\n\nXXXXXXXXXXXXXXXXXXXXX\nX###################X\nX#...............###X\nX#..#........#...###X\nX#...............###X\nX###...M..#........#X\nX##H..........#....#X\nX###..#.....#......#X\nX#.............#...#X\nX#..#....#.........#X\nX#..............####X\nX###################X\nXXXXXXXXXXXXXXXXXXXXX\n\nMessage I was just trying to hide from the world.\n\nXXXXXXXXXXXXXXXXXXXXXXXXXX\nX########################X\nX#...##....###.###....###X\nX#...##....#H#........###X\nX#.M.............#......#X\nX#....##..##.....##.....#X\nX#.....#......##........#X\nX#..##.......###........#X\nX#..##....#.......###...#X\nX#.......##........##...#X\nX#...##..##........##...#X\nX#...##.................#X\nX###.........###.....####X\nX###.........###....#####X\nX########################X\nXXXXXXXXXXXXXXXXXXXXXXXXXX\n\nMessage I spent a lot of time playing a game called Castlemouse.\n\nXXXXXXXXXXXXXXXXXXXXX\nX###################X\nX#.................#X\nX#.........#.......#X\nX###...............#X\nX##H.....0.....#...#X\nX###...............#X\nX#.................#X\nX#....#..........###X\nX#.........0.....H##X\nX#C..............###X\nX###################X\nXXXXXXXXXXXXXXXXXXXXX\n\nMessage Everything seemed to be slipping away from me.\n\nXXXXXXXXXXXXXXXXXXXXXXXXXX\nX########################X\nX#.......##.###.........#X\nX#......##..#H#.........#X\nX#.................#....#X\nX#..........0...0#......#X\nX###....#...............#X\nX##H..................###X\nX###......0...........H##X\nX#........#.....#.....###X\nX#................#.....#X\nX#......0...............#X\nX#.C.......#H#..........#X\nX#.........###..........#X\nX########################X\nXXXXXXXXXXXXXXXXXXXXXXXXXX\n\nMessage The world seemed full of fear.\n\nXXXXXXXXXXXXXXXXXXX\nX#################X\nX#...............#X\nX#.......1#......#X\nX###.............#X\nX##H....0........#X\nX###.............#X\nX#.............###X\nX#.D......0....H##X\nX#.#...........###X\nX#...#...........#X\nX#################X\nXXXXXXXXXXXXXXXXXXX\n\nMessage Everything was falling apart for me at once.\n\nXXXXXXXXXXXXXXXXXXXXXXXXXX\nX########################X\nX###..................###X\nX##H.......0.0........H##X\nX###..................###X\nX#......................#X\nX#..#...................#X\nX#.1.........#..........#X\nX#.........0............#X\nX##.........1...........#X\nX#.......D..............#X\nX###..................###X\nX##H.........0........H##X\nX###.......#..........###X\nX########################X\nXXXXXXXXXXXXXXXXXXXXXXXXXX\n\nMessage I don't remember that time very well.\n\nXXXXXXXXXXXXXXXXXXX\nX#################X\nX#...............#X\nX#.......1#......#X\nX###.............#X\nX##H....0........#X\nX###.............#X\nX#.............###X\nX#.....2..0....H##X\nX#...#.......E.###X\nX#...#...........#X\nX#################X\nXXXXXXXXXXXXXXXXXXX\n\nMessage I don't even remember exactly how Castlemouse went.\n\nXXXXXXXXXXXXXXXXXXXXXXXXXX\nX########################X\nX#....................#.#X\nX#....1..........#......#X\nX#...........0...#...2..#X\nX#......................#X\nX#..........#H#.........#X\nX#..........###.........#X\nX#..........###.........#X\nX#..........#H#.........#X\nX#...........0..........#X\nX#...2...........1......#X\nX#.E...................##X\nX#......................#X\nX########################X\nXXXXXXXXXXXXXXXXXXXXXXXXXX\n\nMessage Many things were set in motion at that time.\n\nXXXXXXXXXXXXXXXXXXX\nX#################X\nX#......0.......H#X\nX##..........3..##X\nX#H...0..........#X\nX##..............#X\nX####..1.........#X\nX#............#..#X\nX#...#..###......#X\nX#..D#..#H#......#X\nX#.......0.......#X\nX#..........1....#X\nX#################X\nXXXXXXXXXXXXXXXXXXX\n\nMessage Many unexpected chains of events, not all bad.\n\nXXXXXXXXXXXXXXXXXXXXXXXXXX\nX########################X\nX#.....#..............###X\nX#.....0..............H##X\nX#.......3............###X\nX#......................#X\nX###....................#X\nX##H.................0..#X\nX###....................#X\nX#......................#X\nX#.....................C#X\nX#...2.................##X\nX#....#...2............##X\nX#.....................##X\nX########################X\nXXXXXXXXXXXXXXXXXXXXXXXXXX\n\nMessage I'm doing a lot better now.\n\nMessage Also, Castlemouse is a much better game than this - you should track it down.\n\nMessage Thank you for playing.\n\nMessage Music: Broken - Fit and the Conniptions (music.conniptions.org)\n",[3,1,"restart","restart",0,3,2,1,0,0,1,2,1,2],"background:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background wall:1,1,1,1,1,1,1,1,1,\n1,1,1,1,1,0,0,1,1,1,1,background floor:2,2,background dog floor marker:3,background floor mouse:4,1,2,1,1,1,1,0,0,1,1,background floor hole:5,\n1,2,2,2,2,2,2,1,5,1,1,0,0,1,2,2,2,2,1,2,2,2,2,2,2,2,\n1,0,0,1,2,2,2,2,2,2,2,2,2,2,2,2,1,0,0,1,2,2,2,2,2,2,\n2,2,2,2,2,2,1,0,0,1,2,2,2,2,2,2,2,2,2,2,2,2,1,0,0,1,\n2,2,2,2,2,2,2,2,2,2,2,2,1,0,0,1,2,2,2,2,2,2,2,2,2,2,\n2,2,1,0,0,1,2,2,2,2,2,2,2,2,2,2,2,2,1,0,0,1,2,2,2,2,\n2,2,2,2,2,2,2,1,1,0,0,1,background cat floor:6,2,2,2,2,6,2,2,2,2,2,2,1,0,\n0,1,2,2,2,2,2,1,2,2,2,2,4,2,1,0,0,1,2,2,2,2,2,2,2,2,\n2,2,2,2,1,0,0,1,2,2,2,2,2,2,2,2,2,2,2,2,1,0,0,1,2,2,\n2,2,2,2,2,2,2,2,2,2,1,0,0,1,2,2,2,2,2,2,2,2,2,2,2,2,\n1,0,0,1,2,2,2,2,2,2,2,2,2,2,2,2,1,0,0,1,2,2,2,2,2,2,\n2,2,2,2,2,2,1,0,0,1,2,2,2,2,2,2,2,2,2,2,2,2,1,0,0,1,\n2,2,2,2,2,2,2,2,2,2,2,2,1,0,0,1,1,5,1,2,2,2,2,2,2,1,\n5,1,1,0,0,1,1,1,1,2,2,2,2,2,2,1,1,1,1,0,0,1,1,1,1,1,\n1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n",11,"1397265815786.2612"]
	],
	[
		"atlas shrank",
		["title Atlas Shrank\nauthor James Noeckel\nrun_rules_on_level_start\nflickscreen 18x11\n\n========\nOBJECTS\n========\n\nBackground \n#0e193f #202a4c #20324a #1f3649 #00003d\n00004\n13210\n04000\n10111\n00032\n\nExit \n#d0691d #9a521d #7b441c #ad5a1d #8e4c1c yellow\n.222.\n23140\n23140\n25140\n23140 \n\nDoorO\n#cf732f\n0...0\n0...0\n0...0\n0...0\n0...0\n\nSwitch\n#ec5656 #ec3232 #b31313\n01.01\n1...2\n.....\n0...2\n12.22\n\nDoor\n#d0691d #9a521d #7b441c #ad5a1d #8e4c1c\n03412\n04132\n03112\n01142\n04112\n\nShadowDoor\nblack\n\nShadowDoorO\nblack\n\nWallUD\n#697490 #485b76 #8083ba #646f8a #6d7b96\n23041\n23041\n23041\n23041\n23041\n\nWallRL\n#697490 #485b76 #8083ba #646f8a #6d7b96\n22222\n33333\n00000\n44444\n11111\n\nWallR\n#697490 #485b76 #8083ba #646f8a #6d7b96\n40401\n03401\n40031\n03001\n00001\n\nWallL\n#697490 #485b76 #8083ba #646f8a #6d7b96\n20404\n20430\n23004\n20030\n20000\n\nWallU\n#697490 #485b76 #8083ba #646f8a #6d7b96\n22222\n00000\n40300\n03044\n40430\n\nWallD\n#697490 #485b76 #8083ba #646f8a #6d7b96\n04030\n03400\n04004\n30304\n11111\n\nWallM\n#697490 #485b76 #8083ba #646f8a #6d7b96\n03040\n34430\n43340\n44303\n30030\n\n\nWallsolo\n#697490 #485b76 #8083ba #a7aae3 #2d425e #646f8a #6d7b96\n32220\n20651\n25561\n26601\n01114\n\nPlayerS\n#ffb173 #ff6464 #d7d7d7 #d74629\n.000.\n.101.\n02220\n03230\n.0.0.\n\nPlayerL\n#ffb173 #ff6464 #d7d7d7 #d74629\n.000.\n.100.\n.223.\n.233.\n.0.0.\n\nPlayerR \n#ffb173 #ff6464 #d7d7d7 #d74629\n.000.\n.001.\n.322.\n.332.\n.0.0.\n\nPlayerLH\n#ffb173 #ff6464 #d7d7d7 #d74629\n.0.0.\n.100.\n.220.\n.233.\n.0.0.\n\nPlayerRH\n#ffb173 #ff6464 #d7d7d7 #d74629\n.0.0.\n.001.\n.022.\n.332.\n.0.0.\n\nCrate \n#9f7666 #c8917c #945a50 #8b4c42\n.000.\n00113\n01123\n01223\n.333.\n\nHeldcrate\n#9f7666 #c8917c #945a50 #8b4c42\n.000.\n00113\n01123\n01223\n.333.\n\nShadowcrate\nblack\n\nH_pickup\nred\n.....\n.....\n..0..\n.....\n.....\n\nH_drop\nred\n.....\n.....\n..0..\n.....\n.....\n\nH_grav\ngray\n.....\n.....\n..0..\n.....\n.....\n\nH_step\nyellow\n.....\n.....\n..0..\n.....\n.....\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wallsolo\nP = PlayerS\n* = Crate\nO = Exit\nX = Door\nT = Switch\n@ = Switch and Crate\nWall = WallUD or WallRL or WallR or WallL or WallM or Wallsolo or WallU or WallD\nPlayer = PlayerL or PlayerR or PlayerS or PlayerRH or PlayerLH\nSolid = Player or Crate or Wall or Heldcrate or Door or Shadowcrate or Shadowdoor\nMassive = Crate\nHelpers = H_pickup or H_drop or H_grav or H_step\nWeight = Player or Crate\n\n=======\nSOUNDS\n=======\nSFX1 87921103\nSFX2 82865707\nSFX3 70226500\nSFX4 68263307\n\nSFX5 60968508\nSFX6 358900\n================\nCOLLISIONLAYERS\n================\n\nBackground\nExit\nPlayer, Solid\nHelpers\nDoorO, ShadowdoorO, Switch\n\n======\nRULES \n====== \n\n(Wallify)\nVertical [ Wall | Wallsolo | Wall ] -> [ Wall | WallUD | Wall ]\nHorizontal [ Wall | Wallsolo | Wall ] -> [ Wall | WallRL | Wall ]\nHorizontal [ Wall | WallUD | Wall ] -> [ Wall | WallM | Wall ]\nLeft [ WallUD | Wall ] -> [ WallR | Wall ]\nRight [ WallUD | Wall ] -> [ WallL | Wall ]\nUp [ WallRL | Wall ] -> [ WallD | Wall ]\nDown [ WallRL | Wall ] -> [ WallU | Wall ]\n\n(steps)\nup [ Player | no Solid ] -> [ Player | H_step ]\nup [ Player | Heldcrate no H_step ] -> [ Player | Heldcrate H_step ]\n[ Moving Player ] [ H_step ] -> [ Moving Player ] [ Moving H_step ]\n\n(gravity)\ndown [ Player no H_grav | no Solid ] -> [ Player H_grav | ]\ndown [ Player ] [ H_grav ] -> [ > Player ] [ H_grav ] again\nDown [ Massive ] -> [ down Massive ] again\n\n[ up Player ] -> cancel\n\n(movement/pushing)\nRight [ > Player ] -> [ > PlayerR ]\nLeft [ > Player ] -> [ > PlayerL ]\nHorizontal [ > Player | Crate | no Solid ] -> [ > Player | > Crate | ] SFX2\n\n(picking up and holding crates)\nHorizontal [ Crate | Action PlayerS | Crate ] -> message I am paralyzed with indecision!\nRight [ Action PlayerR | Crate ] [Player no H_pickup ] -> [ Player | Shadowcrate ] [ Player H_pickup ] SFX1\nLeft [ Action PlayerL | Crate ] [Player no H_pickup ] -> [ Player | Shadowcrate ] [ Player H_pickup ] SFX1\n([ Moving Player ] [ Heldcrate ] -> [ Moving Player ] [ Moving Heldcrate ])\n([ > Player | no Solid ] [ Heldcrate ] -> [ > Player | ] [ > Heldcrate ])\n(late Up [ Player | no Solid ] [ Heldcrate ] -> [ Player | Heldcrate ] [ ])\n\n(putting down)\n(Left [ Action Heldcrate | no Solid ] [ PlayerLH ] -> [ | Crate ] [ PlayerL ]\nRight [ Action Heldcrate | no Solid ] [ PlayerRH ] -> [ | Crate ] [ PlayerR ])\nRight [ Heldcrate | no Solid ] [ Action PlayerRH ] -> [ Heldcrate | H_drop ] [ PlayerR ]\nLeft [ Heldcrate | no Solid ] [ Action PlayerLH ] -> [ Heldcrate | H_drop ] [ PlayerL ]\n\n\n(steps late)\nlate [ H_step ] [H_grav ] -> [ ] [ H_grav ]\nlate Down [ H_step | Player ] -> [ | Player ]\nlate up [ H_step no Solid | no Solid ] [ Heldcrate ] -> [ H_step | Heldcrate ] [ ]\nlate [ H_step no Solid ] [ Player ] -> [ Player ] [ ] SFX4\n\n(crate rules)\nlate [ Heldcrate ] [ H_drop ] -> [ ] [ Crate ]\nlate up [ Player | no Solid ] [ Heldcrate ] -> [ Player | Heldcrate ] [ ]\n\nlate Up [ H_pickup | no Solid ] [ Shadowcrate ] -> [ | Heldcrate ] [ ]\nlate [ Shadowcrate ] -> [ Crate ]\nlate Down [ Heldcrate | no Player ] -> [ Crate | ]\n\nlate up [ PlayerR ] [ Heldcrate ] -> [ PlayerRH ] [ Heldcrate ]\nlate up [ PlayerL ] [ Heldcrate ] -> [ PlayerLH ] [ Heldcrate ]\n\n\n(cleanup)\nlate [ H_pickup ] -> [ ]\nlate [ H_grav ] -> [ ]\nlate [ H_step ] -> [ ]\n\n\nlate [ Player Exit ] -> SFX3\n\n(doors)\nlate [ Door ] -> [ Shadowdoor ]\nlate [ DoorO ] -> [ ShadowDoorO ]\nlate [ ShadowdoorO no Solid ] [ ShadowdoorO Solid ] -> [ DoorO ] [ ShadowdoorO Solid ]\nlate [ Switch no Weight ] [ ShadowDoorO no Solid ] -> [ Switch ] [ Door ] SFX5\nlate [ Switch no Weight ] [ Shadowdoor ] -> [ Switch ] [ Door ]\nlate [ Shadowdoor ] -> [ DoorO ] SFX6\nlate [ ShadowdoorO ] -> [ DoorO ]\n\n==============\nWINCONDITIONS\n==============\nall Exit on Player\n\n======= \nLEVELS\n=======\nmessage Demoted again\n###############\n#.......O.....#\n#.......#.....#\n#......##.....#\n#.....###.....#\n#.P..####**...#\n###############\n\nmessage First gas planets, and now this\nmessage [Pick up with x]\n###############\n#.............#\n#...........O.#\n#..........####\n#..........#..#\n#P..**...*.#..#\n###############\n\n##################\n############.....#\n#########*##.....#\n#########*##.....#\n####.....*....o..#\n####.....*.#######\n####.....*.#######\n####.....*########\n#####....*########\n######..p*########\n##################\n\n###############\n#..*###....#..#\n#..*..........#\n#..####.......#\n#.**......**P.#\n#.#############\n#......*.#....#\n#...*..#.X..O.#\n#...##.#T######\n###############\n\nmessage what is even my job\n*#####*###########\n#*##.##.#...#....#\n##.#..#..........#\n#.....#*........O#\n#......###.....###\n#.........#....###\n#......*..*....###\n#....#############\n#...#............#\n#**..............#\n#####...##########\n****.#..##########\n****..#..#########\n****...#....######\n****....#.......*#\n*###....##......*#\n*.....#####...####\n#......###....####\n*.......x..#######\n##.#....x.########\n.p.*.*ttx#########\n##################\n\nmessage I could lift these all day\n######x###########\n##*#..x.......#..#\n###...x*......x.o#\n#.....##.....*x.##\n#....#xp..@..#x..#\n#...##x###########\n#*..*.x.....######\n######x.....#....#\n######x......*...#\n######.#*....##..#\n######.###########\n\n##################\n#............*...#\n#..@......*.t@p..#\n#xxx#xxxxxxxxxxx##\n#.#.#...........##\n#.#.#.#.#.#.#.#.##\n#.#.#.#.#.#.#.#.##\n#...#########.####\n##....*x.....*...#\n###...##....###.o#\n##################\n\n##################\n##...........x...#\n##...........x.*.#\n##.........t####.#\n##..........#....#\n##..........#....#\n##...***#####.##x#\n##...***##.o..###*\n##...***####.....#\n##.p.***##.......#\n##################\n\nmessage I miss the reassuring weight of a globe across my shoulders\n#.................\n#..#.#.#.#.......#\n#..#.#.#.#.......#\n#..#.#.t*........#\n#..#.#*###.......#\n#...*.*...*......#\n*..#####.###.....#\n#.*.........#...*#\n####.......*....##\n##t*.p.....#.##.##\n##t###t#x#########\n##t#####x#########\n##t##.......######\n####.........#####\n###...........####\n##......o......###\n#......###......##\n.................#\n..................\n\n.....................##*#*****....*...................\n..o....##.#.######....##******...**.........#.........\n..#.###############....####*********........#........*\n################.#.##..x############........#........#\n#####............#..#..x....................#.........\n###.#............#..#.*x....................#.........\n#.*.#................#####..................#.........\n#***#............#*....*..p**.........t.*..#.........*\n#####...........######################.#####.........#\n#..............#########################...##.........\n#.............#########.#.#.#...............#**.......\n#............#########..#.#.#...............####......\n#............########..#*#*#*#..............#.########\n#............########..#*#*#*#..............#.#....###\n#*...........#####......#.#.#...............#.#......#\n#*.......#######........#...................#.#......#\n#*......######..............................#.#......#\n#*.....#..##............*...................#.#......#\n#**...**......*.......#.#.#.#..........t....#.#.....##\n#####*#######**###########################*######*####\n\n*#***#*.#...##....#...........########...............*#................#\n*#***#*.....#.....*...........#.#.#.#................*#................#\n*#***##.....#.....**...#.#....*.*.*..................##................#\n*#***#......#.....##...#.#....########...............##................#\n*#***......*#.....##*..#.#....##***###...............#*................#\n*#**#......#......*#####.#########**##...............##................#\n*#**.......#......***##...###....##**####............##..........*.....#\n*#**.......#......***......#......##*##*#............xx..........##....#\n##*###############****............##****#............xx............#...#\n##*################****.....#..o..##*#**#p....@.@.@..xx....@.@.@...**..#\n####################################*##*################################\n\n.................############*#.#.##\n.................#..*........*.....#\n.................#.t###....*########\n#................#.....*...#o......#\n#.....................##########...#\n#....................#.....**.....*#\n#................##.#....###x#######\n#...............###.#*.......*.....#\n#.........*..###############x###...#\n##....p..**................*......*#\n############################x#######\n....................................\n\nmessage Congratulations!\nmessage You rearranged the rubble!\nmessage the end\n",[3,3,3,3,4,1,1,4,3,1,1,3,3,3,3,0,3,1,1,1,1,1,1,3],"background wallsolo:0,background walll:1,1,background wallud:2,2,2,2,1,1,1,0,background wallu:3,background wallr:4,background walld:5,background:6,6,6,background crate:7,\n3,background wallm:8,8,5,background wallrl:9,7,0,6,6,6,6,3,8,8,5,3,0,6,\n6,6,6,6,3,8,8,5,9,6,6,6,6,0,7,3,8,8,\n5,0,6,6,6,0,0,6,0,4,4,0,background door:10,10,10,0,10,10,\n10,10,10,6,6,0,6,7,0,7,0,6,6,6,0,0,9,6,\n6,6,6,9,6,6,6,7,9,9,6,6,6,background playerr:11,9,6,6,6,\n6,9,9,6,6,6,background switch:12,9,6,6,6,6,9,9,6,6,6,6,\n9,6,6,6,6,9,9,6,6,6,6,3,1,0,6,6,9,9,\n6,6,7,0,8,5,6,7,0,5,3,0,10,10,10,3,5,6,\n6,0,5,9,6,6,6,6,3,5,6,6,6,9,9,6,background exit:13,0,\n6,3,5,6,6,6,9,0,2,2,4,2,4,4,2,2,2,0,\n",10,"1397265862607.908"]
	],
	[
		"ponies",
		["title Ponies Jumping Synchronously\nauthor vytah\n\nbackground_color #990044\ntext_color white\n\n========\nOBJECTS\n========\n\n\nBackground (special, automatically placed in its own layer)\nlightblue\n\nJumpVariableA\nlightblue\n0...0\n.000.\n.0.0.\n.000.\n0...0\n\nJumpVariableA1\nlightblue\n0...0\n..0..\n..0..\n..0..\n0...0\n\nJumpVariableA2\nlightblue\n0...0\n.0.0.\n.0.0.\n.0.0.\n0...0\n\nJumpVariableT\nlightblue\n..0..\n.000.\n.0.0.\n.000.\n.....\n\nJumpVariableT1\nlightblue\n..0..\n..0..\n..0..\n..0..\n.....\n\nJumpVariableT2\nlightblue\n..0..\n.0.0.\n.0.0.\n.0.0.\n.....\n\nJumpVariableB\nlightblue\n.....\n.000.\n.0.0.\n.000.\n..0..\n\nJumpVariableB1\nlightblue\n.....\n..0..\n..0..\n..0..\n..0..\n\nJumpVariableB2\nlightblue\n.....\n.0.0.\n.0.0.\n.0.0.\n..0..\n\nDirt\nbrown darkbrown\n00000\n01000\n00000\n00010\n00000\n\nTunnel\nbrown darkbrown\n00000\n01000\n.....\n.....\n.....\n\n\nGrass\nbrown lightgreen green darkBrown\n11211\n21020\n00000\n00030\n00000\n\nExit\npink red\n.1.1.\n10101\n10001\n.101.\n..1..\n\nWoodenWall\nBrown orange\n.111.\n.001.\n.111.\n.100.\n.111.\n\nTeleport\nBrown darkBrown pink white\n23332\n02220\n00000\n00010\n00000\n\nFire\nred orange yellow\n..0..\n.00..\n0110.\n01210\n.020.\n\nTwiLeft\npurple\n.0...\n00...\n.0000\n.0.0.\n.0.0.\n\nTwiRight\npurple\n...0.\n...00\n0000.\n.0.0.\n.0.0.\n\nTeleportingTwilight\npurple\n...0.\n...00\n0000.\n.0.0.\n.0.0.\n\nRdLeft\n#00dddd\n.0...\n00...\n.0000\n.0.0.\n.0.0.\n\nRdRight\n#00dddd\n...0.\n...00\n0000.\n.0.0.\n.0.0.\n\nAbLeft\nyellow red\n..1..\n.01..\n00...\n.0000\n.0.0.\n\nAbRight\nyellow red\n..1..\n..10.\n...00\n0000.\n.0.0.\n\nAjLeft\norange\n.0...\n00...\n.0000\n.0.0.\n.0.0.\n\nAjRight\norange\n...0.\n...00\n0000.\n.0.0.\n.0.0.\n\nDeadPony\nlightGray darkGray\n.111.\n10001\n10101\n10001\n10101\n\nBoulder\nlightGray darkGray\n.....\n.111.\n10001\n10001\n.111.\n\n=======\nLEGEND\n=======\n\nApplejack=AjLeft or AjRight\nRainbowDash=RdLeft or RdRight\nTwilight=TwiLeft or TwiRight\nAppleBloom=AbLeft or AbRight\n(NotPegasus=Twilight or Applejack or AppleBloom or TeleportingTwilight)\nPlayer=Twilight or Applejack or AppleBloom or RainbowDash\nObstacle=Grass or Dirt or DeadPony or WoodenWall or Teleport or Boulder\nJumpObstacle=Obstacle or Player or Tunnel\nJumpObstacleForFillies=Obstacle or Player\nJumpVariablePositiveA=JumpVariableA1 or JumpVariableA2\nJumpVariablePositiveT=JumpVariableT1 or JumpVariableT2\nJumpVariablePositiveB=JumpVariableB1 or JumpVariableB2\n\n. = Background\n# = Dirt\n~ = Grass\n| = WoodenWall\nT = TwiRight\nA = AjRight\nD = RdRight\nB = AbRight\nJ = JumpVariableA\nH = JumpVariableT\nL = JumpVariableB\nE = Exit\n^ = Teleport\nF = Fire\nO = Boulder\n- = Tunnel\n\n=========\nSOUNDS\n=========\n\nsfx0 47251907 (aj push)\nsfx1 13930501 (twi zap)\nsfx2 99083104 (death)\nsfx3 12667901 (twi teleport)\nsfx4 60310105 (jump)\nsfx5 58764102 (rd smash)\nsfx7 74120302 (aj buck)\nendlevel 64815700\n\n\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nJumpVariableA, JumpVariablePositiveA, JumpVariableT,JumpVariablePositiveT, JumpVariableB, JumpVariablePositiveB\nExit, Fire, Tunnel\nPlayer, Obstacle, TeleportingTwilight\n\n======\nRULES \n====== \n\n[> Player |Stationary Player] -> cancel\n[> Player |< Player] -> cancel\n\n[> Applejack| Tunnel] -> [Applejack|Tunnel]\n[> RainbowDash| Tunnel] -> [RainbowDash|Tunnel]\n[> Twilight| Tunnel] -> [Twilight|Tunnel]\nVertical [> AppleBloom|Tunnel] -> [AppleBloom|Tunnel]\n\n[Left TwiRight] -> [Left TwiLeft]\n[Right TwiLeft] -> [Right TwiRight]\n[Left RdRight] -> [Left RdLeft]\n[Right RdLeft] -> [Right RdRight]\n[Left AjRight] -> [Left AjLeft]\n[Right AjLeft] -> [Right AjRight]\n[Left AbRight] -> [Left AbLeft]\n[Right AbLeft] -> [Right AbRight]\n\nRight[Action Applejack|WoodenWall] -> [AjLeft|]sfx7\nLeft[Action Applejack|WoodenWall] -> [AjRight|]sfx7\n\nDown[Action Twilight|Teleport][no Player|Teleport]-> [|Teleport][TeleportingTwilight|Teleport] sfx3\nlate[TeleportingTwilight]->[TwiRight]\n\n\nUP [ Up Applejack | No Obstacle No Player no tunnel] [JumpVariableA] -> [ Up Applejack | ] [JumpVariableA2] sfx4\nDOWN [ Up Applejack | no obstacle No Player no tunnel ][JumpVariablePositiveA] -> [ Applejack | ][JumpVariablePositiveA]\nDOWN [ Up Applejack | no obstacle No Player no tunnel][JumpVariableA2] -> [ Applejack | ][JumpVariableA2]\nHORIZONTAL [ > Applejack | NO obstacle No Player no tunnel][JumpVariableA1] -> [ | Applejack ][JumpVariableA]\nHORIZONTAL [ > Applejack | NO obstacle No Player no tunnel][JumpVariableA2] -> [ | Applejack ][JumpVariableA1]\nHORIZONTAL [ > Applejack | JumpObstacle][JumpVariableA1] -> [ Applejack|JumpObstacle ][JumpVariableA]\nHORIZONTAL [ > Applejack | JumpObstacle][JumpVariableA2] -> [ Applejack|JumpObstacle ][JumpVariableA1]\nLATE DOWN [ Applejack | NO obstacle No Player no tunnel][JumpVariableA] -> [ | Applejack ][JumpVariableA]\nLATE DOWN [ Applejack | Obstacle ][JumpVariablePositiveA] -> [ Applejack | Obstacle ][JumpVariableA]\n\n\nUP [ Up Twilight | No Obstacle No Player no tunnel] [JumpVariableT] -> [ Up Twilight | ] [JumpVariableT2] sfx4\nDOWN [ Up Twilight | no obstacle No Player no tunnel ][JumpVariablePositiveT] -> [ Twilight | ][JumpVariablePositiveT]\nDOWN [ Up Twilight | no obstacle No Player no tunnel][JumpVariableT2] -> [ Twilight | ][JumpVariableT2]\nHORIZONTAL [ > Twilight | NO obstacle No Player no tunnel][JumpVariableT1] -> [ | Twilight ][JumpVariableT]\nHORIZONTAL [ > Twilight | NO obstacle No Player no tunnel][JumpVariableT2] -> [ | Twilight ][JumpVariableT1]\nHORIZONTAL [ > Twilight | JumpObstacle][JumpVariableT1] -> [ Twilight|JumpObstacle ][JumpVariableT]\nHORIZONTAL [ > Twilight | JumpObstacle][JumpVariableT2] -> [ Twilight|JumpObstacle ][JumpVariableT1]\nLATE DOWN [ Twilight | NO obstacle No Player no tunnel][JumpVariableT] -> [ | Twilight ][JumpVariableT]\nLATE DOWN [ Twilight | Obstacle ][JumpVariablePositiveT] -> [ Twilight | Obstacle ][JumpVariableT]\n\n\nUP [ Up AppleBloom | No Obstacle No Player no tunnel] [JumpVariableB] -> [ Up AppleBloom | ] [JumpVariableB2] sfx4\nDOWN [ Up AppleBloom | no obstacle No Player no tunnel ][JumpVariablePositiveB] -> [ AppleBloom | ][JumpVariablePositiveB]\nDOWN [ Up AppleBloom | no obstacle No Player no tunnel][JumpVariableB2] -> [ AppleBloom | ][JumpVariableB2]\nHORIZONTAL [ > AppleBloom | NO obstacle No Player][JumpVariableB1][ -> [ | AppleBloom ][JumpVariableB]\nHORIZONTAL [ > AppleBloom | NO obstacle No Player][JumpVariableB2] -> [ | AppleBloom ][JumpVariableB1]\nHORIZONTAL [ > AppleBloom | JumpObstacleForFillies][JumpVariableB1] -> [ AppleBloom|JumpObstacleForFillies ][JumpVariableB]\nHORIZONTAL [ > AppleBloom | JumpObstacleForFillies][JumpVariableB2] -> [ AppleBloom|JumpObstacleForFillies ][JumpVariableB1]\nLATE DOWN [ AppleBloom | NO obstacle No Player no tunnel][JumpVariableB] -> [ | AppleBloom ][JumpVariableB]\nLATE DOWN [ AppleBloom | Obstacle ][JumpVariablePositiveB] -> [ AppleBloom | Obstacle ][JumpVariableB]\n)\n\nlate [Player Fire] -> [DeadPony Fire] sfx2\n\n[> Applejack|Boulder|no Obstacle No Player] -> [> Applejack| > Boulder |] sfx0\n[> RainbowDash|Boulder|no Obstacle No Player] -> [> RainbowDash||] sfx5\nRight [Action TwiRight|Boulder] -> [TwiRight|] sfx1\nLeft [Action TwiLeft|Boulder] -> [TwiLeft|] sfx1\n\n[Boulder Fire] -> [Boulder]\n\nlate down [Boulder|Player] -> [|DeadPony] sfx2\nlate down [Boulder| no Obstacle no Tunnel] -> [|Boulder no Fire]\nlate [Boulder Fire] -> [Boulder]\n\n==============\nWINCONDITIONS\n==============\n\nsome Player\nall Exit on Player\nno DeadPony\n\n\n======= \nLEVELS\n=======\n\n(message #1. Grab the Crystal Heart.)\n\n..........H\n...........\n.........E.\n..T....~~~~\n~~~~~~#####\n###########\n\n\nmessage #2. Applejack bucks and pushes.\n\n..........J\n..~~~~~~~~~\n...########\n.A.|.o...E#\n######.####\n###########\n\nmessage #3. Twilight teleports and zaps.\n\n...........H\n............\n............\n.T....E.O...\n~^~FFF~~~~^~\n############\n\nmessage #4. Rainbow Dash flies and smashes.\n\n#########\n....#..E#\n....O..##\n....#..##\n.D..#..##\n#########\n\nmessage #5. Rocks fall, everyone dies.\n\n.........J\n..........\n...~~~~~.~\n~~O..O...#\n##|A.O..E#\n##########\n\nmessage #6. Cooperate with friends.\n\nJ.....###\n......###\n...D..#.E\n....#..O#\n.A..O..|#\n~~~######\n#########\n\nmessage #7. Cooperate with family.\n\n##.......JL#####\n---..O.A.O.#...#\n###~.~~~~~.#..E#\n###.F..B..F-.###\n####.#####.#####\n################\n\n\nmessage #8. Help a filly get a cutie mark!\n~~~~~..........L\n#####.........D.\n###E-....O......\n######...O......\n#######.###...B.\n############~~~~\n\nmessage Aww... Still no cutie mark...\n\nmessage #9. Explore dangerous caves!\n\n.........##############\n.......###O############\nJHL..#####O############\n...#######O############\n..#####..-O------O-E###\n######..##O######O#####\n#####..###|...A..O.....\n####..####O###^.#######\n####.-----O-------...B.\n##########O############\n..........O..........T.\n############^##########\n\nmessage #10. Friendship is magic!\n\nJH.........###\n.......O.#.#OE\nDAT....|.#..O#\n~~~.~~~.~###O#\n.......F.#..O#\n########^#^###\n\nmessage #11. Evil enchantress.\n~~~~~...............JHL\n#####~~~~~~~~~~........\n################.......\n###......###...........\n###..O.O.F.....#.#..D..\n#E-..#B#.|O........A.T.\n#############.~~~~~~~~~\n#######################\n\n\nmessage #12. Equestrian Games.\n\n###############################\n#########O#####################\n#########O#####################\n###......O..................JHL\n###..O.#.O..............D......\n#E-..#B#.O.....................\n#########O#####################\n#........|.....................\n#########O#####..|.|.|.|.|.....\n#........O....##.#.#.#.#.#.A...\n############...################\n#############..................\n###############...F........T...\n###############################\n\nmessage Congratulations!\n\nmessage The Mushroom Kingdom is now safe!\n\nmessage I mean, the Crystal Empire.\n",[0,1,1,1,0,0,1,1,0,1,1,0,1,1,1,0,1,1,1,1,0,1,1,0,1],"background grass:0,background dirt:1,1,1,1,1,1,1,0,1,1,1,1,background exit:2,1,1,0,1,1,1,1,background tunnel:3,1,\n1,0,1,1,background:4,4,4,1,1,0,1,1,4,4,4,1,1,background rdleft:5,0,1,4,background boulder:6,1,\n1,1,4,0,1,4,ableft background:7,4,1,1,4,0,1,4,6,1,1,1,4,0,1,4,4,\n4,1,1,4,0,1,1,background deadpony fire:8,background woodenwall:9,1,1,4,0,1,1,background twileft:10,6,1,1,4,0,1,1,\n4,4,1,1,4,0,1,4,4,4,1,1,4,0,1,4,4,4,4,1,4,0,1,\n4,4,4,0,1,4,4,1,4,1,4,0,1,4,4,4,4,4,4,0,1,4,4,\n4,4,1,4,0,1,4,4,4,4,4,4,0,1,4,4,4,4,4,4,0,1,background jumpvariablea:11,\n4,4,4,4,4,0,1,background jumpvariablet:12,4,4,4,4,4,0,1,background jumpvariableb1:13,4,4,4,4,4,0,1,\n",21,"1397265987570.09"]
	],
	[
		"take heart lass",
		["title Take Heart Lass\nauthor Kevin Zuhn\nhomepage www.kevinzuhn.com\n\n========\nOBJECTS\n========\n\nBackground \nLightGreen Green\n11111\n11011\n10101\n11011\n11111\n\nBackFlowers\nGreen Purple Yellow\n10001\n00100\n01210\n00100\n10001\n\nTarget \nRED LightRed\n.0.0. \n01010\n01110\n.010.\n..0.. \n\nWall \nRed DarkGreen\n00000\n00100\n01010\n00100\n00000\n\nDespairWall \nDarkBrown DarkBlue\n00000\n00100\n01010\n00100\n00000\n\nNewDespairWall \nDarkRed DarkBlue \n00000\n00100\n01010\n00100\n00000\n\nPlayer \nBlue LightRed Yellow DarkBlue \n.333.\n.323.\n20002\n.111.\n.000.\n\nOldHope\nWhite Pink\n11111\n11011\n10101\n11011\n11111\n\nNewHope\nWhite LightRed\n11111\n11011\n10101\n11011\n11111\n\nCrate\nPink White\n.0.0. \n01010\n01110\n.010.\n..0.. \n\nOldDespair\nBlack DarkBlue\n01010\n10101\n01010\n10101\n01010\n\nAltOldDespair\nBlack DarkBlue\n10101\n01010\n10101\n01010\n10101\n\nNewDespair\nDarkBlue DarkGray\n01010\n10101\n01010\n10101\n01010\n\nAltNewDespair\nDarkBlue DarkGray\n10101\n01010\n10101\n01010\n10101\n\n=======\nLEGEND\n=======\n\n. = Background\nf = BackFlowers\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\nX = OldDespair\nZ = AltOldDespair\nH = OldHope\n\nDespair = OldDespair or NewDespair or AltOldDespair or AltNewDespair\nHope = OldHope or NewHope\nBlocker = Despair or Crate or Target or Wall or Player or DespairWall or NewDespairWall or Hope\nHopeBlocker = Crate or Target or Wall or DespairWall or NewDespairWall or Hope\n\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget, BackFlowers, Hope\nPlayer, Wall, Crate, Despair, NewDespair, DespairWall, NewDespairWall\n\n======\nRULES \n====== \n\n[NewDespair] -> [OldDespair]\n[AltNewDespair] -> [AltOldDespair]\n[NewDespairWall] -> [DespairWall]\n[NewHope] -> [OldHope]\nlate [OldDespair | No Blocker] -> [OldDespair | AltNewDespair]\nlate [AltOldDespair | No Blocker] -> [AltOldDespair | NewDespair]\nlate [OldDespair | Wall] -> [OldDespair | NewDespairWall]\nlate [DespairWall | Wall] -> [DespairWall | NewDespairWall]\nlate [OldHope | No HopeBlocker] -> [ OldHope | NewHope]\n\n[> Player | Crate] -> [> Player | > Crate]\n[> Crate | Blocker] -> [ Crate | Blocker ]\n\nlate [Target | Despair] -> [ Target | ]\nlate [Despair Target] -> [Target]\nlate [Crate | Despair] -> [ Crate | ]\nlate [Hope Despair] -> [Hope]\nlate [Hope | DespairWall] -> [Hope | Wall]\nlate [Hope | NewDespairWall] -> [Hope | Wall]\n\n==============\nWINCONDITIONS\n==============\n\nSome Player on Target \n\n======= \nLEVELS\n=======\n\nmessage You have love in your heart, Lass.\n\n######\n#...x#\n#.ff.#\n#.ff.#\n#o..P#\n######\n\nmessage So your heart can weather Despair.\n\n#########\n#x.f...f#\n#.#.....#\n#.p.f#..#\n#.#..#f.#\n#xzf...o#\n#########\n\nmessage And you've others who love you.\n\n#########\n#x......#\n#...#...#\n#p..*..##\n#...#...#\n#x.....o#\n#########\n\nmessage The war can't last forever, Lass.\n\n########\n#.#zx#p#\n#....*.#\n#......#\n#o#*.#.#\n########\n\nmessage Think of the time we shared.\n\n###########\n#.........#\n#.*#.o.####\n#..*###...#\n#.......*.#\n#......#..#\n####...####\n#x.......p#\n###########\n\nmessage Then bottle your grief up tight.\n\n###########\n#o........#\n####.##.#.#\n#.....*.#.#\n#.#.###.#.#\n#.#....*..#\n#.#*.#.##.#\n#x#...p#z.#\n###########\n\nmessage I wish I could be there, Lass.\n\n###########\n#...o...zx#\n#.#.....#z#\n#...#.#...#\n#.........#\n#..**.**..#\n#z........#\n#xz......p#\n###########\n\nmessage You're loved. You'll find a way.\n\n###########\n#....o....#\n#..#####..#\n#.#.....#.#\n#...*p*...#\n#....*....#\n#...###...#\n#x.......x#\n###########\n\nmessage There is always Hope, Lass.\n\n###########\n#........H#\n#.......p.#\n#x........#\n#zx.......#\n#xzx......#\n#zxzx.....#\n#ozxzx....#\n###########\n\nmessage It may waver, but it stays lit.\n\n###########\n#....p....#\n###.#*#.###\n#x.......x#\n###.*.*.###\n#HH*.....x#\n###.#.#.###\n#x.......o#\n###########\n\nmessage Temper your hope with wisdom.\n\n############\n#......zxzx#\n#.##.##.####\n#......*...#\n#.*p.#.#.#o#\n#...*.*.*#.#\n####.###...#\n#H.........#\n############\n\nmessage Save no Despair for me, Lass.\n\n##################\n#..*.#H#o........#\n#...*..#######.#.#\n#.##.#########.#*#\n#.#.....*....#.#.#\n#H#...#.p..#z.*H*#\n###...#.#*##...#.#\n#...##z.....#*.xz#\n#.*.......*...xzx#\n#x...#.*....#xzxz#\n##################\n\nmessage For I have hope as well.\nmessage Take Heart, Lass. Goodbye.\n",[0,1,2,3,3,3,1],"background wall:0,background newdespairwall:1,background despairwall:2,2,2,2,2,2,2,1,background olddespair:3,\naltolddespair background:4,3,4,3,4,3,2,0,altnewdespair background:5,3,2,\n3,4,3,4,2,0,background:6,1,3,4,6,\n4,3,2,0,6,0,5,6,background crate:7,2,4,\n2,0,background target:8,0,6,6,7,2,3,2,0,\n6,0,6,background player:9,6,2,4,2,0,6,1,\n6,6,3,4,3,2,0,5,3,2,7,\n6,3,4,2,1,3,4,3,6,3,4,\n3,2,0,1,2,2,2,2,2,2,2,\n",15,"1397266037416.4868"]
	],
	[
		"tiny treasure hunt",
		["title tiny treasure hunt 1.0\nauthor Weeble\nhomepage www.twitter.com/weeble\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\nLowFloorRaw\nBLACK\n\nLowFloor1\n#111411 #191d19 #202020 #252725\n01011\n12310\n23320\n02321\n02110\n\nLowFloor2\n#111411 #191d19 #202020 #252725\n01001\n22312\n12331\n01310\n10101\n\nWallFacade\n#555555 #666666 #777777\n21221\n10011\n.....\n.....\n.....\n\nHighFloor\n#909090 #999999 #bbbbbb #cccccc\n33232\n31012\n20002\n31012\n32222\n\nLowPlayer\n#686868 #707070 #787878 #808080\n.....\n.....\n.232.\n.121.\n.0.0.\n\nHighPlayer\n#e8e8e8 #f0f0f0 #f8f8f8 #ffffff\n.232.\n.121.\n.0.0.\n.....\n.....\n\nCrate\n#999944 #88883a #777733\n10001\n00000\n10001\n22222\n22222\n\nHighCrate\n#dddd55 #eeee50 #cccc48\n10001\n00000\n10001\n22222\n22222\n\nBurntCrate\n#222222 #111111 #000000\n10001\n00000\n10001\n22222\n22222\n\nMeltingIce\nWhite LightBlue #9999ff #330000\n.33..\n3333.\n31013\n11330\n21112\n\n\nStaticIce\nWhite LightBlue #9999ff\n10002\n1...0\n0...1\n10012\n21122\n\nIceCubeN\nWhite LightBlue #9999ff\n10002\n1...0\n0...1\n10012\n21122\n\nIceCubeE\nWhite LightBlue #9999ff\n10002\n1...0\n0...1\n10012\n21122\n\nIceCubeS\nWhite LightBlue #9999ff\n10002\n1...0\n0...1\n10012\n21122\n\nIceCubeW\nWhite LightBlue #9999ff\n10002\n1...0\n0...1\n10012\n21122\n\nFirePit1\n#990000 #770000 #550000 #330000\n02111\n13321\n02321\n32110\n23121\n\nFirePit2\n#990000 #770000 #550000 #330000\n10311\n21233\n11021\n23213\n20122\n\n\nPillar\n#cccccc #dddddd #eeeeee #ffffff #bbbbbb #aaaaaa\n32123\n33333\n02120\n22122\n01310\n\nIceCubeShadow\nRED\n.....\n.....\n..0..\n.....\n.....\n\nCoin\nWHITE #eeee55 #aaaa33\n.000.\n01112\n01212\n01112\n.222.\n\n \nStairsNorth\n#333333 #444444 #555555 #666666 #777777\n44444\n43334\n32223\n21112\n10001\n=======\nLEGEND\n=======\n. = LowFloorRaw\n\" = HighFloor\n@ = LowPlayer and LowFloorRaw\n$ = Coin and HighFloor\n£ = Coin\nH = HighCrate and HighFloor\n: = WallFacade and FirePit1 and LowFloorRaw\n~ = WallFacade and LowFloorRaw\n# = Crate and LowFloorRaw\nW = Crate and LowFloorRaw and WallFacade\n! = FirePit1 and LowFloorRaw\nI = Pillar and HighFloor\n% = StaticIce and LowFloorRaw\n& = StaticIce and LowFloorRaw and WallFacade\n/ = StairsNorth and LowFloorRaw\nFirePit = FirePit1 or FirePit2\nLowFloor = LowFloor1 or LowFloor2\nBackground = LowFloor or HighFloor or LowFloorRaw\nPlayer = LowPlayer or HighPlayer\nObstacle = StairsNorth\nBlocksLow = Crate or HighFloor or StaticIce or Pillar or BurntCrate\nPushable = Crate or StaticIce\nMovingIce = IceCubeE or IceCubeS or IceCubeW or IceCubeN\nIceCube = StaticIce or MovingIce\nGrounded = IceCube or LowPlayer or Crate\n\n=======\nSOUNDS\n=======\n\nCoin DESTROY 77169700\nCrate MOVE 24442507\nSFX0 98605308 ( Hiss )\nSFX1 89033504 ( Snap )\nSFX2 70543502 ( Plink )\nSFX3 34905302 ( Slam )\nSFX4 93355705 ( Squeak )\nSFX5 52776702 ( Grind )\nSFX6 86238705 ( Bounce )\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nStairsNorth, FirePit\nWallFacade\nCrate, IceCube, MovingIce, LowPlayer, MeltingIce, BurntCrate\nPillar, HighPlayer, HighCrate, Coin\nIceCubeShadow\n\n======\nRULES \n====== \n\n(Make stuff pretty)\n[ LowFloorRaw ] -> [ random LowFloor ]\n[ FirePit ] -> [ random FirePit ]\n\n(Pushing stuff)\n[ > LowPlayer | Pushable ] -> [ > LowPlayer | > Pushable ]\n[ > HighPlayer | HighCrate ] -> [ > HighPlayer | > HighCrate ]\n\n(Don't walk under pillars. Probably redundant.)\n[ > Grounded | Pillar ] -> [ Grounded | Pillar ]\n\n(Ice melts in lava)\n[ MeltingIce FirePit ] -> [ ]\n[ IceCube FirePit ] -> [ MeltingIce FirePit ] sfx0 again\n\n(Ice slides)\nRIGHT [ > StaticIce ] -> [ > IceCubeE ] sfx2\nDOWN [ > StaticIce ] -> [ > IceCubeS ] sfx2\nLEFT [ > StaticIce ] -> [ > IceCubeW ] sfx2\nUP [ > StaticIce ] -> [ > IceCubeN ] sfx2\n[ MovingIce no IceCubeShadow ] -> [ MovingIce IceCubeShadow ]\nRIGHT [ IceCubeE ] -> [ > IceCubeE ] again\nDOWN [ IceCubeS ] -> [ > IceCubeS ] again\nLEFT [ IceCubeW ] -> [ > IceCubeW ] again\nUP [ IceCubeN ] -> [ > IceCubeN ] again\n\n(Stop things from overlapping the stairs)\n[ > IceCube | Obstacle ] -> [ StaticIce | Obstacle ]\n[ > Crate | Obstacle ] -> [ Crate | Obstacle ]\n\n(Lava kills you)\nlate [ LowPlayer FirePit ] -> [ FirePit ] sfx5 message Ouch, hot!\n\n(More ice rules)\nlate [ MovingIce IceCubeShadow ] -> [ StaticIce ] sfx5\nlate [ IceCubeShadow ] -> [ ]\n\n(Crates get charred in lava)\nlate [ Crate FirePit ] -> [ BurntCrate FirePit ] sfx5\n\n(Player collects coins)\n[ > HighPlayer | Coin HighFloor ] -> [ | HighPlayer HighFloor ]\n[ > LowPlayer | Coin LowFloor ] -> [ | LowPlayer LowFloor ]\n\n(Player can climb stairs)\nUP [ > LowPlayer StairsNorth | HighFloor ] -> [ StairsNorth | HighPlayer HighFloor ] sfx6\n\n(Stop things from getting pushed up onto ledges)\n[ > Grounded | HighFloor ] -> [ Grounded | HighFloor ]\n\n(Players and crates fall)\nlate [ HighPlayer no BlocksLow ] -> [ LowPlayer ] sfx1 again\nlate [ HighCrate no BlocksLow ] -> [ Crate ] sfx1 again\n\n==============\nWINCONDITIONS\n==============\n\nNo Coin\n\n======= \nLEVELS\n=======\n\nmessage 1. the outer walls\n\n\"\"\"\"\"\"!!!\"\"\"\n\"h\"\"\"\"..!\"$\"\n\"\"\"\"\"\"#.!\"\"\"\n\"\"\"\"\"\"..!\"\"\"\ni~~/i/..!:::\n\"...\"...!!!!\ni\"\"\"i.......\n\"/~~\"!!...#.\ni.@.i!!.....\n\nmessage 2. cold storage\n\n..........£\n.!!!!!!!!!.\n.!!!!!!!!!.\n.!!.%%%.!!.\n.!!%...%!!.\n.!!%.@.%!!.\n.!!%...%!!.\n.!!.%%%.!!.\n.!!!!!!!!!.\n.!!!!!!!!!.\n...........\n\n\nmessage 3. bifrost\n\n!!.@.\"\"\"\"!!\n!!%..\"~/\"!!\n!!.%.&..~!!\n!!%..%...!!\n!!.%.%.%.!!\n!!%..%..%!!\n!!.%.%.%.!!\n!!...%..%!!\n!!...%.%.!!\n!!$..\"..%!!\n!!\"\"\"\".%.!!\n\n\nmessage 4. clutter\n\n\"\"\"\"\"\"\"\"\"\"$\n\"\"\"\"\"\"\"\"\"\"\"\n~~~~W~W~~::\n.%@.#..#.!!\n....#.#..!!\n!!!!\"\"\"\"\"..\n!!!!\"\"\"\"\"..\n....~/~~~..\n...........\n\nmessage 5. arena\n\n!\"!!!!!!!!!\"\n!~..\"..\"\"..:\n!...~../~$.!\n!\"......@~.!\n!~...\".....!\n!....~.%...!\n!....%.....!\n!.\"....%...!\n!.~.......\"!\n!..\"......~!\n!\".~...\"...!\n!:!!!!!:!!!!\n\n\nmessage 6. the gauntlet\n\n\n..\"\".\".\".\"..!!!\n..w~.\"#\".~#.!\"!\n\"\"...~.~#..\"!~!\n~&..@......~!£!\n\"\"....#\"\"\".\"!.!\n~~...#.\"/\"#~!\"!\n.......~.\"..!:!\n\n\nmessage 7. throne room\n\n...#.\"$\".#...\n..#..\"\"\"..#..\n!!.#.:::.#.!!\n$\"!...!...!\"$\n\"\"!.!!!!!.!\"\"\n~~!.!h\"h!.!~~\n.#!!!\"\"\"!!!#.\n.....h\"h.....\n\"!!..\"\"\"..!!\"\n\"\"!..~/~..!\"\"\n\"\"\"...@...\"\"\"\n:~~.%.%.%.~~:\n!...........!\n\nmessage Well done!\n",[1,1],"highfloor:0,0,0,0,highfloor pillar:1,0,1,0,1,0,highcrate highfloor:2,0,\n0,lowfloor1 wallfacade:3,lowfloor1:4,0,lowfloor2 stairsnorth:5,lowfloor1 lowplayer:6,0,0,0,0,lowfloor2 wallfacade:7,4,\n0,3,lowfloor2:8,0,0,0,0,5,8,0,7,8,\n0,0,0,0,1,0,1,0,1,0,0,0,\n0,lowfloor1 stairsnorth:9,4,4,firepit1 lowfloor1:10,firepit2 lowfloor1:11,11,4,crate lowfloor2:12,4,8,4,\n8,11,11,10,4,4,4,4,8,4,4,4,\nfirepit1 lowfloor2:13,10,13,10,11,13,4,8,8,0,0,0,\n0,firepit1 lowfloor2 wallfacade:14,firepit2 lowfloor2:15,4,8,4,0,coin highfloor:16,0,0,firepit2 lowfloor2 wallfacade:17,11,\n4,12,4,0,0,0,0,firepit1 lowfloor1 wallfacade:18,13,8,4,8,\n",1,"1398623149061.288"]
	],
	[
		"heroes of sokoban 2",
		["title Heroes of Sokoban II: Monsters\nauthor Jonah Ostroff\ntext_color yellow\nkey_repeat_interval 0.25\n\n========\nOBJECTS\n========\n\nBackground \n#989898 #C8C8C8\n00000\n00100\n00000\n00010\n00000\n\nGoal \nBrown Yellow\n.000.\n00000\n00010\n00000\n00000\n\nWall\nDarkgrey #222222\n01000\n11111\n00010\n00010\n11111\n\nFighter (Warrior sounds better in-game, but I want different abbreviations for the classes in the editor.)\n#FF4444 Pink DarkBrown\n.000.\n.111.\n00000\n.000.\n.2.2.\n\nWizard\n#2266FF Pink\n.000.\n.010.\n00000\n.000.\n00000\n\nThief\n#66DD66 Pink DarkBrown\n.000.\n.010.\n00000\n.0.0.\n.0.0.\n\nPriest\n#FFFFAA Pink\n.000.\n.111.\n00000\n.000.\n00000\n\nSFighter \n#880000 Pink DarkBrown\n.000.\n.111.\n00000\n.000.\n.2.2.\n\nSWizard\n#000088 Pink\n.000.\n.010.\n00000\n.000.\n00000\n\nSThief\n#006600 Pink DarkBrown\n.000.\n.010.\n00000\n.0.0.\n.0.0.\n\nSPriest\n#B8B800 Pink\n.000.\n.111.\n00000\n.000.\n00000\n\nCrate \nOrange #552200\n.111.\n10001\n10001\n10001\n.111.\n\nYellowSwitch\nYellow Black\n.....\n.111.\n.101.\n.111.\n.....\n\nYellowOpen\nYellow\n0...0\n.....\n.....\n.....\n0...0\n\nYellowDoor\nYellow #AA7722\n01010\n10001\n00000\n10001\n01010\n\nPurpleSwitch\n#6611CC Black\n.....\n.111.\n.101.\n.111.\n.....\n\nPurpleDoor\n#6611CC #220088\n01010\n10001\n00000\n10001\n01010\n\nPurpleOpen\n#6611CC\n0...0\n.....\n.....\n.....\n0...0\n\nMonsterDoor\nDarkGrey #222222 Red\n21002\n22122\n20212\n20012\n21112\n\nWarpball\nBlue\n\nShadowDoor\nPurple\n\nDragonLeft\nGreen Red Orange Yellow DarkGreen\n.....\n1100.\n3210.\n1100.\n...4.\n\nDragonRight\nGreen Red Orange Yellow DarkGreen\n.....\n.0011\n.0123\n.0011\n.4...\n\nGoblin\nGreen DarkBrown DarkGreen\n0.2.0\n00000\n..0..\n.111.\n.1.1.\n\nDying\nWhite\n\nSaved\n#D8D800\n..0..\n.000.\n..0..\n..0..\n.....\n\nHasSaved\nYellow\n.....\n.....\n.....\n.....\n.....\n\nCorpse\n#CCC\n.000.\n.000.\n00000\n.0.0.\n.0.0.\n\nLFireball\nOrange\n\nRFireball\nOrange\n\nDidNotMove\nPurple\n\n=======\nLEGEND\n=======\n\nDragon = DragonLeft or DragonRight\nPlayer = Fighter or Wizard or Thief or Priest\nSPlayer = Swizard or Sthief or SFighter or SPriest\nHero = Player or Splayer\nHealer = Priest or SPriest (Unlike the other heroes, priests must function even when inactive. \"Healer\" is the generic term for an active or inactive priest.)\nClosedDoor = PurpleDoor or YellowDoor or MonsterDoor\nOpenDoor = YellowOpen or PurpleOpen\nSwitch = PurpleSwitch or YellowSwitch\nMonster = Dragon or Goblin\nMoveable = Crate or SPlayer or Monster\nStatic = Wall or ClosedDoor\nWeighing = Crate or Hero or Monster\nVulnerable = Hero or Monster\nInvulnerable = Crate or Static\nFireball = LFireball or RFireball\n. = Background\n# = Wall\nF = Fighter\nW = Wizard\nT = Thief\nP = Priest\n1 = SFighter\n2 = SThief\n3 = SWizard\n4 = SPriest\n* = Crate\nG = Goal\n[ = YellowDoor\n] = PurpleDoor\n{ = YellowSwitch\n} = PurpleSwitch\nL = DragonLeft\nR = DragonRight\nO = Goblin\nM = MonsterDoor\n\n=======\nSOUNDS\n=======\n\nMoveable move 82056307\nSfx0 21221308 (teleport)\nEndlevel 36315908\nSfx1 66399906 (switch player)\nSfx2 92172900 (close door)\nSfx3 15129100 (open door)\nSfx4 69860105 (saved)\nSfx5 63194902 (kill enemy)\nSfx6 81996702 (dying player)\nEndGame 86793500\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nWarpball, Dying\nGoal, Switch, OpenDoor, ShadowDoor\nClosedDoor, Hero, Crate, Wall, Monster, Corpse\nRFireball, Saved, DidNotMove\nLFireball, HasSaved\n\n======\nRULES \n====== \n[Saved] [Wall] -> [] [Wall HasSaved] (Remembering whether we saved someone last round by attaching a note to some wall.)\n\n[Corpse] -> Restart\n\n(Adds a DidNotMove to where the player currently is, to cancel moves where they bump into a wall.)\n\n[Player] -> [Player DidNotMove]\n\n[ > Fighter | Moveable ] -> [ > Fighter | > Moveable ] \n[ > Moveable | Moveable ] [ Fighter] -> [ > Moveable | > Moveable ] [ Fighter] (Fighters push.)\n\n[ < Thief | Moveable ] -> [ < Thief | < Moveable ] (Thieves pull.)\n\n[ > Wizard ] -> [ Wizard > Warpball]\n[ > Warpball | no Moveable no Static] -> [ | > Warpball]\n[ > Warpball | Static] [Wizard] -> [ | Static ] [> Wizard]\n[ > Warpball | Moveable ] [Wizard] -> [ | Wizard Sfx0] [Moveable] (Wizards telexport. What they really do is shoot a \"warpball\", which causes them to move normally if it hits a wall and warp if it hits something they can warp with.)\n\n(The following mess is for changing characters.)\n[ Action Fighter] [SThief] -> [SFighter] [Thief Sfx1]\n[ Action Thief] [SWizard] -> [SThief] [Wizard Sfx1]\n[ Action Wizard] [SPriest] -> [SWizard] [Priest Sfx1]\n[ Action Priest] [SFighter] -> [SPriest] [Fighter Sfx1]\n\n[ Action Fighter] [no SThief] [SWizard] -> [SFighter] [no SThief] [Wizard Sfx1]\n[ Action Thief] [no Swizard] [SPriest] -> [SThief] [no SWizard] [Priest Sfx1]\n[ Action Wizard] [no SPriest] [SFighter] -> [SWizard] [no SPriest] [Fighter Sfx1]\n[ Action Priest] [no SFighter] [SThief] -> [SPriest] [no SFighter] [Thief Sfx1]\n\n[ Action Fighter] [no SThief] [no SWizard] [SPriest] -> [SFighter] [no SThief] [no SWizard] [Priest Sfx1]\n[ Action Thief] [no SWizard] [no SPriest] [SFighter] -> [SThief] [no SWizard] [no SPriest] [Fighter Sfx1]\n[ Action Wizard] [no SPriest] [no SFighter] [SThief] -> [SWizard] [no SPriest] [no SFighter] [Thief Sfx1]\n[ Action Priest] [no SFighter] [no SThief] [SWizard] -> [SPriest] [no SFighter] [no SThief] [Wizard Sfx1]\n\n(Cancels the move if the player is in the same place that they started. Notice that switching characters negates this. Only matters in levels where one dragon has multiple targets.)\n\nLate [Player DidNotMove] -> Cancel\nLate [DidNotMove] -> []\n\n(Now enemies attack.)\n\nLate [DragonLeft] -> [LFireball DragonLeft]\nLate [DragonRight] -> [RFireball DragonRight]\n\nLate RIGHT [RFireball | No Vulnerable no Invulnerable] -> [ | RFireball]\nLate LEFT [LFireball | No Vulnerable no Invulnerable] -> [ | LFireball]\nLate RIGHT [RFireball | Vulnerable] -> [ | Dying Vulnerable]\nLate Right [RFireball | Invulnerable] -> [ | Invulnerable] \nLate Left [LFireball | Vulnerable] -> [ | Dying Vulnerable]\nLate LEFT [LFireball | Invulnerable] -> [ | Invulnerable]\n\nLate [Goblin | Vulnerable] -> [Goblin | Dying Vulnerable]\n\n(Vulnerable objects that are attacked are designated as \"Dying\", but heroes can be saved by the Priest. Then the stuff that didn't get saved dies.)\n\nLate [Dying Healer] -> [Saved Healer]\nLate [Healer | Dying Hero] -> [Healer | Saved Hero]\nLate [Dying Monster] -> [Sfx5]\nLate [Dying Hero] -> [Corpse Sfx6]\n\n(Doors opening.)\n\nlate [Weighing YellowSwitch] [YellowDoor] -> [Weighing YellowSwitch] [ShadowDoor]\nlate [YellowSwitch no Weighing] [YellowOpen] -> [YellowSwitch] [YellowDoor sfx2]\nlate [YellowSwitch no Weighing] [ShadowDoor] -> [YellowSwitch] [YellowDoor]\nlate [ShadowDoor] -> [YellowOpen sfx3]\n\nlate [Weighing PurpleSwitch] [PurpleDoor] -> [Weighing PurpleSwitch] [ShadowDoor]\nlate [PurpleSwitch no Weighing] [PurpleOpen] -> [PurpleSwitch] [PurpleDoor sfx2]\nlate [PurpleSwitch no Weighing] [ShadowDoor] -> [PurpleSwitch] [PurpleDoor]\nlate [ShadowDoor] -> [PurpleOpen sfx3]\n\nlate [MonsterDoor] -> [ShadowDoor]\nlate [ShadowDoor] [Monster] -> [MonsterDoor] [Monster]\nlate [ShadowDoor] -> [sfx3]\n\n(Looks for a HasSaved on a wall and moves it to the Priest. Then, if someone was saved this turn, plays the sound only if the Priest doesn't have the HasSaved note. Finally, cleans that up.)\n\nlate [Wall HasSaved] [Healer] -> [Wall] [Healer HasSaved]\nlate [Saved] [Healer no HasSaved] -> [Saved sfx4] [Healer]\nlate [HasSaved] -> []\n\n==============\nWINCONDITIONS\n==============\n\nAll Hero on Goal \nAll Goal on Hero\n\n======= \nLEVELS\n=======\n\nMessage Welcome back.\n\nMessage [You've played the original, yes?]\n\nMessage [If not, this might be confusing.]\n\n#############\n#.......[...#\n#.*.F.{.[.G.#\n#############\n#.......[...#\n#.*.2.{.[.G.#\n#############\n#.......[...#\n#.*.3.{.[.G.#\n#############\n\nMessage Watch out for goblins.\n\n#############\n#F.O.......O#\n#...O.......#\n#.......O...#\n#O..........#\n#....O......#\n#O.......O..#\n#.O.....O.G.#\n#############\n\n#############\n###O###O#####\n#W.*****...O#\n#..*****....#\n#####O###O..#\n#O########..#\n#*G...O.O...#\n##..O..O.O..#\n#############\n\nMessage Goblins attack each other too.\n\n#############\n#.......#...#\n#...*...#.G.#\n#.F...O.#...#\n#...*...##O##\n#...........#\n#############\n\nMessage Dragons breath fire.\n\n###############\n#.............#\n#..T..###.....#\n#.....L.#.....#\n#.......#.....#\n#.............#\n#.....#.......#\n#.....#.R..G..#\n#.....###.....#\n#.............#\n###############\n\nMessage Fire hurts enemies.\n\n##############\n#...#....O.RG#\n#.T.#......R.#\n#...#R*L...R.#\n#R*.#...#..R.#\n#...#...#..R.#\n#...O.*.#..R.#\n#.......#....#\n##############\n\n###########\n#3.O.O.O.T#\n#.#########\n#......G.G#\n#.#########\n#R.O.O.O.O#\n###########\n\nMessage Think fast!\n\n#############\n#R.O.O.O.O.T#\n###########{#\n###########]#\n#G#3.[.}.G#G#\n#]###########\n#{###########\n#1..O...O..L#\n#############\n\nMessage Sorry about that one.\n\n#######\n##G*G##\n##.G.##\n#R...##\n##...##\n##...##\n##...##\n##...L#\n##...##\n##F23##\n#######\n\nMessage Kill monsters to open the M wall.\n\n###########\n#L...R#...#\n#.....#...#\n#.....M.G.#\n#.T.*.#...#\n#.....#...#\n###########\n\n#############\n#.......#...#\n#..O.O..#...#\n#R......M.G.#\n#.*.F.*.#...#\n#.......#...#\n#############\n\n#############\n#.......#...#\n#.{.*.{.#...#\n#..W.O..M.G.#\n#.{.*.[.#...#\n#.......#...#\n#############\n\nMessage Yellow priest is protected.\n\n###########\n#...#O#O#O#\n#.P.......#\n#...**O**.#\n#********.#\n#R..G.....#\n###########\n\n###########\n#W#######G#\n#.#O#O#O#.#\n#.........#\n#.##O#O##.#\n#4#######G#\n###########\n\nMessage Heroes next to a priest are safe.\n\n############\n#...#.O#O###\n#.F.#......#\n#...#.##O..#\n#.4...O#G.G#\n#...#.##.O.#\n############\n\n############\n#.#..T..#4##\n#.#.{.*...L#\n#.#.....#..#\n#G[.*.{...L#\n#.#.....#..#\n#.#.{.*...L#\n#.#.....#G##\n############\n\n###########\n#W...O#...#\n#.....#.G.#\n#..4..M...#\n#.....#.G.#\n#O...O#...#\n###########\n\n###########\n#.T.##O#O##\n#.........#\n#.4.#O#O..#\n########.##\n#G..####.O#\n#G#.O###.##\n###.###O..#\n#O..O#....#\n##...*....#\n###########\n\n###########\n#{*F#.4#.3#\n#{*.#..#..#\n###[#[###.#\n#R[.......#\n####O#.##.#\n######.##.#\n#G.G.G.#O*#\n###########\n\n###########\n#.T.####O##\n#.3......O#\n#.4.###O.##\n#####O##.##\n#.G..*.O.##\n#G.G#O##.##\n###########\n\n###########\n##O#O#O#O##\n#T[.[.[.[.#\n##{#{#{#{.#\n#.........#\n#.3G*G*G4.#\n#.........#\n###########\n\nMessage The final challenge.\n\n#############\n#...#O.O#...#\n#.F.#G.G#.2.#\n#...#.O.#...#\n##.###*###.##\n#R*L.....R*L#\n#.#.......#.#\n#R*L.....R*L#\n##.###M###.##\n#...#...#...#\n#.3.#G.G#.4.#\n#...#...#...#\n#############\n\nMessage Thanks for playing!\n",[2,2,0,4,2,2,2,4,2,1,1,2,2,3,2,2],"background wall:0,0,0,0,0,0,0,0,0,0,background:1,1,\n1,background goal:2,1,1,1,0,0,0,0,0,background yellowdoor:3,0,\n0,0,0,0,1,1,1,1,1,1,1,0,\n0,1,background yellowswitch:4,1,1,1,background crate yellowswitch:5,background thief:6,0,0,1,1,\n1,1,1,1,1,0,0,1,background crate:7,1,4,1,\n7,1,0,0,1,1,1,1,1,1,1,0,\n0,0,1,0,1,0,1,0,0,0,1,1,\n1,background saved spriest:8,1,1,2,0,0,0,background dragonleft:9,1,9,1,\n9,0,0,0,0,0,0,0,0,0,0,0,\n",27,"1397266289444.3076"]
	],
	[
		"dang I'm huge",
		["title Dang I'm Huge\nauthor Guilherme Tows\nhomepage zarat.us\n\nrun_rules_on_level_start\nnoaction\nyoutube 7qGttcfFLBo\ncolor_palette atari\n\n========\nOBJECTS\n========\n\nBackground .\nBLACK\n\nTrampled\nDARKGRAY\n\nWall #\nRed\n\nBlock O\nBlue Black\n.000.\n01110\n00010\n00010\n.000.\n\nBlock1 B\nBlue Black\n.0000\n01111\n00000\n00000\n00000\n\nBlock2\nBlue Black\n0000.\n11110\n00010\n00010\n00010\n\nBlock3\nBlue Black\n00000\n00000\n00000\n00000\n.0000\n\nBlock4\nBlue Black\n00010\n00010\n00010\n00010\n0000.\n\nPlayerSmall @\nYellow Black\n.000.\n01010\n00000\n01110\n.000.\n\nPlayer1 P\nYellow Black\n..000\n.0000\n00010\n00010\n00000\n\nPlayer2 \nYellow Black\n000..\n0000.\n01000\n01000\n00000\n\nPlayer3 \nYellow Black\n00000\n00100\n00011\n.0000\n..000\n\nPlayer4 \nYellow Black\n00000\n00100\n11000\n0000.\n000..\n\nTarget X\nPurple\n0...0\n.0.0.\n..0..\n.0.0.\n0...0\n\nZapSmall *\nDarkGreen\n.000.\n00000\n00000\n00000\n.000.\n\nZapSmallOff\nDarkRed\n.000.\n00000\n00000\n00000\n.000.\n\nZap1 Z\nDarkGreen\n..000\n.0000\n00000\n00000\n00000\n\nZap2\nDarkGreen\n000..\n0000.\n00000\n00000\n00000\n\nZap3\nDarkGreen\n00000\n00000\n00000\n.0000\n..000\n\nZap4\nDarkGreen\n00000\n00000\n00000\n0000.\n000..\n\nZap1Off\nDarkRed\n..000\n.0000\n00000\n00000\n00000\n\nZap2Off\nDarkRed\n000..\n0000.\n00000\n00000\n00000\n\nZap3Off\nDarkRed\n00000\n00000\n00000\n.0000\n..000\n\nZap4Off\nDarkRed\n00000\n00000\n00000\n0000.\n000..\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nAnything = PlayerSmall or Player1 or Player2 or Player3 or Player4 or Block or Block1 or Block2 or Block3 or Block4\nPlayer = PlayerSmall or Player1 or Player2 or Player3 or Player4\nPlayerBig = Player1 or Player2 or Player3 or Player4\nPushable = Block or Block1 or Block2 or Block3 or Block4\nBlockBig = Block1 or Block2 or Block3 or Block4\nSolid = Pushable or Wall\nO = Block\n0 = Block and Target\n\n=======\nSOUNDS\n=======\n\nBlock MOVE 36772507\nBlockBig MOVE 99321507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTrampled\nTarget, ZapSmall, Zap1, Zap2, Zap3, Zap4, ZapSmallOff, Zap1Off, Zap2Off, Zap3Off, Zap4Off\nPlayerSmall, Player1, Player2, Player3, Player4, Wall, Block, Block1, Block2, Block3, Block4\n\n======\nRULES\n======\n\nright [ Block1 | no Block2 ] -> [ Block1 | Block2 ] \ndown [ Block1 | no Block3 ] -> [ Block1 | Block3 ] \ndown [ Block2 | no Block4 ] -> [ Block2 | Block4 ] \n\nright [ Zap1 | no Zap2 ] -> [ Zap1 | Zap2 ] \ndown [ Zap1 | no Zap3 ] -> [ Zap1 | Zap3 ] \ndown [ Zap2 | no Zap4 ] -> [ Zap2 | Zap4 ] \n\nright [ Player1 | no Player2 ] -> [ Player1 | Player2 ] \ndown [ Player1 | no Player3 ] -> [ Player1 | Player3 ] \ndown [ Player2 | no Player4 ] -> [ Player2 | Player4 ] \n\nrigid [ > PlayerBig | BlockBig ] -> [ > PlayerBig | > BlockBig ] \n+ rigid right [ Moving Block1 | Block2 ] -> [ Moving Block1 | MOVING Block2 ]\n+ rigid down [ Moving Block1 | Block3 ] -> [ Moving Block1 | MOVING Block3 ]\n+ rigid left [ Moving Block2 | Block1 ] -> [ Moving Block2 | MOVING Block1 ]\n+ rigid down [ Moving Block2 | Block4 ] -> [ Moving Block2 | MOVING Block4 ]\n+ rigid right [ Moving Block3 | Block4 ] -> [ Moving Block3 | MOVING Block4 ]\n+ rigid up [ Moving Block3 | Block1 ] -> [ Moving Block3 | MOVING Block1 ]\n+ rigid left [ Moving Block4 | Block3 ] -> [ Moving Block4 | MOVING Block3 ]\n+ rigid up [ Moving Block4 | Block2 ] -> [ Moving Block4 | MOVING Block2 ]\n\n[ > PlayerBig | Stationary BlockBig ] -> [ PlayerBig | Stationary BlockBig ] \n\n[ > PlayerBig | Block | Block | no Solid ] -> [ > PlayerBig | > Block | > Block | ]\n[ > Player | Block | no Solid ] -> [ > Player | > Block | ]\n\n[ > Player | Stationary Solid ] -> [ Player | Solid ]\n\n[ MOVING Player ] [ STATIONARY Player ] -> [ Player ] [ Player ]\n[ STATIONARY Player ] [ MOVING Pushable ] -> [ Player ] [ Pushable ]\n\nlate [ Player1 Zap1 ] [ Player2 Zap2 ] [ Player3 Zap3 ] [ Player4 Zap4 ] [ ZapSmall ] -> [ Zap1Off ] [ Zap2Off ] [ Zap3Off ] [ Zap4Off ] [ PlayerSmall ZapSmallOff ] \n\nlate [ Zap1 no Anything ] [ Zap2 no Anything ] [ Zap3 no Anything ] [ Zap4 no Anything ] [ PlayerSmall ZapSmall ] -> [ Player1 Zap1Off ] [ Player2 Zap2Off ] [ Player3 Zap3Off ] [ Player4 Zap4Off ] [ ZapSmallOff ]\n\nlate [ Block1 Zap1 ] [ Block2 Zap2 ] [ Block3 Zap3 ] [ Block4 Zap4 ] [ ZapSmall no Anything ] -> [ Zap1Off ] [ Zap2Off ] [ Zap3Off ] [ Zap4Off ] [ Block ZapSmallOff ] \n\nlate [ Zap1 no Anything ] [ Zap2 no Anything ] [ Zap3 no Anything ] [ Zap4 no Anything ] [ Block ZapSmall ] -> [ Block1 Zap1Off ] [ Block2 Zap2Off ] [ Block3 Zap3Off ] [ Block4 Zap4Off ] [ ZapSmallOff ]\n\nlate [ ZapSmallOff no Anything ] [ Zap1Off no Anything ] [ Zap2Off no Anything ] [ Zap3Off no Anything ] [ Zap4Off no Anything ] -> [ ZapSmall ] [ Zap1 ] [ Zap2 ] [ Zap3 ] [ Zap4 ]\n\n(late [ Player no Trampled ] -> [ Player Trampled ])\n==============\nWINCONDITIONS\n==============\n\nall Target on Pushable\n\n=======\nLEVELS\n=======\n\nmessage gotta get huge\n\n\n############\n#........p.#\n#..........#\n###.oob..###\n###.oo...###\n###......###\n###......###\n#xx......xx#\n#xx......xx#\n############\n\nmessage huge huge huge\n\n########\n#....#*#\n#....#.#\n#....#.#\n#....#@#\n#...oo.#\n###..#.#\n###..#.#\n###z.#.#\n###..#x#\n########\n\nmessage a huge saved is a huge earned\n\n############\n#*.......o@#\n#..........#\n#xx....z...#\n#xx........#\n############\n\nmessage pledge allegiance to the huge\n\n##########..\n#........#..\n#@.o####.#..\n###.##*#.###\n#z.....b...#\n#...o......#\n######.#.###\n######.#.#..\n#x.......#..\n##########..\n\nmessage i am so huge it hurts\n\n############\n#.....b....#\n#..........#\n#..##.##o###\n#...#.##.###\n#...#.*..@x#\n#.z.########\n##.o#.......\n##.x#.......\n#####.......\n\nmessage live by the huge die by the huge\n\n#########\n#...*..x#\n#..######\n##....o.#\n##..#..@#\n##......#\n#####.o.#\n#....o###\n#z...o.##\n#....o.##\n#########\n\nmessage the good the bad and the huge\n\n###########\n####*.x####\n#####x#####\n#..xx.xx..#\n#..xx.xx..#\n#...o.o...#\n#.ooo.ooo.#\n#...o.o...#\n#z......p.#\n#.........#\n###########\n\nmessage in huge we trust\n\n####.....####.\n#..#.....#..#.\n#..#######..#.\n#.......o0..##\n#........#z..#\n#..####..#...#\n#....#...##..#\n#..#.#.......#\n#..#.0o......#\n#..#.#####..##\n#.@....b....#.\n#...........#.\n##....########\n.#.........*x#\n.#############\n\nmessage my bigness is perfection\n\n",[1,0,0,1,1,2,2,1,1,1,1,1,3,2,2,2,2,2,1,1,2,2],"background wall:0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,background:1,1,1,1,1,background zap1:2,background zap3:3,0,\n0,0,0,1,1,background block:4,4,1,background zap2:5,background zap4:6,0,\n0,0,0,background target:7,7,1,1,background playersmall:8,4,1,0,\n0,background zapsmall:9,0,7,7,1,4,4,1,1,0,\n0,1,7,1,1,1,4,4,1,1,0,\n0,7,0,7,7,4,1,1,1,1,0,\n0,0,0,7,7,4,1,1,1,1,0,\n0,0,0,1,1,4,1,1,1,1,0,\n0,0,0,1,1,1,1,1,1,1,0,\n0,0,0,0,0,0,0,0,0,0,0,\n",13,"1397266323534.4998"]
	],
	[
		"legend of zokoban",
		["title The Legend of Zokoban\nauthor Joshua Minor\nhomepage pixelverse.org\nflickscreen 9x7\n\n========\nOBJECTS\n========\n\nBackground \nyellow orange\n00000\n01000\n00001\n00100\n10000\n\nWater \nblue lightblue\n00000\n01000\n00001\n00100\n10000\n\nCave \nDarkBlue\n00000\n00000\n00000\n00000\n00000\n\nGoal \nDarkBlue Red\n00000\n00000\n00100\n00000\n00000\n\nRockWall \nBROWN Orange\n01110\n10000\n10010\n10000\n00100\n\nStoneWall \ndarkgrey grey\n01110\n10000\n10010\n10000\n00100\n\nPlayerWithoutSword\nGREEN lightgreen \n.00..\n00000\n.000.\n.111.\n00.00\n\nPlayerWithSword\nGREEN lightgreen white grey\n.002.\n00020\n.0222\n.110.\n00.00\n\nSword \ngrey white \n..1..\n..1..\n.111.\n..0..\n.....\n\nBlock \nBROWN Orange darkgrey\n.111.\n10001\n10002\n10002\n.222.\n\nEasyBaddie\nwhite red \n.111.\n10101\n11111\n11111\n11.11\n\nMoney\nwhite lightblue\n..1..\n.001.\n10111\n.111.\n..1..\n\n=======\nLEGEND\n=======\n\nWall = StoneWall or RockWall\nSolid = Wall or Block or Water\nPlayer = PlayerWithoutSword or PlayerWithSword\nObstacle = Wall or Block or Player or Water\nBaddie = EasyBaddie\n\n. = Background\n# = RockWall\nS = StoneWall\nP = PlayerWithoutSword\n* = Block\n@ = Block and Cave\nO = Cave\nw = Water\n1 = EasyBaddie\n+ = Sword\nG = Goal\n\n=======\nSOUNDS\n=======\n\nStartLevel 40430108 (music-ish)\nSFX0 16358103 (power up)\nSFX1 84057304 (push)\nSFX2 74654508 (stairs)\nSFX3 21293301 (fight)\nSFX4 49521903 (hurt)\nSFX5 47598700 (money)\nShowMessage 82693708 (you win!)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nCave, Goal\nPlayer, Wall, Block, Water, EasyBaddie\nSword, Money\n\n======\nRULES \n====== \n\n(baddies move at random)\n[ Stationary Baddie ] -> [ RandomDir Baddie ]\n\n(player can push blocks)\n[ > Player | Block ] -> [ > Player | > Block ] SFX1\n\n(blocks pushed into water become land)\n[ > Block | Water ] -> [ | ]\n\n(baddies can attack the player w/o sword)\n[ > Baddie | Player No Sword ] -> SFX4\n\n(player can pick up sword)\n([ > Player | Sword ] -> [ | Player Sword ] SFX0)\n[ PlayerWithoutSword Sword ] -> [ PlayerWithSword ] SFX0\n\n(player with sword can kill baddies & leave money)\n[ > PlayerWithSword | Baddie ] -> [ PlayerWithSword | Money ] SFX3\n(sword moves with player)\n([ > Player Sword ] -> [ > Player > Sword ])\n(sword doesn't move into obstacles)\n([ > Sword | Stationary Obstacle ] -> [ Sword | Stationary Obstacle ])\n\n(player can pick up money)\n[ > Player | Money ] -> [ | Player ] SFX5\n\n(blocks pushed into caves, teleport to other end of cave)\nrandom [ Moving Block Cave | ... | Cave ] -> [ Cave | ... | Block Cave ]\n(blocks sitting on cave exits will roll aside to let player follow them)\nlate random [ Block Cave | No Obstacle ] -> [ Cave | Block ]\n(players can enter caves - teleporting to orthogonally matching cave)\nlate random [ Player Cave | ... | Cave ] -> [ Cave | ... | Player Cave ] SFX2\n(sword follows player through the cave)\n(late random [ Sword Cave | ... | Cave ] -> [ Cave | ... | Sword Cave ])\n\n\n==============\nWINCONDITIONS\n==============\n\n\n======= \nLEVELS\n=======\n\nsssssssss#################wwwwwwwwww\nss.s1s..s#1#####.##..1..1.wwwwww..ww\ns.......s#.#####.##.#.#.#.wwwww..*.w\ns..*....o#.##o##.............ww....w\ns.s....ss#..........#.*.#....ww..1.w\nsss.s.sss##...............wwwwww..ww\nsssssssss#####..#####.....wwwwwwwwww\nsssssssss#####..#####.....wwwwwwwwww\nss1...sss#####..####.....wwww.....ww\ns......os##o#....##...#.1www..s.s..w\ns..+...ss#.......##*......ww...g...w\nss.....ss#...p..........#.ww..s.s.1w\nssss..sss##.....###..#.1..www..1..ww\nsssssssss#################wwwwwwwwww\n\nmessage Congratulations!\n",[1,1,0,0,0,0,1,1,1,1,2,3,3,3,0,3,3,3,3,3,2,3,3,2,3,3,3,0,0,0,0,0,0,1,0,0,1,1,1,1,1,0,1,1,2,1,2,0,3,1,2,2,0,3,3,3,3,3,3,3,2,1,2,3,3,2,3,0,1,0,3,3,3,3,0,3,3,1,1,2,3,2,0,0,3,2,1,2,3,3,1,0,0,3,2,3,2,2,2,2,2,2,2,2,1,2,3,3,3,3,3,3,1,1,1,1,1,1,0,1,2,3,0,3,0,3,0,0,0,0,1,1,2,1,1,1,1,1,1,2,2,2,2,2,2,3,3,3,3,3,3,3,2,3,0,1,0,3,3,3,3,3,3,3,3],"background stonewall:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background:1,1,1,0,0,0,0,1,1,0,0,0,0,1,1,1,0,0,0,0,\n1,1,1,1,0,0,0,0,1,1,1,1,0,0,1,1,1,1,0,0,0,1,1,1,1,0,0,0,1,1,1,1,1,0,0,0,\n1,1,1,1,0,0,1,1,1,1,1,0,0,1,1,1,1,0,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,0,0,background cave:2,\n0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,background rockwall:3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,\nbackground easybaddie:4,3,3,3,3,3,1,1,3,3,3,3,3,3,1,1,3,3,3,2,1,1,1,3,3,3,3,3,1,1,3,3,3,3,1,1,\n1,3,3,3,3,2,1,1,3,3,3,1,1,1,1,3,3,3,3,3,1,1,1,1,1,1,1,1,1,3,3,3,3,3,1,1,\n1,1,1,1,1,1,1,3,3,1,1,1,1,1,3,3,3,4,1,1,3,3,3,3,3,1,1,1,3,3,3,3,3,1,3,3,\n3,3,3,1,1,1,3,3,3,3,3,1,3,3,3,1,1,1,1,1,3,3,3,1,1,1,1,3,3,1,3,1,3,1,3,3,\n1,1,1,1,1,3,3,1,1,1,1,1,1,1,1,1,1,1,3,3,3,1,3,background block:5,1,1,1,1,1,3,1,1,1,3,3,1,\n1,1,1,1,1,1,1,1,1,1,4,3,3,4,3,1,3,1,1,1,1,1,1,3,1,3,3,1,1,1,1,1,1,1,background water:6,6,\n1,1,1,3,6,6,6,1,1,6,6,6,6,6,1,6,6,6,6,6,6,1,1,6,6,6,6,6,1,6,6,6,6,6,6,1,\n1,6,6,6,6,1,1,1,6,6,6,6,6,6,6,6,6,6,1,1,1,1,1,6,6,6,6,6,6,6,6,6,1,0,background playerwithsword:7,0,\n1,6,6,6,1,1,1,6,6,6,4,1,background goal:8,1,1,6,6,1,1,1,4,1,6,6,1,0,1,0,1,6,6,1,5,1,1,1,\n6,6,1,1,1,1,1,6,6,6,1,1,1,6,6,6,6,1,4,1,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,\n",0,"1417791854844.9397"]
	],
	[
		"ebony & ivory",
		["title Ebony & Ivory\nauthor Guilherme Töws\nhomepage zarat.us\n \n========\nOBJECTS\n========\n \nBackground\nPurple\n \nGray\nGRAY\n \nWhite\nWHITE\n \nBlack\nBLACK\n \nPlayerRed\nRed \n.....\n.000.\n.000.\n.000.\n.....\n \nPlayerGold \nYellow \n.....\n.000.\n.000.\n.000.\n.....\n \n \n=======\nLEGEND\n=======\n \n. = White\n, = Black\n# = Gray\n: = PlayerRed and White\n; = PlayerRed and Black\nPlayer = PlayerRed or PlayerGold\n \n=======\nSOUNDS\n=======\n \nSFX0 72488907\n \n================\nCOLLISIONLAYERS\n================\n \nBackground\nBlack, White, Gray\nPlayer\n \n======\nRULES \n====== \n \n[ PlayerGold ] -> [ PlayerRed ]\n[ > Player White | Black ] -> [ > Player White | > Black ] \n[ > Player Black | White ] -> [ > Player Black | > White ] \n[ > Black | White ] -> [ White | Black ] SFX0\n[ > White | Black ] -> [ Black | White ] SFX0\n[ > Player White | Black ] -> [ Player White | Black ] \n[ > Player Black | White ] -> [ Player Black | White ] \n[ > Player | Gray ] -> [ Player | Gray ] \nlate [ Player | PlayerRed ] -> [ Player | PlayerGold ]\n \n==============\nWINCONDITIONs\n==============\n \nNo PlayerRed \n \n======= \nLEVELS\n=======\n \n########\n#..,,,,#\n#.:.,.,#\n#...,,,#\n#.,.,;,#\n#....,,#\n########\n",[3,0,1,3,0,1,0,1,2,2,2,3,3,2,1,1],"background gray:0,0,0,0,0,0,0,0,\nbackground white:1,1,1,1,background playerred white:2,0,0,1,\n1,1,1,1,0,0,background black:3,1,\n1,1,1,0,0,3,3,3,\nbackground black playerred:4,1,0,0,3,3,3,3,\n3,0,0,3,3,3,3,3,\n0,0,0,0,0,0,0,0,\n",0,"1397266474258.7976"]
	],
	[
		"explod",
		["title Explod\nauthor CHz\nhomepage quiteajolt.com\n\n========\nOBJECTS\n========\n\nBackground \nGreen \n\nGoal \nDarkBlue Black\n.111.\n10001\n10001\n10001\n10001\n\nWall \nDarkBrown DarkGray\n00000\n01110\n01110\n01110\n00000\n\nLivePlayer \nPINK\n..0..\n..0..\n.000.\n..0..\n.0.0.\n\nDeadPlayer\nRED\n.....\n.....\n0.0..\n.0000\n0.0..\n\nWater\nBlue\n\nMovementCheck\nBlack\n.....\n.....\n.....\n.....\n.....\n\nExplodingCheck\nBlack\n.....\n.....\n.....\n.....\n.....\n\nUnlitBomb3\nBlack Gray Brown\n...22\n..2..\n.101.\n.000.\n.101.\n\nUnlitBomb2\nBlack Gray Brown\n...2.\n..2..\n.101.\n.000.\n.101.\n\nUnlitBomb1\nBlack Gray Brown\n.....\n..2..\n.101.\n.000.\n.101.\n\n(internal)\nLitBomb4\nBLACK\n\nLitBomb3\nBlack Gray Brown Yellow\n...23\n..2..\n.101.\n.000.\n.101.\n\nLitBomb2\nBlack Gray Brown Yellow\n...3.\n..2..\n.101.\n.000.\n.101.\n\nLitBomb1\nBlack Gray Brown Yellow\n.....\n..3..\n.101.\n.000.\n.101.\n\nExplosion\nRed Orange Yellow\n0.0.0\n.010.\n01210\n.010.\n0.0.0\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = LivePlayer\nG = Goal\nW = Water\n3 = UnlitBomb3\n2 = UnlitBomb2\n1 = UnlitBomb1\n\nPlayer = LivePlayer or DeadPlayer\nBomb = UnlitBomb3 or UnlitBomb2 or UnlitBomb1 or LitBomb4 or LitBomb3 or LitBomb2 or LitBomb1\n\n=======\nSOUNDS\n=======\n\nshowmessage 89095700\nendlevel 83499103\nSFX0 93522108 (explosion)\nSFX1 7122702 (dead)\nSFX2 60043507 (push)\nSFX3 57545505 (lighting a bomb)\nSFX4 47357104 (douse)\nSFX5 10248707 (tick)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nMovementCheck, ExplodingCheck\nGoal, Water\nPlayer, Wall, Bomb\nExplosion\n\n======\nRULES \n======\n\n(don't let a dead player move)\n[ MOVING DeadPlayer ] -> [ STATIONARY DeadPlayer ]\n\n(require movement to tick: set flag under player)\n[ Player ] -> [ Player MovementCheck ]\n\n(if this is the 2nd explosion animation frame, we'll say the player moved so the animation isn't cancelled)\n[ ExplodingCheck ] [ Player MovementCheck ] -> [ ExplodingCheck ] [ Player no MovementCheck ]\n\n(shove bombs)\n[ > LivePlayer | Bomb ] -> [ > LivePlayer | > Bomb ] SFX2\n\n(light bombs that aren't on water; a tick will occur later on this turn, so when we light a bomb we add 1 to its fuse)\n[ Action LivePlayer | UnlitBomb3 No Water ] -> [ Action LivePlayer | LitBomb4 No Water ] SFX3\n[ Action LivePlayer | UnlitBomb2 No Water ] -> [ Action LivePlayer | LitBomb3 No Water ] SFX3\n[ Action LivePlayer | UnlitBomb1 No Water ] -> [ Action LivePlayer | LitBomb2 No Water ] SFX3\n\n(hitting X counts as movement, so clear the movement flag)\n[ Action LivePlayer MovementCheck ] -> [ Action LivePlayer ]\n\n\n(the ticking and movement rules here are fairly order-sensitive 〔ﾟ～ﾟ〕 )\n\n(douse bombs)\nlate [ LitBomb3 Water ] -> [ UnlitBomb3 Water ] SFX4\nlate [ LitBomb2 Water ] -> [ UnlitBomb2 Water ] SFX4\nlate [ LitBomb1 Water ] -> [ UnlitBomb1 Water ] SFX4\n\n(draw/clear explosions)\nlate [ Explosion ] -> [ ]\nlate [ ExplodingCheck ] -> [ ]\nlate [ LitBomb1 ] [ Bomb ] -> [ LitBomb1 ] [ Bomb ExplodingCheck ]\nlate [ LitBomb1 no Explosion ] -> [ LitBomb1 Explosion ] again\nlate [ LitBomb1 | no Explosion ] -> [ LitBomb1 | Explosion ]\n\n(explosions blow things up)\nlate [ LitBomb1 | LivePlayer ] -> [ LitBomb1 | DeadPlayer ] SFX1\nlate [ LitBomb1 | Wall ] -> [ LitBomb1 | ]\nlate [ LitBomb1 | UnlitBomb3 ] -> [ LitBomb1 | LitBomb4 ] SFX3\nlate [ LitBomb1 | UnlitBomb2 ] -> [ LitBomb1 | LitBomb3 ] SFX3\nlate [ LitBomb1 | UnlitBomb1 ] -> [ LitBomb1 | LitBomb2 ] SFX3\nlate [ LitBomb1 ] -> [ ] SFX0\n\n(fuse ticking; if ExplodingCheck is set anywhere, then a bomb exploded this frame, so we'll hold off ticking until the next frame so we don't double tick)\nlate [ LitBomb2 no ExplodingCheck ] -> [ LitBomb1 no ExplodingCheck ] SFX5\nlate [ LitBomb3 no ExplodingCheck ] -> [ LitBomb2 no ExplodingCheck ] SFX5\nlate [ LitBomb4 no ExplodingCheck ] -> [ LitBomb3 no ExplodingCheck ]\n\n(require movement to tick: check if the player didn't move and cancel the move if so)\nlate [ Player MovementCheck ] -> CANCEL\nlate [ MovementCheck ] -> [ ]\n\n==============\nWINCONDITIONS\n==============\n\nsome LivePlayer on Goal \n\n======= \nLEVELS\n=======\n\nmessage X lights bombs.\n\n.#...#.\n.#..1#.\n.#...#.\nG#.P2#.\n.#...#.\n.#..3#.\n.#...#.\n\nG#....\n.#.33.\n.#.33.\n.#...P\n\nmessage X causes time to pass too.\n\n3333333.#.\n3333333.#.\n3.3P3.3.#G\n3333333.#.\n3333333.#.\n\n..G..\n#####\n#####\n#####\n.3P3.\n3#3#3\n.###.\n3###3\n.#3#.\n.###.\n\nP#...\n.332.\n###2.\n###2.\nG#.3.\n\n.3.3.3#######\n3.3.3.#######\nP3.3.3######G\n3.3.3.#######\n.3.3.3#######\n\nmessage Water douses lit fuses.\n\n.#.33WP\n.#.33W.\n.#.33W.\nG#.33W.\n\n.3###G###3.\n.3#######3.\n.3WWWWWWW3.\n.3#######3.\n.3#.3P3.#3.\n\nG#W3#\n##W3#\nW.W3.\n..W3.\nP.W3.\n\n........P\n...WWWWW.\n...W333W.\n...W333W.\n#..W333W.\n##.WWWWW.\n###......\n####.....\nG####....\n\nmessage You are an excellent bomb exploder!\n\n",[1,4,3,3,2,2,0,2,0],"background:0,0,0,background goal:1,background wall:2,2,2,\n2,0,0,0,0,0,background litbomb3:3,\nbackground unlitbomb3:4,4,0,0,3,4,background water:5,\n5,5,5,0,background liveplayer:6,0,0,\n",9,"1397266671117.456"]		
	],
	[
		"dungeon janitor",
		["title Dungeon Janitor\nauthor Farbs\nhomepage www.farbs.org\nnoundo\nnoaction\nkey_repeat_interval 0.1\n\n========\nOBJECTS\n========\n\nBackground \nDARKBLUE BLACK\n11111\n10000\n10000\n10000\n10000\n\nEntry\nLIGHTBROWN BROWN DARKBROWN GRAY\n30103\n10101\n10121\n10101\n10101\n\nExitClosed\nLIGHTBROWN BROWN DARKBROWN GRAY\n30103\n10101\n10121\n10101\n10101\n\nExitOpen\nGRAY BLACK DARKBLUE\n01110\n11111\n11111\n11111\n12221\n\nSlime\nLIGHTGREEN GREEN DARKGREEN\n.....\n.....\n.....\n.....\n.....\n\nHead\nLIGHTGREEN GREEN DARKGREEN BLACK\n.000.\n03130\n11111\n23332\n.222.\n\nSlimeU\nLIGHTGREEN GREEN DARKGREEN\n11111\n21112\n.222.\n.....\n.....\n\nSlimeD\nLIGHTGREEN GREEN DARKGREEN\n.....\n.....\n.000.\n01110\n11111\n\nSlimeUD\nLIGHTGREEN GREEN DARKGREEN\n11111\n11111\n11111\n11111\n11111\n\nSlimeL\nLIGHTGREEN GREEN DARKGREEN\n00...\n110..\n111..\n112..\n22...\n\nSlimeR\nLIGHTGREEN GREEN DARKGREEN\n...00\n..011\n..111\n..211\n...22\n\nSlimeLR\nLIGHTGREEN GREEN DARKGREEN\n00000\n11111\n11111\n11111\n22222\n\nSlimeUL\nLIGHTGREEN GREEN DARKGREEN\n11111\n11112\n1112.\n112..\n22...\n\nSlimeUR\nLIGHTGREEN GREEN DARKGREEN\n11111\n21111\n.2111\n..211\n...22\n\nSlimeULR\nLIGHTGREEN GREEN DARKGREEN\n11111\n11111\n11111\n11111\n22222\n\nSlimeDL\nLIGHTGREEN GREEN DARKGREEN\n00...\n110..\n1110.\n11110\n11111\n\nSlimeDR\nLIGHTGREEN GREEN DARKGREEN\n...00\n..011\n.0111\n01111\n11111\n\nSlimeDLR\nLIGHTGREEN GREEN DARKGREEN\n00000\n11111\n11111\n11111\n11111\n\nSlimeUDLR\nLIGHTGREEN GREEN DARKGREEN\n11111\n11111\n11111\n11111\n11111\n\nSlimeSolo\nLIGHTGREEN GREEN DARKGREEN\n.000.\n01110\n11111\n21112\n.222.\n\nWall \nLIGHTGREY GREY \n11111\n01000\n01000\n11111\n00010\n\nPlayerA\nBlack Orange White Blue Brown \n.....\n.11..\n2224.\n333.4\n3.322\n\nPlayerB\nBlack Orange White Blue Brown \n.....\n.11..\n.4222\n4.333\n223.3\n\nTemp\nPINK\n00000\n00000\n00000\n00000\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nE = Wall AND Entry\nP = PlayerA\nO = Slime AND Head\nX = Wall AND ExitClosed\n\nSlimeDecal = SlimeU OR SlimeD OR SlimeUD OR SlimeL OR SlimeR OR SlimeLR OR SlimeUL OR SlimeUR OR SlimeULR OR SlimeDL OR SlimeDR OR SlimeDLR OR SlimeUDLR OR SlimeSolo\nPlayer = PlayerA OR PlayerB\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nSlime\nSlimeU, SlimeD, SlimeUD, SlimeL, SlimeR, SlimeLR, SlimeUL, SlimeUR, SlimeULR, SlimeDL, SlimeDR, SlimeDLR, SlimeUDLR, SlimeSolo, ExitOpen\nPlayer, Wall, PlayerA, PlayerB, Temp\nHead, Entry, ExitClosed\n\n======\nRULES \n====== \n\n(Stomp Heads)\n[ > Player | Head ] -> [ > Player | NO Head ]\n[ > Player | Slime ] -> [ > Player | NO Slime ]\n\n(New Head)\n[ Head ] -> []\nRANDOM [ Slime NO Player ] -> [ Slime Head ]\n\n(Grow Slime)\n[ Head | NO Slime NO Wall NO Player ] -> [ Head | Slime ] \n\n(Clear Slime from under player)\n[ > Player | Slime ] -> [ > Player | NO Slime ]\nLATE [ Player Slime ] -> [ Player NO Head ]\n\n(Make slime pretty)\n[ SlimeDecal ] ->[ ]\nVERTICAL [ Slime | Slime | Slime ] -> [ Slime | Slime SlimeUD | Slime ]\nUP [ Slime NO SlimeUD | Slime ] -> [ Slime SlimeU | Slime ]\nDOWN [ Slime NO SlimeUD | Slime ] -> [ Slime SlimeD | Slime ]\nHORIZONTAL [ Slime | Slime NO SlimeU NO SlimeD NO SlimeUD | Slime ] -> [ Slime | Slime SlimeLR | Slime ]\nLEFT [ Slime NO SlimeU NO SlimeD NO SlimeUD NO SlimeLR | Slime ] -> [ Slime SlimeL | Slime ]\nRIGHT [ Slime NO SlimeU NO SlimeD NO SlimeUD NO SlimeLR | Slime ] -> [ Slime SlimeR | Slime ]\nHORIZONTAL [ Slime | Slime SlimeU | Slime ] -> [ Slime | Slime SlimeULR | Slime ]\nLEFT [ Slime SlimeU | Slime ] -> [ Slime SlimeUL | Slime ]\nRIGHT [ Slime SlimeU | Slime ] -> [ Slime SlimeUR | Slime ]\nHORIZONTAL [ Slime | Slime SlimeD | Slime ] -> [ Slime | Slime SlimeDLR | Slime ]\nLEFT [ Slime SlimeD | Slime ] -> [ Slime SlimeDL | Slime ]\nRIGHT [ Slime SlimeD | Slime ] -> [ Slime SlimeDR | Slime ]\n[ Slime NO SlimeDecal ] -> [ Slime SlimeSolo ]\n\n( Shut the door if slime still around)\n( Have to open it first unfortunately )\n[ ExitClosed Wall ] -> [ ExitOpen ]\n[ ExitOpen ][ Slime ] -> [ ExitClosed Wall ][ Slime ]\n\n(Player Anim)\n[ LEFT PlayerB ] -> [ LEFT PlayerA ]\n[ RIGHT PlayerA ] -> [ RIGHT PlayerB ]\nLATE [ PlayerA ] -> [ Temp ]\nLATE [ PlayerB ] -> [ PlayerA ]\nLATE [ Temp ] -> [ PlayerB ]\n==============\nWINCONDITIONS\n==============\n\nALL Player ON ExitOpen\n\n======= \nLEVELS\n=======\n\nMESSAGE It's Thursday.\nMESSAGE Today I mop the slime pit.\n\n\n##X##\n##.##\n##.##\n##O##\n##.##\n##P##\n##E##\n\nMESSAGE Damn slime sticking to my shoes.\n\n..####..\n..#O.#..\n###..###\n#......#\n#P#..#.#\n#E#..#X#\n..####..\n\nMESSAGE Goes SHLUCK SHCLUK when I walk.\n\n######X#############\n###......#...#...###\n###.##.#...#...#...#\n##.....###########.#\n#..#.#.....#.......#\n#.##.###.#.##.######\n#......#.#.#.O.....#\n#.####.#.#.#.#####.#\n#P.....#.#.........#\n#E##################\n\nMESSAGE Last room before home.\nMESSAGE This one can take a while.\n\n##########X#########\n#..................#\n#..................#\n#..#######.######..#\n#..#.#...#.#.#..#..#\n#..#...#.#.#.#..#..#\n#..#.....#.#.#..#..#\n#..##....#.#...##..#\n#..#............#..#\n#..#......O.....#..#\n#..#............#..#\n#..#............#..#\n#..##############..#\n#.........P........#\n##########E#########\n\nMESSAGE Done for the day. Back tomorrow.\nMESSAGE Fridays is rat scrubbing day.\n",[0,0,0,0,0,3,3,3,0,3,3,3,3,3,3,3,0,0,0,3,3,3,2,3,2,2,3,3,0,3,3,3,3,2,3,2,3,3,0,3,3,3,2,3,2,3,2,3,2,2,1,1,1,1,1,1,3,3,2,2,2,1,2,2,3,3,3,3,3,2,2,1,1,1,1,1,1],"background wall:0,0,0,0,0,0,0,0,0,0,0,0,0,0,background:1,1,1,1,1,background entry wall:2,\n0,0,0,1,1,0,1,0,1,0,0,1,1,1,0,0,1,0,1,0,\n0,1,0,1,1,1,1,0,1,0,0,1,0,1,0,0,1,0,1,0,\nbackground exitclosed wall:3,1,1,1,1,0,1,1,1,0,0,1,0,0,1,0,0,0,0,0,\n0,1,1,0,1,1,1,1,1,0,0,0,1,0,1,0,0,0,0,0,\n0,1,1,0,1,background slime slimed:4,background slime slimeud:5,5,background slime slimeur:6,0,0,1,0,0,0,0,0,0,background slime slimel:7,0,\n0,1,1,0,1,0,background head slime slimedr:8,background slime slimeu:9,background playerb:10,0,0,0,1,0,1,1,7,0,1,0,\n0,1,1,0,1,0,1,0,1,0,0,1,0,0,1,0,1,0,1,0,\n0,1,1,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0,\n0,0,1,1,1,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,\n",6,"1397266724723.82"]
	],
	[
		"icycrates",
		["title IceCrates\nauthor Tyler Glaiel\nhomepage twitter.com/tylerglaiel\nrun_rules_on_level_start true\nnoaction\n\n========\nOBJECTS\n========\n\nBackground \nDarkBlue White LightBlue \n22112\n21122\n11222\n12221\n22211\n\n\n\n\nWall_0000\nDarkBlue Gray DarkGray DarkGray Gray\n10001\n00000\n00000\n00000\n30003\n\nWall_0001\nDarkBlue Gray DarkGray DarkGray Gray\n11111\n00000\n00000\n00000\n30003\n\nWall_0010\nDarkBlue Gray DarkGray DarkGray Gray\n10002\n00002\n00002\n00002\n30002\n\nWall_0011\nDarkBlue Gray DarkGray DarkGray Gray\n11111\n00002\n00002\n00002\n30002\n\nWall_0100\nDarkBlue Gray DarkGray DarkGray Gray\n10001\n00000\n00000\n00000\n33333\n\nWall_0101\nDarkBlue Gray DarkGray DarkGray Gray\n11111\n00000\n00000\n00000\n33333\n\nWall_0110\nDarkBlue Gray DarkGray DarkGray Gray\n10002\n00002\n00002\n00002\n33333\n\nWall_0111\nDarkBlue Gray DarkGray DarkGray Gray\n11111\n00002\n00002\n00002\n33333\n\nWall_1000\nDarkBlue Gray DarkGray DarkGray Gray\n40001\n40000\n40000\n40000\n40003\n\nWall_1001\nDarkBlue Gray DarkGray DarkGray Gray\n11111\n40000\n40000\n40000\n40003\n\nWall_1010\nDarkBlue Gray DarkGray DarkGray Gray\n40002\n40002\n40002\n40002\n40002\n\nWall_1011\nDarkBlue Gray DarkGray DarkGray Gray\n11111\n40002\n40002\n40002\n40002\n\nWall_1100\nDarkBlue Gray DarkGray DarkGray Gray\n40001\n40000\n40000\n40000\n33333\n\nWall_1101\nDarkBlue Gray DarkGray DarkGray Gray\n11111\n40000\n40000\n40000\n33333\n\nWall_1110\nDarkBlue Gray DarkGray DarkGray Gray\n40002\n40002\n40002\n40002\n33333\n\nWall_1111\nDarkBlue Gray DarkGray DarkGray Gray\n11111\n40002\n40002\n40002\n33333\n\n\n\nPlayerStill\nRed Orange DarkGrey Gray Black\n.000.\n01110\n04140\n01210\n.333.\n\nPlayerL\nRed Orange DarkGrey Gray Black\n.000.\n04110\n01410\n02110\n.333.\n\nPlayerR\nRed Orange DarkGrey Gray Black\n.000.\n01140\n01410\n01120\n.333.\n\nPlayerU\nRed Orange DarkGrey Gray Black\n.000.\n04140\n01110\n01210\n.333.\n\nPlayerD\nRed Orange DarkGrey Gray Black\n.000.\n01110\n01110\n04240\n.333.\n\n\nCrate \nBrown Yellow Orange\n11111\n10002\n10002\n10002\n22222\n\n\nWater1 \nBlue LightBlue\n00000\n01100\n10011\n00000\n01100\n\nWater2 \nBlue LightBlue\n00000\n00110\n11001\n00000\n00110\n\nWater3 \nBlue LightBlue\n00000\n00011\n11100\n00000\n00011\n\nWater4 \nBlue LightBlue\n00000\n10001\n01110\n00000\n10001\n\nWater5 \nBlue LightBlue\n00000\n11000\n00111\n00000\n11000\n\nWater6 \nBlue LightBlue\n00000\n01100\n10011\n00000\n01100\n\nFilledWater \nLightBrown LightBlue White\n11111\n10002\n10002\n10002\n22222\n\nGoal \nBlack Green DarkGreen\n..12.\n.112.\n1112.\n...2.\n...2.\n\n\n\nStillCrate \nOrange\n\n\n\n=======\nLEGEND\n=======\n\nWall = Wall_0000 or Wall_0001 or Wall_0010 or Wall_0011 or Wall_0100 or Wall_0101 or Wall_0110 or Wall_0111 or Wall_1000 or Wall_1001 or Wall_1010 or Wall_1011 or Wall_1100 or Wall_1101 or Wall_1110 or Wall_1111\n\nWater = Water1 or Water2 or Water3 or Water4 or Water5 or Water6\n\n. = Background\n# = Wall_1111\nP = PlayerStill\n* = Crate\nW = Water1\nG = Goal\n(@ = Crate and Target\nO = Target)\n\nPlayer = PlayerStill or PlayerL or PlayerR or PlayerU or PlayerD\nObstacle = Wall or StillCrate or Water\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nFilledWater\nGoal\n(Target)\nPlayer, Wall, Crate, StillCrate, Water\n\n======\nRULES \n====== \n\n( 0001\n\n1000 0010\n\n 0100\n)\n\n(make pretty walls)\nRight [Wall | Wall_1111 | Wall] -> [Wall | Wall_0101 | Wall]\nRight [Wall_1111 | Wall] -> [Wall_1101 | Wall]\nRight [Wall | Wall_1111] -> [Wall | Wall_0111]\n\n\nDown [Wall | Wall_1111 | Wall] -> [Wall | Wall_1010 | Wall]\nDown [Wall_1111 | Wall] -> [Wall_1011 | Wall]\nDown [Wall | Wall_1111] -> [Wall | Wall_1110]\n\n\nDown [Wall | Wall_0101 | Wall] -> [Wall | Wall_0000 | Wall]\nDown [Wall_0101 | Wall] -> [Wall_0001 | Wall]\nDown [Wall | Wall_0101] -> [Wall | Wall_0100]\n\n\nDown [Wall | Wall_1101 | Wall] -> [Wall | Wall_1000 | Wall]\nDown [Wall_1101 | Wall] -> [Wall_1001 | Wall]\nDown [Wall | Wall_1101] -> [Wall | Wall_1100]\n\n\nDown [Wall | Wall_0111 | Wall] -> [Wall | Wall_0010 | Wall]\nDown [Wall_0111 | Wall] -> [Wall_0011 | Wall]\nDown [Wall | Wall_0111] -> [Wall | Wall_0110]\n\n\n(animate water)\n[Water5]->[Water6] \n[Water4]->[Water5] \n[Water3]->[Water4] \n[Water2]->[Water3] \n[Water1]->[Water2] \n\n[Water6]->[Water1] \n\n\n(game logic)\n\n[ LEFT PlayerStill ] -> [ PlayerL ]\nLEFT [ PlayerL | Crate ] -> [ PlayerL | LEFT Crate ] again\nLEFT [ > Crate | Crate ] -> [ > Crate | > Crate ] again\nLEFT [ > Crate | Water ] -> [ | FilledWater]\nLEFT [ > Crate | Obstacle ] -> [StillCrate | Obstacle]\nLEFT [ PlayerL | Obstacle ] -> [ PlayerStill | Obstacle ]\n[ PlayerL ] -> [ LEFT PlayerL ] again\n\n[ RIGHT PlayerStill ] -> [ PlayerR ]\nRIGHT [ PlayerR | Crate ] -> [ PlayerR | RIGHT Crate ] again\nRIGHT [ > Crate | Crate ] -> [ > Crate | > Crate ] again\nRIGHT [ > Crate | Water ] -> [ | FilledWater]\nRIGHT[ > Crate | Obstacle ] -> [StillCrate | Obstacle]\nRIGHT [ PlayerR | Obstacle ] -> [ PlayerStill | Obstacle ]\n[ PlayerR ] -> [ RIGHT PlayerR ] again\n\n[ UP PlayerStill ] -> [ PlayerU ]\nUP [ PlayerU | Crate ] -> [ PlayerU | UP Crate ] again\nUP [ > Crate | Crate ] -> [ > Crate | > Crate ] again\nUP [ > Crate | Water ] -> [ | FilledWater]\nUP [ > Crate | Obstacle ] -> [StillCrate | Obstacle]\nUP [ PlayerU | Obstacle ] -> [ PlayerStill | Obstacle ]\n[ PlayerU ] -> [ UP PlayerU ] again\n\n[ DOWN PlayerStill ] -> [ PlayerD ]\nDOWN [ PlayerD | Crate ] -> [ PlayerD | DOWN Crate ] again\nDOWN [ > Crate | Crate ] -> [ > Crate | > Crate ] again\nDOWN [ > Crate | Water ] -> [ | FilledWater]\nDOWN [ > Crate | Obstacle ] -> [StillCrate | Obstacle]\nDOWN [ PlayerD | Obstacle ] -> [ PlayerStill | Obstacle ]\n[ PlayerD ] -> [ DOWN PlayerD ] again\n\n[StillCrate]->[Crate]\n\n\n==============\nWINCONDITIONS\n==============\n\nSome PlayerStill on Goal \n\n======= \nLEVELS\n=======\n\n\n\nmessage Level 1: Get to the Goal\n\n#######\n#g.#..#\n#.....#\n#.....#\n#.#.p.#\n###...#\n#######\n\nmessage Level 2: You must land ON the goal\n\n#########\n#########\n#...g...#\n#.......#\n#....#p.#\n#.......#\n#....#..#\n##....#.#\n#########\n\nmessage Level 3: Push Crates\n\n#########\n####.####\n#.......#\n#..#...g#\n##......#\n#...*.###\n#.....###\n###....p#\n..##....#\n...######\n\n\nmessage Level 4: Fill the Water Hole\n\n###########\n#.........#\n####......#\n#g..W..p..#\n####...#..#\n#..#***.#.#\n#..#......#\n#........##\n##...##..##\n###########\n\nmessage Level 5\n\n#############\n#......#....#\n#...........#\n#........p..#\n##....w.....#\n#..**wgw....#\n#.....w....##\n#.....*.....#\n#.....*.....#\n#...........#\n#....#......#\n#############\n\nmessage Level 6\n\n##############.\n#...###......#.\n#.#...#....####\n#.#...w..**...#\n#.....#.......#\n#####w#......##\n.##..........#.\n.##..........#.\n###.*........#.\n.###.g....p..#.\n.#.##........#.\n##..##.......#.\n.#############.\n\nmessage You are win congratulations\n\n",[3,2,1,2,0],"background wall_1001:0,background wall_1010:1,background wall_1000:2,1,2,1,1,1,2,background wall_1100:3,background wall_0101:4,\nbackground:5,4,background goal:6,4,5,5,5,background wall_0011:7,background wall_0100:8,4,5,\n4,5,4,5,5,5,5,4,4,5,background wall_0111:9,\n5,7,1,background wall_1110:10,5,5,4,4,background playerstill:11,5,background filledwater:12,\n5,5,5,5,5,4,4,5,5,5,5,\nbackground crate:13,5,5,0,8,4,5,5,5,5,13,\n5,5,7,8,4,5,5,5,background wall_1111:14,5,5,\n5,5,4,4,5,5,5,5,14,5,5,\n5,4,4,5,5,5,5,5,5,0,2,\n8,7,1,1,1,1,1,1,background wall_0010:15,15,background wall_0110:16,\n",7,"1397266762189.0361"]		
	],
	[
		"armageddon",
		["title MC Escher's Equestrian Armageddon\nauthor Anna Clarke\nhomepage www.puzzlescript.net\nagain_interval 0.2\n\n========\nOBJECTS\n========\n\nBackground \nBLACK DARKBLUE\n11111\n01111\n11101\n11111 \n10111 \n\n\nTarget \nDarkBlue \n..... \n.000.\n.0.0.\n.000.\n..... \n\nWall \nBROWN DARKBROWN \n00010\n11111\n01000\n11111\n00010\n\nSteps1 \nBROWN DARKBROWN GREEN \n....0\n...11\n..000\n.1111\n00010\n\nSteps2 \nBROWN DARKBROWN GREEN \n0....\n11...\n010..\n1111.\n00010\n\n\nSteps3 \nBROWN DARKBROWN GREEN \n00010\n.1111\n..000\n...11\n....0\n\nSteps4 \nBROWN DARKBROWN GREEN \n00010\n1111.\n010..\n11...\n0....\n\nPlayer1 \nBlack Orange White Blue \n.000.\n.111.\n22222\n.333.\n.3.3.\n\nPlayer2 \nBlack Orange White Blue \n..2..\n01233\n0123.\n01233\n..2..\n\nPlayer3 \nBlack Orange White Blue \n..2..\n33210\n.3210\n33210\n..2..\n\nPlayer4 \nBlack Orange White Blue \n.3.3.\n.333.\n22222\n.111.\n.000.\n\nHorse\nOrange Brown\n...0.\n...00\n0110.\n0000.\n0..0.\n\nBlood\nRed\n.....\n.....\n.....\n.....\n00000\n\nCrate\nOrange Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\n\n=======\nLEGEND\n=======\n\n. = Background\nB = Blood\n# = Wall\n1 = Steps1\n2 = Steps2\n3 = Steps3\n4 = Steps4\nSteps = Steps1 or Steps2 or Steps3 or Steps4\n\nP = Player1\nQ = Player2\n\nPlayer = Player1 or Player2 or Player3 or Player4\n\nH = Horse\n\nAnimated = Player or Horse\n* = Crate\n@ = Crate and Target\nO = Target\n\nSolid = Wall or Steps or Horse or Player\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nBlood\nTarget\nPlayer1, Player2, Player3, Player4, Wall, Crate, Steps, Horse\n\n======\nRULES \n====== \n\n\n[ > Player1 ] -> [> Player1] again\nDOWN [ Player1 | No Solid ] -> [ | Player1 ] again\n\n[ > Player2 ] -> [> Player2] again\nright [ Player2 | No Solid ] -> [ | Player2 ] again\n\n[ > Player3 ] -> [> Player3] again\nleft [ Player3 | No Solid ] -> [ | Player3 ] again\n\n[ > Player4 ] -> [> Player4] again\nup [ Player4 | No Solid ] -> [ | Player4 ] again\n\nright [ right Player1 | Steps1 ] -> [ up Player2 | Steps1 ] again\nleft [ left Player1 | Steps2 ] -> [ up Player3 | Steps2 ] again\n\ndown [ down Player2 | Steps1 ] -> [ left Player1 | Steps1 ] again\nup [ up Player2 | Steps3 ] -> [ left Player4 | Steps3 ] again\n\ndown [ down Player3 | Steps2 ] -> [ right Player1 | Steps2 ] again\nup [ up Player3 | Steps4 ] -> [ right Player4 | Steps4 ] again\n\nleft [ left Player4 | Steps4 ] -> [ down Player3 | Steps4 ] again\nright [ right Player4 | Steps3 ] -> [down Player2 | Steps3 ] again\n\n[ > Horse ] -> [> Horse] again\nDOWN [ Horse | No Solid ] -> [ | Horse ] again\n\n[ Action Player | Horse ] -> [ Action Player | Blood ]\n\n==============\nWINCONDITIONS\n==============\n \nNo Horse\n\n======= \nLEVELS\n=======\n#################\n#.....######....#\n#.....######....#\n#.P.............#\n####.........H..#\n#################\n\n#######\n#4...3#\n#.....#\n#....Q#\n#.....#\n#.....#\n#2.H.1#\n#######\n\n\n####################\n#4..3..3###4......3#\n#.......3#4........#\n#...H....#.....1...#\n#...P.........1#...#\n#2.1#2.H1##..1##.H.#\n####################\n\n\n###########################################\n#4........................3#\n#..........................#\n#.................####.....#\n#2P..............H####2....#\n#########################..#\n######4.....................#\n######.......................#\n######........................#\n######.........................#\n######.........................#\n######.....##..................#\n######2.H..##2.............2..1#\n###################........#####\n###################........4..3#\n###################............#\n#4.............................#\n#.................#............#\n#2......H........##H......H..1##\n##########################################\n\n",[3,3,3,3,3,3,4,3,3,3,3,3,3,3,3,4,4,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,0,0,3,3,3,3,3,3,3,3,3,3,3,3],"background wall:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background steps4:1,background:2,2,background steps2:3,0,0,0,0,0,0,0,0,0,0,0,1,2,3,0,0,2,2,\n2,2,0,0,0,0,0,0,0,0,0,0,0,2,2,2,0,0,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,2,2,2,0,0,2,2,2,2,0,\n0,0,0,0,0,0,0,0,0,0,2,2,2,0,0,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,2,2,2,0,0,2,2,2,2,0,1,2,2,\n2,2,2,3,0,0,0,2,2,2,0,0,2,2,2,2,0,2,2,2,2,2,2,2,0,0,0,2,2,2,0,0,2,2,2,2,0,2,2,2,2,2,2,\nbackground horse:4,0,0,0,2,2,4,0,0,2,2,2,2,0,2,2,2,2,2,2,2,0,0,0,2,2,2,0,0,2,2,2,2,0,2,2,2,2,2,2,2,0,0,\n0,2,2,2,0,0,2,2,2,2,0,2,2,2,2,2,0,0,0,0,0,2,2,2,0,0,2,2,2,2,0,2,2,2,2,2,0,0,0,0,0,2,2,\n2,0,0,2,2,2,2,0,2,2,2,2,2,2,3,0,0,0,2,2,2,0,0,background player4:5,2,2,2,0,2,2,2,2,2,2,2,0,0,0,2,2,2,0,0,\n2,2,2,2,0,2,2,2,2,2,2,2,0,0,0,2,2,2,0,0,2,2,2,2,0,2,2,2,2,2,2,2,0,0,0,2,2,2,0,0,2,2,2,\nbackground blood:6,0,2,2,2,2,2,2,2,0,0,0,2,2,0,0,0,2,2,0,0,0,2,2,2,2,2,2,2,0,0,0,2,0,0,0,0,2,2,0,0,0,2,\n2,2,2,2,2,2,2,2,2,2,2,4,0,0,2,2,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,2,2,0,0,0,2,2,2,2,\n2,2,2,2,2,2,2,2,2,0,0,2,2,2,3,0,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,2,2,2,2,0,2,2,2,2,2,2,2,\n2,2,2,2,2,2,0,0,2,2,2,2,0,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,\n2,2,2,0,0,background steps3:7,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,4,0,0,0,0,0,0,0,2,2,2,2,2,2,3,0,1,2,2,2,2,\n0,0,0,0,0,0,0,0,2,2,2,2,2,2,0,2,2,2,2,2,0,0,0,0,0,0,0,0,0,2,2,2,2,2,0,2,2,2,2,background steps1:8,0,0,0,\n0,0,0,0,0,0,0,2,2,2,8,0,7,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n",3,"1397266804318.573"]
	],
	[
		"love and pieces",
		["title Love and Pieces\nauthor lexaloffle\nhomepage www.lexaloffle.com\n\n========\nOBJECTS\n========\n\nBackground \nWhite LightBlue\n00000\n01110\n01110\n01110\n00000\n\n\nWall \nDarkBlue Black DarkGray LightGray White\n23330\n22300\n22100\n21110\n11111\n\nPlayer \nYellow Orange Red White LightBrown\n20002\n01130\n01110\n04110\n20002\n\nGrayBlock\nGray DarkGray Green\n10001\n01210\n02220\n01210\n10001\n\nLitBlock\nGreen DarkGray\n00000\n01110\n01110\n01110\n00000\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\no = GrayBlock\nBlock = GrayBlock or Player\n\n=======\nSOUNDS\n=======\n\nGrayBlock MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Wall, GrayBlock, LitBlock\n\n======\nRULES \n====== \n\n[ > Player | Wall ] -> cancel\nlate [ Player | GrayBlock ] -> [ Player | Player ] \n\n==============\nWINCONDITIONS\n==============\n\nNo GrayBlock\n\n======= \nLEVELS\n=======\n\n\n\n############\n#...#......#\n#..........#\n#.p..o..o..#\n#..........#\n#..#.......#\n#..........#\n#......#...#\n#..........#\n############\n\n############\n#..........#\n#..........#\n#....#o....#\n#..#.o.#...#\n#....#.....#\n#....o.....#\n#.o......p.#\n#..........#\n############\n\n############\n#o...o.....#\n#.o...o....#\n#..o...o...#\n#...o...o..#\n#o...o...o.#\n#.o...o...o#\n#..o...o.p.#\n#...o...o..#\n############\n\n############\n#..........#\n#..o....o..#\n#.p#....#o.#\n#..........#\n#..........#\n#.o#....#o.#\n#..o....o..#\n#..........#\n############\n\n\n############\n#..o.......#\n#.....oo...#\n#...o......#\n#.o#..p..o.#\n#....o.....#\n#..o....o..#\n#o.o...#...#\n#...o...o..#\n############\n\n############\n#p.o.......#\n#..........#\n#.o..o...###\n#........###\n###.o......#\n###......o.#\n#o.....##..#\n#......##.o#\n############\n\n\n############\n#........o.#\n#..o.##....#\n#....o.o...#\n#.#......#.#\n#.#..p.o.#.#\n#..o.......#\n#....##....#\n#.o......o.#\n############\n\n\n############\n###........#\n##....o.o..#\n#....#.#...#\n#...o.o.o..#\n#....#.#...#\n#...o.o....#\n##........##\n###.p....###\n############\n\n\n###########o\n#....p....##\n#....p.....#\n#...ppp....# \n#ppppppppp.#\n#...ppp....#\n#..ppppp...#\n#.pp...pp..#\n#.p.....p..#\n############\n\n",[0,3,3,3,0,3,3,3,3,2,2,2,2,1],"background wall:0,0,0,0,0,0,0,0,0,0,0,background:1,\n1,1,1,1,1,1,1,0,0,1,1,1,\n1,1,background grayblock:2,1,1,0,0,1,1,0,1,1,\n0,2,1,0,0,1,1,1,1,1,1,1,\n1,0,0,1,1,1,1,1,1,1,1,0,\n0,1,1,1,1,1,1,1,1,0,0,1,\n1,1,1,1,1,background player:3,1,0,0,1,1,0,\n1,3,0,3,1,0,0,1,1,1,1,3,\n3,3,1,0,0,1,1,1,1,1,1,1,\n1,0,0,0,0,0,0,0,0,0,0,0,\n",3,"1397266871664.369"]
	],
	[
		"it dies in the light",
		["title It Dies In The Light\nauthor Christopher Wells\nhomepage www.tophwells.com\n\nnoaction\nrun_rules_on_level_start\nagain_interval 0.05\n\n========\nOBJECTS\n========\n\nBackgroundNeutral\nLIGHTGray Gray\n11011\n10101\n01110\n10101 \n11011 \n\nBackgroundDark\nBlack\n\nWall \nLightblue Blue\n00010\n11111\n01000\n11111\n00010\n\nLivePlayer \nBlack LightRed White Blue \n.000.\n.111.\n12321\n.232.\n.222.\n\nCorpse\nLightGrey\n.000.\n.0.0.\n0.0.0\n..0..\n.0.0.\n\nCrate\nOrange LightBrown Brown\n.222.\n21012\n20102\n21012\n.222.\n\nGoldCrate\nWhite Yellow Orange\n.222.\n21012\n20002\n21012\n.222.\n\nGlassCrate\nWhite\n.000.\n0...0\n0...0\n0...0\n.000.\n\nPrism\nLightBlue White\n.000.\n00110\n00010\n00000\n.000.\n\nActivePrism\nLightBlue White Yellow\n.000.\n02120\n01110\n02120\n.000.\n\nGlass\nWhite\n00000\n0...0\n0...0\n0...0\n00000\n\nBeamVert\nWhite Yellow\n.101.\n.101.\n.101.\n.101.\n.101.\n\nBeamHor\nWhite Yellow\n.....\n11111\n00000\n11111\n.....\n\nBeamCross\nWhite Yellow\n.101.\n11011\n00000\n11011\n.101.\n\nShadow\nPurple\n0.0.0\n.0.0.\n0.0.0\n.0.0.\n0.0.0\n\nTempShadow\nPurple\n0.0.0\n.0.0.\n0.0.0\n.0.0.\n0.0.0\n\n=======\nLEGEND\n=======\n\n. = BackgroundNeutral\n# = Wall\nP = LivePlayer\nC = Crate\nG = GoldCrate\nS = Shadow\nX = Prism\nO = Glass\n\nBackground = BackgroundNeutral or BackgroundDark\nPlayer = LivePlayer or Corpse\nLight = BeamVert or BeamHor or BeamCross\nHlight = BeamHor or BeamCross\nVlight = BeamVert or BeamCross\nOpaque = Player or Crate or Wall or GoldCrate\nPushable = Crate or GoldCrate or Prism or GlassCrate\n\n\n=======\nSOUNDS\n=======\n\nSFX0 93002904\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nBeamVert, BeamHor, BeamCross, Shadow, TempShadow\nPlayer, Corpse, Wall, Crate, GoldCrate, GlassCrate, Prism, ActivePrism, Glass\n\n======\nRULES \n====== \n\n[> Corpse] -> RESTART\n[Light] -> []\n[ActivePrism] -> [Prism]\n[ > Player | Pushable ] -> [ > Player | > Pushable ]\nlate HORIZONTAL [GoldCrate|no Opaque no Light] -> [GoldCrate | BeamHor]\nlate VERTICAL [GoldCrate|no Opaque no Light] -> [GoldCrate | BeamVert]\nlate VERTICAL [GoldCrate|no Opaque BeamHor] -> [GoldCrate | BeamCross]\nlate HORIZONTAL [Hlight|no Opaque no Light] -> [Hlight|BeamHor]\n+ late HORIZONTAL [Hlight|no Opaque BeamVert] -> [Hlight|BeamCross]\n+ late VERTICAL [Vlight|no Opaque no Light] -> [Vlight|BeamVert]\n+ late VERTICAL [Vlight|no Opaque BeamHor] -> [Vlight|BeamCross]\n+ late [Light Prism] ->[BeamCross ActivePrism]\nlate [Shadow Pushable] -> [Pushable]\nlate [TempShadow] -> [Shadow]\nlate [Shadow | no Light no Wall no Pushable no Glass no Shadow] -> [shadow | Tempshadow] again\nlate [Shadow] -> [Shadow BackgroundDark]\nlate [TempShadow] -> [TempShadow BackgroundDark]\nlate [no Shadow no TempShadow] -> [no Shadow BackgroundNeutral]\nlate [Shadow Player] -> [Shadow Corpse]\n\n==============\nWINCONDITIONS\n==============\n\nno Shadow\n\n======= \nLEVELS\n=======\n\n......####.\n..#####ss#.\n###ssssss#.\n#..ssscss##\n#..#s#s#ss#\n#.g#s#ssss#\n#p.#s#ssss#\n#..css#sss#\n###########\n\n........########.\n........#...#.C#.\n...######...GC.##\n...#..CsssssO.C.#\n...#P.Csss#sO.CC#\n...#..Csss#sO#..#\n########ss#s....#\n#ssssssOss#s#####\n#sssssssss###....\n#########s#......\n........###......\n\n##########\n###G#G#G##\n##P......#\n#G.......#\n##..C....#\n#G.......#\n##..C....#\n#G.......#\n##......S#\n##########\n\n........########\n........#......#\n#########..#o#.#\n#........gooxo.#\n#g#####c#.sso#s#\n#.ssssss#.ss.ss#\n##soooss#.ss##s#\n##c.p.c###ss#ss#\n##.....#ssss#ss#\n#...g.......#ss#\n#########.xx#ss#\n........##sssss#\n.........#######\n\nMESSAGE Earth is safe once again.\n",[3,3,3,3,3,2,2,2,2,2,1,3,3,3,3,3,2,2,1,1,2,1,1,2],"backgroundneutral wall:0,0,0,0,0,0,0,0,0,0,\n0,0,0,backgroundneutral goldcrate:1,0,1,0,1,0,0,\n0,0,backgroundneutral:2,backgroundneutral beamhor:3,2,3,2,3,backgrounddark shadow:4,0,\n0,1,backgroundneutral beamvert:5,backgroundneutral beamcross:6,5,6,backgroundneutral liveplayer:7,3,4,0,\n0,0,2,3,backgroundneutral crate:8,3,8,3,4,0,\n0,1,5,6,5,6,5,6,5,0,\n0,0,2,3,2,3,2,3,4,0,\n0,1,5,6,5,6,5,6,5,0,\n0,0,2,3,2,3,2,3,4,0,\n0,0,0,0,0,0,0,0,0,0,\n",2,"1397266942631.7705"]
	],
	[
		"limerick",
		["title Lime Rick\nauthor Tommi Tuovinen\nhomepage http://www.kissmaj7.com/\n\n(\n\nPorted with the very gracious permission of Tommi Touvinen\n\nThe First eleven levels of a neato game - you can play the full version here \n\nhttp://www.kongregate.com/games/KissMaj7/lime-rick\n\nthe full version includes some mechanics that aren't covered in the levels here, but they are supported.\n)\n\n========\nOBJECTS\n========\n\nBackground\nBlack\n\nExit \nRed\n.000.\n00000\n00000\n00000\n.000.\n\nApple \nBlue\n.000.\n00000\n00000\n00000\n.000.\n\nPlayerBodyH\nGreen\n.000.\n00000\n0...0\n00000\n.000.\n\nPlayerBodyV\nGreen\n.000.\n00.00\n00.00\n00.00\n.000.\n\n\nCrate\nOrange\n00000\n0...0\n0...0\n0...0\n00000\n\nPlayerHead1\nLightGreen\n.000.\n0.0.0\n00000\n00000\n.000.\n\nPlayerHead2\nYellow\n.000.\n0.0.0\n00000\n00000\n.000.\n\n\nPlayerHead3\nOrange\n.000.\n0.0.0\n00000\n00000\n.000.\n\n\nPlayerHead4\nRed\n.000.\n0.0.0\n00000\n00000\n.000.\n\n\n\nWall \nBrown\n\n=======\nLEGEND\n=======\n\nPlayer = PlayerHead1 or PlayerHead2 or PlayerHead3 or PlayerHead4\nObstacle = PlayerBodyH or PlayerBodyV or Wall or Crate or Player\nPlayerBody = PlayerBodyH or PlayerBodyV\n. = Background\nP = PlayerHead1\n# = Wall\nE = Exit\nA = Apple\nC = Crate\n\n=========\nSOUNDS\n=========\nsfx0 3295707 (player jump)\nsfx1 3538707 (player jump to max)\nsfx2 42451307 (player move horizontally)\nendlevel 96434300\nstartgame 49875902\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nExit, Apple\nPlayerBody\nPlayer, Wall, Crate\n\n\n======\nRULES \n====== \n\n(this game handles all the movement stuff itself - it removes all movements before the movement phase has a chance to tick at all)\n\nUP [ UP PlayerHead4 ] -> [ PlayerHead4 ]\nUP [ UP PlayerHead3 | No Obstacle ] -> [ PlayerBodyV | PlayerHead4 ] sfx1\nUP [ UP PlayerHead2 | No Obstacle ] -> [ PlayerBodyV | PlayerHead3 ] sfx0\nUP [ UP PlayerHead1 | No Obstacle ] -> [ PlayerBodyV | PlayerHead2 ] sfx0\n\nHorizontal [ > Player | Crate | No Obstacle ] -> [ PlayerBodyH | PlayerHead1 | Crate ] sfx2\n\nHorizontal [ > Player | No Obstacle ] -> [ PlayerBodyH | PlayerHead1 ] sfx2\n\n[ Player Apple ] [ PlayerBody ] -> [ Player Apple ] [ ]\n[ Player Apple ] -> [ Player ]\n\n[ > Player ] -> [ Player ]\n\nDOWN [ Player | No Obstacle ] -> [ PlayerBodyV | PlayerHead1 ]\nDOWN [ Crate | No Obstacle ] -> [ | Crate ]\n\n==============\nWINCONDITIONS\n==============\nsome player on exit\n\n======= \nLEVELS\n=======\n\nmessage level 1 of 11\n\n###################\n#.................#\n#.................#\n#............#....#\n#............#....#\n#.......#...##....#\n#..P....#...##..E.#\n###################\n###################\n..#...#...#...#...#\n#...#...#...#...#..\n###################\n###################\n###################\n###################\n\nmessage level 2 of 11\n\n###################\n#.................#\n#.................#\n#.................#\n#..P............E.#\n#####.........#####\n#####.............#\n#####.............#\n#####.............#\n#####.............#\n#####.....#########\n#####.............#\n#####.............#\n#####.............#\n###################\n###################\n###################\n\nmessage level 3 of 11\n\n###################\n#........#........#\n#........#........#\n###.............###\n#.................#\n#.....P.....E.....#\n#....###...###....#\n#..######.######..#\n#.......#.#.......#\n#.......###.......#\n###.............###\n#.................#\n#.................#\n######.......######\n###################\n\nmessage level 4 of 11\n\n###################\n#..#...........#..#\n#..#.....E.....#..#\n#..#....###....#..#\n#..#...........#..#\n#..#...........#..#\n#..#...........#..#\n#..#...........#..#\n#..#...........#..#\n#..#...........#..#\n#..#...........#..#\n#..#...........#..#\n#..#...........#..#\n#..#.....P.....#..#\n###################\n\nmessage level 5 of 11\n\n###################\n#.................#\n#.................#\n#.................#\n#...C........C....#\n#..###......###...#\n#.................#\n#...P........E....#\n#########.##.#.####\n###################\n#.................#\n#.................#\n#.................#\n###################\n\nmessage level 6 of 11\n\n###################\n#..#.#....#..#....#\n#..#.#.E..#..######\n#########.#..#....#\n#....#..#.####....#\n#....#..#....######\n#########....#.#..#\n#....#..#....#.#..#\n#########.#########\n#....#....#..#....#\n######....#..#....#\n#.#..#....#########\n#.#..####.#..#..#.#\n#.#..#..#P#..#..#.#\n###################\n\nmessage level 7 of 11\n\n###################\n#.................#\n#...............C.#\n#............####.#\n#.................#\n#.......#...#.#...#\n#..P....#...#.#E..#\n#.###############.#\n#.###############.#\n#.#...#...#...#...#\n#...#...#...#...#.#\n###################\n#.................#\n#.................#\n###################\n\nmessage level 8 of 11\n\n###################\n#.................#\n#......C...C......#\n#.....###.###.....#\n#.................#\n#......C...C......#\n#.....###.###.....#\n#.................#\n#..E...C...C...P..#\n#.#######.#######.#\n#.##...##.##...##.#\n#.##.#.##.##.#.##.#\n#.##.#.#####.#.##.#\n#.................#\n###################\n\nmessage level 9 of 11\n\n###################\n#.................#\n#...C.............#\n#...C.............#\n#...C.............#\n#...CCC...........#\n#...CCC.C.........#\n#..CCCC.CC.......E#\n#..CCCC.CC.......C#\n#..CCCCCCC.....C.C#\n#..CCCCCCC...C.C.C#\n#.CCCCCCCCC..C.C.C#\n#.CCCCCCCCC..C.C.C#\n#PCCCCCCCCCCCC.CCC#\n###################\n\nmessage level 10 of 11\n\n###################\n#.................#\n#.................#\n#.................#\n#.................#\n#.E..........C....#\n####.##.....###...#\n#######.....###...#\n#.................#\n#.................#\n#...P.............#\n#..#############..#\n###################\n#.................#\n###################\n\nmessage level 11 of 11\n\n###################\n#.................#\n#.................#\n#.................#\n#.................#\n#.E..........C....#\n####.##.....###...#\n#######.....###...#\n#.................#\n#.................#\n#...P.............#\n#..#############..#\n###################\n#.................#\n###################\n\nmessage congratulations!\n",[0,3,3,3,3,0,3,0,0,3,0,0,1,0,0,3,3,3],"background wall:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background:1,1,1,\n1,1,0,0,1,1,1,1,0,1,0,0,1,1,1,1,background exit:2,0,0,\n1,1,1,1,0,1,0,0,1,1,1,1,1,0,0,1,1,1,0,\n0,1,0,0,1,1,1,1,1,1,0,1,background playerbodyh:3,background playerbodyv:4,0,0,1,0,0,\n1,1,1,1,1,0,0,1,4,3,0,0,1,0,0,1,1,1,1,\n1,0,0,1,1,3,0,0,1,0,0,1,1,1,1,1,1,1,1,\n1,3,0,0,1,0,0,1,1,1,1,1,1,1,1,3,4,0,0,\n1,0,0,1,1,1,1,1,3,4,4,4,3,0,0,1,0,0,1,\n1,1,1,1,4,3,3,4,4,0,0,1,0,0,1,1,1,1,1,\n1,4,4,4,3,0,0,1,0,0,1,1,1,1,1,0,0,1,1,\nbackground playerhead1:5,0,0,1,0,0,1,1,1,1,background crate:6,0,0,1,1,1,0,0,1,\n0,0,1,1,1,1,1,0,0,1,1,1,0,0,1,0,0,1,1,\n1,1,1,1,1,1,1,1,0,0,1,0,0,1,1,1,1,1,1,\n1,1,1,1,1,0,1,0,0,1,1,1,1,1,1,1,1,1,1,\n1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n",19,"1397269808625.158"]
	],
	[
		"2D whale world",
		["title 2D Whale World\nauthor increpare\nhomepage www.increpare.com\n\nbackground_color orange\ntext_color darkblue\n\ncolor_palette mastersystem \n\nrun_rules_on_level_start\nrequire_player_movement\n\n(This game is a port of the Whale section of my puzzle game English Country Tune (www.englishcountrytune.com), in only 8 lines of code)\n\n========\nOBJECTS\n========\n\nBackground\nblue\n\nVoid \norange\n\nPlayer \nlightblue \n\nWhale\nbrown\n00000\n00000\n00000\n00000\n00000\n\nWall \nblack\n00000\n0...0\n0...0\n0...0\n00000\n\nHBeam\nYellow\n.....\n.....\n0.0.0\n.....\n.....\n\nVBeam\nYellow\n..0..\n.....\n..0..\n.....\n..0..\n\n=======\nLEGEND\n=======\n\nBeam = HBeam or VBeam\n. = Background\n# = Wall\nP = Player\nW = Whale\n0 = Void\n\n=========\nSOUNDS\n=========\n\nwhale destroy 62981708\nplayer move 69405107\nwhale move 32823307\nendlevel 99636708\nrestart 92555303\nstartgame 60661308\nCloseMessage 123434\nShowMessage 123434\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nvoid\nPlayer, Wall, Whale\nHBeam\nVBeam\n\n======\nRULES \n====== \n\n(while we allow whales to move onto the void, player's aren't)\n[ > player | void ] -> [ player | void ]\n\n\n(beams detect motion)\nHorizontal [ > Player | VBeam ] -> [ > Player | > VBeam ]\nVertical [ > Player | HBeam ] -> [ > Player | > HBeam ]\n\n(If beams detected motion, transfer that to the whales)\n[ Whale | ... | Perpendicular Beam ] -> [ Perpendicular Whale | ... | Perpendicular Beam ]\n\n(remove whales, if necessary)\nlate [ Whale Void ] -> [ Void ]\n\n(remove beams)\n[ Beam ] -> []\n\n(Place HVeams and VBeams)\nlate Horizontal [ Whale | ... | ] -> [ Whale | ... | HBeam ]\nlate Vertical [ Whale | ... | ] -> [ Whale | ... | VBeam ]\n\n==============\nWINCONDITIONS\n==============\n\nNo Whale\n\n======= \nLEVELS\n=======\n\nmessage Push a whale off to free it.\n\n0000000000000000\n0########0000000\n0.......#0000000\n0###.W..###00000\n0.........#00000\n0#####.##.###000\n0000#...#...#000\n0000#...#...#000\n0000#...#...###0\n0000#.P.#.....#0\n0000#...#.....#0\n0000#####...W##0\n0000000000....#0\n0000000000#####0\n0000000000000000\n\nmessage level 2 of 8\n\n00000000000\n0000####000\n000##..##00\n0###....##0\n0#.......#0\n0###.W.###0\n000#P...000\n000#####000\n00000000000\n\nmessage level 3 of 8\n\n0000000000000000\n00###00000000000\n00#.#####0000000\n00#.#...##000000\n00#......#000000\n00#..##.#######0\n00#..#........#0\n00#..#........#0\n0##..######...#0\n0#........#.W.#0\n0##.......#..P#0\n00######..#####0\n00000000..000000\n0000000000000000\n\nmessage level 4 of 8\n\n0000000000000000\n000000#########0\n0######.......#0\n0.............#0\n0.....#.#####.#0\n0######.#.....#0\n00000##.#...P.#0\n00000#........#0\n00000##.#.W...#0\n000000#.......#0\n000000###.#...#0\n00000000#######0\n0000000000000000\n\nmessage level 5 of 8\n\n00000000000000000\n0000############0\n0000#.#........#0\n0000#..........#0\n0####..###.....#0\n0......#.#.....#0\n0####..#W#.#W#.#0\n0..........#.#.#0\n0####.....P###.#0\n0...#.#........#0\n0##...##########0\n00#####0000000000\n00000000000000000\n\nmessage level 6 of 8\n\n00000000000000000\n000000000#.#.#.#0\n000000000#.#.#.#0\n000000000#.#.#.#0\n000000000#.....#0\n0000000###...###0\n0000000#.#...#000\n0000000#.#.#.#000\n0#######.#.#.#000\n0#...........#000\n0#.#.W...W...#000\n0#...........#000\n0#.....P.....#000\n0#...........#000\n0#############000\n00000000000000000\n\nmessage level 7 of 8\n\n000000000#000000\n00000####.####00\n0####.........#0\n0........#....#0\n0####....W....#0\n0000#.........#0\n0000#.#W.P.W#..#\n0####.........#0\n0........W....#0\n0####....#....#0\n00000#........#0\n000000########00\n0000000000000000\n\nmessage level 8 of 8\n\n00000000000\n0########00\n0#...#..#00\n0##.....000\n0#......#00\n0#..WW..##0\n0#..WW...#0\n0##...P.##0\n0#...#.##00\n0#######000\n00000000000\n\nmessage all the 2d whales are freed\n",[3,1,0,0,2,1,2,2,2,1,1,1,1,1,1,1],"background void:0,0,0,0,0,0,0,background hbeam void:1,0,1,0,0,0,0,0,background wall:2,\nbackground:3,2,0,0,background hbeam wall:4,background player:5,4,0,0,0,0,0,2,3,2,0,\n0,4,3,4,0,0,0,0,0,2,3,2,0,0,4,3,\n4,0,0,0,0,0,2,3,2,2,2,4,3,4,0,0,\n0,background vbeam void:6,background vbeam wall:7,background vbeam:8,8,8,8,8,background vbeam whale:9,8,background hbeam vbeam whale:10,7,6,6,0,2,\n3,3,3,3,2,background hbeam:11,3,11,3,2,0,0,2,3,3,3,\n3,3,11,3,11,3,2,0,0,2,3,3,3,3,3,11,\n3,11,3,2,0,2,3,3,2,3,3,3,11,3,4,3,\n2,0,0,2,3,3,3,3,3,11,3,11,3,2,0,6,\n7,8,8,8,8,8,background hbeam vbeam:12,8,background hbeam whale:13,8,7,6,0,2,3,3,\n3,3,2,11,3,11,3,2,0,0,2,3,3,3,3,3,\n11,3,11,3,2,0,0,0,2,2,2,2,3,4,2,4,\n2,0,0,0,0,0,0,0,0,2,1,0,1,0,0,0,\n",13,"1397269841718.1611"]
	],
	[
		"Push",
		["title PUSH\nauthor lonebot - demake by rmmh\nhomepage http://lonebot.net/games/push/\n\nyoutube UXlXgFDgXow \nagain_interval 0.1\nnoaction\n\n========\nOBJECTS\n========\n\nBackground .\n#756C5E\n\nWall #\n#635854\n\nStrongPlayer P\n#E8D2AC #67453D Black #282D3C Red\n11111\n02020\n40004\n43334\n33.33\n\nWeakPlayer\n#E8D2AC #67453D Black #282D3C\n11111\n02020\n.000.\n.333.\n33.33\n\nGibbedPlayer\nRed\n...0.\n.0...\n0..0.\n.....\n..0.0\n\nRock *\n#202020 #706249 #A6957B\n.000.\n02220\n02210\n01110\n.000.\n\nRockDust (destroyed by a projectile)\n#A6957B\n...0.\n.0...\n0..0.\n.....\n..0.0\n\nIdol G\n#945527 #C97536 #F4EF0B\n.000.\n01210\n.222.\n.010.\n01210\n\nPit _\nBlack #5A5349\n.1.1.\n1000.\n.000.\n.0001\n..11.\n\nPitFilled\nBlack #5A5349 #706249\n.1.1.\n1222.\n.222.\n.2221\n..11.\n\nPitPlayer\nBlack #5A5349 #E8D2AC #282D3C\n.1.1.\n1020.\n.222.\n.3331\n..11.\n\nWeakGround x\n#5A5349\n.0..0\n00..0\n..00.\n00..0\n0.0..\n\nGunUSingle U\nBlack Grey Yellow\n..0..\n12021\n11011\n11111\n.111.\n\nGunDSingle D\nBlack Grey Yellow\n.111.\n11111\n11011\n12021\n..0..\n\nGunRSingle R\nBlack Grey Yellow\n.111.\n1112.\n11000\n1112.\n.111.\n\nGunLSingle L\nBlack Grey Yellow\n.111.\n.2111\n00011\n.2111\n.111.\n\nGunUMulti M\nBlack Grey Red\n..0..\n.202.\n12021\n12221\n.111.\n\nGunLMulti N\nBlack Grey Red\n..11.\n.2221\n00021\n.2221\n..11.\n\nGunRMulti O\nBlack Grey Red\n.11..\n1222.\n12000\n1222.\n.11..\n\n\nButton T\n#969283 #4A4A4A\n.000.\n01110\n01010\n01110\n.000.\n\nButtonPressed\n#969283 #3A3A3A\n.000.\n01110\n01110\n01110\n.000.\n\nArrowU\nBrown\n..0..\n.000.\n..0..\n.....\n.....\n\nArrowR\nBrown\n.....\n...0.\n..000\n...0.\n.....\n\nArrowL\nBrown\n.....\n.0...\n000..\n.0...\n.....\n\nArrowD\nBrown DarkBrown\n.....\n.....\n..0..\n.000.\n..0..\n\nFiring\nBlack\n\nFired\nBrown\n\n(used for linking buttons to guns, and for generic flags)\nLinkA\nRed\n\nLinkB\nGreen\n\nLinkC\nBlue\n\nLinkD\nWhite\n\nLinkE\nBlack\n\n=======\nLEGEND\n=======\n\nPlayer = StrongPlayer or WeakPlayer or GibbedPlayer\nDeadPlayer = GibbedPlayer or PitPlayer\nGunU = GunUSingle or GunUMulti\nGunD = GunDSingle\nGunL = GunLSingle or GunLMulti\nGunR = GunRSingle or GunRMulti\nMultiGun = GunUMulti or GunLMulti or GunRMulti\nGun = GunU or GunR or GunD or GunL\nMovable = Rock or Gun\nQ = StrongPlayer and WeakGround\nHeavy = Movable or Player\nArrow = ArrowU or ArrowR or ArrowD or ArrowL\nLink = LinkA or LinkB or LinkC or LinkD or LinkE\nBlockers = Player or Wall or Idol or Movable\n\n1 = Wall and LinkA\n2 = Wall and LinkB\n3 = Wall and LinkC\n4 = Wall and LinkD\n5 = Wall and LinkE\n\n7 = GunRSingle and LinkE\n8 = Button and LinkE\n\n=======\nSOUNDS\n=======\n\nIdol destroy 47224903\nPit create 4141702\nPitPlayer create 19700104\nPitFilled create 87604304\nButtonPressed create 25424301\n(using sfxN here to deal with bug where 'again' triggers sounds twice)\nsfx0 36787702 (rock destroyed by arrow)\nsfx1 59184504 (player explodes)\nArrow create 98842708 (arrow shot)\n\n================\nCOLLISIONLAYERS\n================\n\nLink (move layer to top for debugging linkages)\nFiring, Fired\nBackground\nPit, PitFilled, WeakGround, Button, ButtonPressed, PitPlayer, RockDust\nBlockers\nArrow\n\n======\nRULES \n====== \n\n(player can move an object only once)\n[ > StrongPlayer | Movable | no Blockers ] -> [ > WeakPlayer | > Movable | ]\n[ > Movable Link ] -> [ > Movable > Link ]\n[ DeadPlayer ] -> cancel\n\n(pit behaviors)\nlate [ Player Pit ] -> [ PitPlayer ] (falling into a pit kills you)\nlate [ Pit Rock ] -> [ PitFilled ] (they can be filled)\n[ Player WeakGround ] -> [ Player WeakGround LinkA ] (mark WeakGround as visited)\nlate [ WeakGround LinkA no Player ] -> [ Pit ] (pits appear when you move off weakground)\n\n(initialize gun linkages -- try linking on a line first)\n[Wall Link] [Button no Link | ... | Gun no Link] -> [Wall] [Button Link | ... | Gun Link]\n[Wall Link] [Button no Link] [Gun no Link] -> [Wall] [Button Link] [Gun Link]\n\n(buttons cause linked gun to fire)\nlate [ Button Heavy LinkA ] [ Gun LinkA ] -> [ ButtonPressed Heavy ] [ Gun Firing ] again\nlate [ Button Heavy LinkB ] [ Gun LinkB ] -> [ ButtonPressed Heavy ] [ Gun Firing ] again\nlate [ Button Heavy LinkC ] [ Gun LinkC ] -> [ ButtonPressed Heavy ] [ Gun Firing ] again\nlate [ Button Heavy LinkD ] [ Gun LinkD ] -> [ ButtonPressed Heavy ] [ Gun Firing ] again\nlate [ Button Heavy LinkE ] [ Gun LinkE ] -> [ ButtonPressed Heavy ] [ Gun Firing ] again\n\n( MultiGuns fire 3 shots. do this by cycling LinkB->LinkA->None )\n[ MultiGun Firing no Link ] -> [ MultiGun Firing LinkB ]\n[ MultiGun Fired LinkB ] -> [ MultiGun Firing LinkA ]\n[ MultiGun Fired LinkA ] -> [ MultiGun Firing ]\n\n( create arrows )\n[ GunU Firing ] -> [ GunU ArrowU Fired ]\n[ GunR Firing ] -> [ GunR ArrowR Fired ]\n[ GunL Firing ] -> [ GunL ArrowL Fired ]\n[ GunD Firing ] -> [ GunD ArrowD Fired ]\n( move )\n[ ArrowL ] -> [ left ArrowL ] again\n[ ArrowU ] -> [ up ArrowU ] again\n[ ArrowR ] -> [ right ArrowR ] again\n[ ArrowD ] -> [ down ArrowD ] again\n\nlate [ Arrow Rock ] -> [ RockDust ] sfx0\nlate [ Arrow Player ] -> [ GibbedPlayer ] sfx1\nlate [ Arrow Blockers ] -> [ Blockers ] sfx0\n\n(grabbing an idol)\n[ DeadPlayer ] -> cancel\n[ > Player | Idol ] -> [ Player | Pit ]\n\n==============\nWINCONDITIONS\n==============\n\nno Idol\n\n======= \nLEVELS\n=======\n\nmessage 1/20: You only get one push!\n###########\n#.........#\n#......*..#\n#.*.....*.#\n#...***...#\n#..**g*...#\n#..*.*....#\n#.........#\n#...p...*.#\n#.........#\n###########\n\nmessage 2/20: Mind the gap\n###########\n#**.......#\n#*....*.*.#\n#.........#\n#...***...#\n#...*g*...#\n#...*_*...#\n#*........#\n#..*.p..*.#\n#.........#\n###########\n\nmessage 3/20: Shaky footing\n###########\n#****g****#\n#.*_..****#\n#x********#\n#.********#\n#.x.xx...*#\n#*******x*#\n#......x.*#\n#.********#\n#p*.......#\n###########\n\nmessage 4/20: Firepower\n1##########\n#*...g...*#\n#........*#\n#*********#\n#**.....*.#\n#**.......#\n#**_.p....#\n#*t*...**.#\n#**_...**.#\n#**..u...*#\n###########\n\nmessage 5/20: Artillery\n1##########\n#**.....*.#\n#*......**#\n#...*g*...#\n#.*.......#\n#.........#\n#*********#\n#..*.**...#\n#*......t.#\n#..*.u...p#\n###########\n\nmessage 6/20: Traps\n1##########\n#t**.****.#\n#.*...**g*#\n#.x.....**#\n#.**.*....#\n#..*.*....#\n#.**......#\n#**.......#\n#**p..*...#\n#**..**.u*#\n###########\n\nmessage 7/20: Sequencing\n12#########\n#*********#\n#*t****_..#\n#*x*.d**..#\n#.....**..#\n#.....*...#\n#t..._*...#\n#r...**.g.#\n#...***...#\n#p..****..#\n###########\n\nmessage 8/20: Hamiltonian Cycle\n(8/20 - 3 guns, order irrelevant)\n123########\n#*....**.*#\n#..***l**.#\n#g****l***#\n#*****l***#\n#tx**xxxxx#\n#xxxqxxx*t#\n#xx*_**x_x#\n#*x_xxxxx*#\n#*xtx*x**_#\n###########\n\nmessage 9/20: Barrage\n(9/20 -- 4 guns, all inline with triggers)\n1234#######\n#****x***_#\n#***.tt.**#\n#xg_.dd.**#\n#*__......#\n#_*__**.lt#\n#_*..*..lt#\n#.........#\n#*p.......#\n#**...*..*#\n###########\n\nmessage 10/20: Rotary\n(10/20 -- 4 guns, mostly inline with triggers)\n1234#######\n#**_*...t.#\n#*......d.#\n#r......**#\n#*.****..*#\n#t.*.g**.*#\n#..******x#\n#....**_xt#\n#.....p***#\n#_.u*t._.l#\n###########\n\nmessage 11/20: Shooting Gallery\n(11/20)\n1234#######\n#t..*..*_l#\n#_.****.__#\n#r.*x**.t*#\n#******.**#\n#**xtr_.*g#\n#__.__..**#\n#_......**#\n#....p.u.*#\n#**....t..#\n###########\n\nmessage 12/20: Co-op\n(12/20: 2 players!)\n1##########\n#*t.._____#\n#...._*g__#\n#.r.._.*..#\n#...._*.**#\n#**_._.*.*#\n#****_....#\n#*..*_..**#\n#*.**_..**#\n#*p**_..p*#\n###########\n\nmessage 13/20: Rescue\n12#########\n#**...._.g#\n#*.t..._*.#\n#*...d._.*#\n#*p..__*_*#\n#*...__.u*#\n#.*..._.t*#\n#*...**_**#\n#*..***.**#\n#*.**....p#\n###########\n\nmessage 14/20: Friendly Fire\n(14/20 -- corridor toggle triggers left-wall gun )\n12#########\n#*********#\n#*********#\n#g*8...pl*#\n#*********#\n#7********#\n#...***...#\n#......p.t#\n#....*.*..#\n#.ut......#\n###########\n\nmessage 15/20: Interference\n123########\n#**..*..**#\n#*.......*#\n#....p...*#\n#t......**#\n#r.**..**g#\n#...*...**#\n#..uup..**#\n#*.......*#\n#**tt...**#\n###########\n\nmessage 16/20: Machine guns\n1##########\n#*********#\n#p..*g****#\n#....*****#\n#..*******#\n#..**.*.**#\n#***......#\n#***.p....#\n#....t.m..#\n#_........#\n###########\n\nmessage 17/20: Trapped\n(17/20 -- top toggle triggers magma)\n123########\n#p**...n*g#\n#*****..*_#\n#******.**#\n#***..t*.*#\n#*7_*.....#\n#8.x*....l#\n#...xp...x#\n#...u*.._t#\n#*..t*...x#\n###########\n\nmessage 18/20: Crossfire\n(18/20 -- modified to be more difficult)\n12345######\n#_g.*_****#\n#____**...#\n#.....*...#\n#rx.***.x.#\n#t..*.*...#\n#.px..*.pl#\n#o.**.*x.*#\n#t...*.x.t#\n#.xtm*mtx.#\n###########\n\nmessage 19/20: Stylite\n(19/20)\n1##########\n#*********#\n#..*t***x*#\n#p...*****#\n#.r..*g***#\n#.*_____*_#\n#**_...___#\n#*__p..___#\n#*x_...__*#\n#_*_______#\n###########\n\nmessage 20/20: Spinal Cannon\n(20/20 -- inverted so I don't have to make an upwards magma gun)\n1##########\n#p.**g*_.p#\n#....**x..#\n#_*.._..**#\n#.*..*...*#\n#..*.x....#\n#_x__*.._.#\n#*.x_*x.._#\n#*x..***..#\n#*_.tm.*..#\n###########\n\n(finale -- pushes gold into pit, gold gets smashed, eyes bug out)\n###########\n#*.......*#\n#....p....#\n#._....._.#\n#_...*..._#\n#_..._..._#\n#__._g_.__#\n#_________#\n#_________#\n#*_______*#\n###########\n\nmessage Congratulations!\n\n(Credits\nCode: Yotam Frid\nArt: Mati & Itamar Ernst\nMusic: Jason Lord\n\nwww.lonebot.net\nLudam Dare 28)\n\n(blank level template()\n###########\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n#.........#\n###########\n()\n",[0,0,3,3,3,2,0,3,3,3,3,0,0,1,1,1,3,2,1,"undo",3,0,0,3,2],"background wall:0,0,0,0,0,0,0,0,0,0,0,\n0,background rock:1,background:2,background weakground:3,2,2,1,2,2,2,0,\n0,1,1,1,1,3,1,2,1,1,0,\n0,1,background pit:4,1,1,2,1,2,1,2,0,\n0,1,2,1,1,3,1,2,2,1,0,\n0,background idol:5,2,1,1,4,1,2,1,2,0,\n0,1,1,1,1,2,1,2,1,2,0,\n0,1,1,1,1,2,1,4,1,2,0,\n0,1,1,1,1,2,background pitplayer:6,2,1,2,0,\n0,1,1,1,1,1,1,1,1,2,0,\n0,0,0,0,0,0,0,0,0,0,0,\n",5,"1397270241789.4006"]
	],
	[
		"Kettle",
		["title Kettle\nauthor stephen lavelle\nhomepage www.increpare.com\n\ncolor_palette gameboycolour\n\n(a port of a flash game of mine, the original of which can be played here:\nhttp://ded.increpare.com/~locus/kettle\n)\n\n\n========\nOBJECTS\n========\n\nBackground\ndarkgray\n\nTarget\nyellow\n00000\n0...0\n0...0\n0...0\n00000\n\n\nUPolice\nblack\n.000.\n.000.\n00000\n.000.\n.0.0.\n\nDPolice\nblack\n.000.\n.000.\n00000\n.000.\n.0.0.\n\nLPolice\nblack\n.000.\n.000.\n0000.\n.000.\n.0.0.\n\nRPolice\nblack\n.000.\n.000.\n.0000\n.000.\n.0.0.\n\nCrate\nblue\n..0..\n00000\n..0..\n.000.\n.0.0.\n\nwall\nblack\n\n=======\nLEGEND\n=======\n\n. = Background\nplayer = upolice or dpolice or lpolice or rpolice\ni = upolice\nk = dpolice\nj = lpolice\nl = rpolice\nc = Crate\n@ = Crate and Target\nt = Target\n# = wall\n\n\n=========\nSOUNDS\n=========\ntarget move 59810707\nplayer move 86872107\nstartlevel 63638302\nendlevel 86642102\nendgame 63929902\nshowmessage 42200307\nclosemessage 42200307\nstartgame 94059902\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nplayer, Crate, wall\n\n======\nRULES\n======\n\n(the idea is simple: lots of players, each of which only responds to a particular input direction)\n\n[ up rpolice] -> [rpolice]\n[ down rpolice] -> [rpolice]\n[ left rpolice] -> [rpolice]\n\n[ down upolice] -> [upolice]\n[ left upolice] -> [upolice]\n[ right upolice] -> [upolice]\n\n[ up lpolice] -> [lpolice]\n[ down lpolice] -> [lpolice]\n[ right lpolice] -> [lpolice]\n\n[ up dpolice] -> [dpolice]\n[ left dpolice] -> [dpolice]\n[ right dpolice] -> [dpolice]\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n[ > crate | Crate ] -> [ > crate | > Crate ]\n\n==============\nWINCONDITIONS\n==============\nall target on crate\n\n=======\nLEVELS\n=======\n\nmessage Let's see your ID\n\n###############\n#.............#\n#.............#\n#.....kkkk....#\n#....l...cj...#\n#....l.tt.j...#\n#....lctt.j...#\n#....lc..cj...#\n#.....iiii....#\n#.............#\n#.............#\n#.............#\n###############\n\nmessage Area Secure\nmessage Gonna lock you up, sonny!\n\n###############\n#.............#\n#.............#\n#.....kkkk....#\n#....l@@t.j...#\n#....ltttcj...#\n#....l@t@cj...#\n#....lc.ccj...#\n#.....iiii....#\n#.............#\n#.............#\n#.............#\n###############\n\nmessage Area Secure\nmessage We didn't see nothing!\n\n###############\n#.............#\n#.............#\n#....kkkkk....#\n#...l@t@@cj...#\n#...l@@ttcj...#\n#...ltt@tcj...#\n#...lt@@@.j...#\n#...l.ccccj...#\n#....iiiii....#\n#.............#\n#.............#\n###############\n\n\nmessage Area Secure\nmessage You'll be late for class, eh!\n\n###############\n#.............#\n#.............#\n#....kkkkk....#\n#...lc.c.cj...#\n#...lc@tt.j...#\n#...l.tt@cj...#\n#...l.ttt.j...#\n#...lc...cj...#\n#....iiiii....#\n#.............#\n#.............#\n###############\n\nmessage Area Secure\nmessage Ha! You shat yourself!\n\n\n###############\n#.............#\n#.............#\n#....kkkkkk...#\n#...lc.c..cj..#\n#...lcttt..j..#\n#...l.t@@..j..#\n#...l.ttt..j..#\n#...lc...ccj..#\n#....iiiiii...#\n#.............#\n#.............#\n###############\n\nmessage Area Secure\nmessage Have to confiscate your camera!\n\n\n###############\n#.............#\n#.............#\n#....kkkkkk...#\n#...lcc..ccj..#\n#...l.tttt.j..#\n#...l.t@@t.j..#\n#...lcttt@cj..#\n#...lct@ttcj..#\n#...lcc..ccj..#\n#....iiiiii...#\n#.............#\n###############\n\n\nmessage Area Secure\nmessage Keeping the peace is hard work\n\n\n###############\n#.............#\n#...kkkkkkk...#\n#..l..cc..cj..#\n#..l.tttt..j..#\n#..lc@t@t..j..#\n#..lctttt.cj..#\n#..l.@@tt..j..#\n#..lc.....cj..#\n#..lcc.c..cj..#\n#...iiiiiii...#\n#.............#\n###############\n\n\nmessage Area Secure\nmessage You should've packed lunch!\n\n\n\n###############\n#.............#\n#..kkkkkkkk...#\n#.lccccc...j..#\n#.lct@@tt.cj..#\n#.l.t@t@t.cj..#\n#.lc@@ttt.cj..#\n#.lct@tttccj..#\n#.l.tt@@t..j..#\n#.l........j..#\n#.lc..cc...j..#\n#..iiiiiiii...#\n###############\n\n\nmessage Area Secure\nmessage I want to hit you\n\n###############\n#.............#\n#..kkkkkkkkk..#\n#.lc.cccc...j.#\n#.l.........j.#\n#.lccttttt..j.#\n#.lc.tt@tt.cj.#\n#.lc.tt@@t.cj.#\n#.l..@@tt@.cj.#\n#.l..t@t@t..j.#\n#.l.........j.#\n#.lc.c.c.c.cj.#\n#..iiiiiiiii..#\n###############\n\n\nmessage Area Secure\nmessage Don't be naughty!\n\n\n###############\n#.kkkkkkkkkk..#\n#lccc..c...cj.#\n#lc.........j.#\n#lc.@t@tt...j.#\n#lc.t@@@t...j.#\n#l..@ttt@..cj.#\n#lc.tt@@t..cj.#\n#l..ttttt...j.#\n#l..........j.#\n#l.........cj.#\n#l....c.c.ccj.#\n#.iiiiiiiiii..#\n###############\n\nmessage Area Secure\nmessage I'm upholding human rights!\n\n\n\n###############\n#.kkkkkkkkkkk.#\n#lccc.c.c...cj#\n#l....c......j#\n#lc.@ttttt...j#\n#l..@ttt@t...j#\n#l..t@@ttt..cj#\n#lc.@tt@@t..cj#\n#l..@@t@@t...j#\n#l..t@t@tt..cj#\n#lc..c.......j#\n#lc....c.....j#\n#lcc.c.c.c..cj#\n#.iiiiiiiiiii.#\n###############\n\nmessage Area Secure\nmessage I'm all out of lines, matey:\nmessage It's game over for you\n\n\n",[1,1,3,2,0],"background wall:0,0,0,0,0,0,0,0,0,0,0,0,0,0,background:1,\n1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,\n1,1,1,1,1,1,1,1,0,0,1,background dpolice:2,background rpolice:3,3,3,\n3,3,3,3,3,background upolice:4,0,0,1,1,2,background crate target:5,5,5,5,\nbackground target:6,background crate:7,4,1,0,0,1,1,2,5,5,5,5,5,1,\n4,1,0,0,1,1,2,5,5,5,6,5,7,4,1,\n0,0,1,1,2,5,5,6,5,5,7,4,1,0,0,\n1,1,2,5,5,5,5,5,1,4,1,0,0,1,2,\nbackground lpolice:8,8,8,8,8,8,8,8,4,0,0,1,1,2,1,\n1,1,1,1,1,4,1,0,0,1,1,1,1,1,1,\n1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,\n1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,\n1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n",22,"1397303719628.0938"]
	],
	[
		"Bouncers",
		["title Bouncers\nauthor Tyler Glaiel\nhomepage twitter.com/tylerglaiel\n \n========\nOBJECTS\n========\n \nBg\n#111111 #222222\n00010\n11111\n01000\n01000\n11111\n \nSelection\nwhite gray\n..1..\n..1..\n11011\n..1..\n..1..\n \nWall\nDarkBlue DarkGreen #333333\n20002\n22022\n22122\n21112\n11111\n \nHole\nDarkGray Gray Black\n.111.\n12221\n10001\n10001\n.111.\n \n \nArrow\nRed Red\n..1..\n..11.\n11111\n..11.\n..1..\n \n \nHudDivider\nwhite black\n00000\n11111\n11111\n11111\n11111\n \nIconGO\ngreen white\n10111\n10011\n10001\n10011\n10111\n \nGoing\ngreen white\n10111\n10011\n10001\n10011\n10111\n \nLeftBouncer\nWhite White Blue\n.221.\n2.1.2\n21..2\n2.1.2\n.221.\n \nRightBouncer\nWhite White Blue\n.122.\n2.1.2\n2..12\n2.1.2\n.122.\n \nUpBouncer\nWhite White Blue\n.222.\n2.1.2\n21.12\n1...1\n.222.\n \nDownBouncer\nWhite White Blue\n.222.\n1...1\n21.12\n2.1.2\n.222.\n \nHudBG\nblack\n \nEmpty \nblack\n \nPlayEmpty \nblack\n.....\n.....\n.....\n.....\n.....\n \n \nBall\n#003300 Green\n.000.\n01110\n01110\n01110\n.000.\n \nWinBall\nLightBlue LightGreen\n.000.\n01110\n01110\n01110\n.000.\n \n \n \nBallUp\n#003300 Green Black\n.000.\n01210\n01110\n01110\n.000.\n \nBallDown\n#003300 Green Black\n.000.\n01110\n01110\n01210\n.000.\n \nBallLeft\n#003300 Green Black\n.000.\n01110\n02110\n01110\n.000.\n \nBallRight\n#003300 Green Black\n.000.\n01110\n01120\n01110\n.000.\n \n \n \n \n=======\nLEGEND\n=======\nBackground = Bg or HudBG\n. = bg and PlayEmpty\nS = Selection and PlayEmpty\n- = HudDivider and Wall\nH = HudBG and PlayEmpty\nA = Arrow and HudBG\nG = IconGO\nW = Wall\nO = Hole\n \nL = LeftBouncer and HudBG\nR = RightBouncer and HudBG\nU = UpBouncer and HudBG\nD = DownBouncer and HudBG\n \nB = BallLeft\nN = BallRight\nM = BallUp\nK = BallDown\n \nPlayer = Selection\n \n \nPlacedLeftbouncer = LeftBouncer and Selection \nPlacedRightbouncer = RightBouncer and Selection \nPlacedUpbouncer = UpBouncer and Selection \nPlacedDownbouncer = DownBouncer and Selection \n \nBouncer = LeftBouncer or RightBouncer or UpBouncer or DownBouncer\n \nemptyPlayer = Selection and PlayEmpty\n \n \nballSwitchLeft = Ball and LeftBouncer\nballSwitchRight = Ball and RightBouncer\nballSwitchUp = Ball and UpBouncer\nballSwitchDown = Ball and DownBouncer\n \nballSwitchedLeft = BallLeft and LeftBouncer\nballSwitchedRight = BallRight and RightBouncer\nballSwitchedUp = BallUp and UpBouncer\nballSwitchedDown = BallDown and DownBouncer\n \ngameGo = Selection and IconGO\ngameGoing = Going\n \n \n \nWinL = BallLeft and Hole\nWinR = BallRight and Hole\nWinU = BallUp and Hole\nWinD = BallDown and Hole\n \nWin = WinBall\n \nMovingBall = Ball or BallLeft or BallRight or BallUp or BallDown\n \n=======\nSOUNDS\n=======\nSFX0 41242705 (place bouncer)\nSFX1 73889302 (press go)\nMovingBall Move 68254307 (ball move)\nSFX2 68257500 (pocket ball)\nSFX3 82752503 (ball switch direction)\n \n================\nCOLLISIONLAYERS\n================\n \nBackground\n \nArrow, Empty, LeftBouncer, RightBouncer, UpBouncer, DownBouncer, PlayEmpty, IconGO, Going, Hole\nWinBall\nWall, Ball, BallUp, BallDown, BallLeft, BallRight\nSelection, HudDivider\n \n \n======\nRULES\n======\n \n(action button: take icon to the right of the arrow, place under selector)\n[action selection PlayEmpty][Arrow|LeftBouncer] -> [PlacedLeftbouncer][Arrow|Empty] SFX0\n[action selection PlayEmpty][Arrow|RightBouncer] -> [PlacedRightbouncer][Arrow|Empty] SFX0\n[action selection PlayEmpty][Arrow|UpBouncer] -> [PlacedUpbouncer][Arrow|Empty] SFX0\n[action selection PlayEmpty][Arrow|DownBouncer] -> [PlacedDownbouncer][Arrow|Empty] SFX0\n \n(win conditions)\n[WinL] -> [Win] again SFX2\n[WinR] -> [Win] again SFX2\n[WinU] -> [Win] again SFX2\n[WinD] -> [Win] again SFX2\n \n(slide unused icons over to the left if there's space between them and the arrow)\nright [Empty | Bouncer] -> [Bouncer | Empty]\n \n(selector on top of go button -> signals game to run)\n[action selection iconGO] -> [gameGoing] again SFX1\n \n(make genericball match the direction of the bouncer)\n[ballSwitchLeft]->[ballSwitchedLeft] again \n[ballSwitchRight]->[ballSwitchedRight] again\n[ballSwitchUp]->[ballSwitchedUp] again\n[ballSwitchDown]->[ballSwitchedDown] again\n \n(if ball is going to move on top of a bouncer, switch it to generic ball first)\nright [Going][Bouncer | BallLeft] -> [Going][Bouncer | Left Ball] again SFX3\nleft [Going][Bouncer | BallRight] -> [Going][Bouncer | Right Ball] again SFX3\nup [Going][Bouncer | BallDown] -> [Going][Bouncer | Down Ball] again SFX3\ndown [Going][Bouncer | BallUp] -> [Going][Bouncer | Up Ball] again SFX3\n \n \n \n(move the ball if Going)\n[Going][BallLeft] -> [Going][LEFT BallLeft] again\n[Going][BallRight] -> [Going][RIGHT BallRight] again\n[Going][BallUp] -> [Going][UP BallUp] again\n[Going][BallDown] -> [Going][DOWN BallDown] again\n \n \n \n[Going] -> [Going] again\n \n==============\nWINCONDITIONS\n==============\n \nno MovingBall\n \n=======\nLEVELS\n=======\n \nmessage place bouncers, hit play\n \n......w.....\n..o...w.....\n......w.....\n......w.....\n......w..b..\n......s.....\n............\ng-----------\n-hhadluhhhhh\n \nmessage Level 2\n \n............\n......o.....\n..s.........\n......w.....\n...o.....b..\n......m.....\n............\ng-----------\n-hhalurhhhhh\n \nmessage Level 3\n \n............\n............\n..o.wwww....\n..s.n..b....\n....wwww.o..\n............\n............\ng-----------\n-hhaudrlhhhh\n \nmessage Level 4\n \n............\n............\n..o......o..\n............\n............\n.s..bbbb....\n............\n............\n..o......o..\n............\ng-----------\n-hhalrudu...\n \nmessage Level 5\n \n.....n......w...\n..wwww.k....o.w.\n......b..m......\n...o............\n.......w........\n.....b.w........\n......wwo.......\nw.ww.www........\n.o..............\n....s...........\n..........wwwo..\ng---------------\n-hhaddddddrrr...\n \nmessage I didn't feel like making more levels\n",[0,3,3,2,2,2,2,3,3,4,3,0,1,1,3,4,3,1,1,1,1,3,"restart",2,2,2,2,1,1,2,4,"restart",0,2,2,3,3,3,2,3,4,3,4,0,0,0,4,2,2,2,2,2,1,1,1,1,1,1,1,2,4],"bg playempty:0,0,0,0,0,0,0,bg going:1,bg huddivider wall:2,0,0,0,\n0,0,0,0,2,hudbg playempty:3,0,0,0,0,0,0,\n0,2,3,0,0,0,0,bg winball:4,0,0,2,arrow hudbg:5,\n0,0,0,0,0,0,0,2,empty hudbg:6,0,0,0,\n0,0,0,0,2,6,0,bg hole:7,0,bg wall:8,bg leftbouncer:9,bg:10,\n0,2,6,0,bg rightbouncer:11,0,0,bg upbouncer:12,0,0,2,3,\n0,0,0,0,0,0,0,2,3,0,0,0,\n0,10,0,0,2,3,0,0,0,0,0,0,\n0,2,3,0,ballright bg playempty:13,0,0,0,0,0,2,3,\n",3,"1397303951623.1404"]
	],
	[
		"Bouncers 2",
		["title Bouncers\nauthor Tyler Glaiel\nhomepage twitter.com/tylerglaiel\n \n========\nOBJECTS\n========\n \nBg\n#111111 #222222\n00010\n11111\n01000\n01000\n11111\n \nSelection\nwhite gray\n..1..\n..1..\n11011\n..1..\n..1..\n \nWall\nDarkBlue DarkGreen #333333\n20002\n22022\n22122\n21112\n11111\n \nHole\nDarkGray Gray Black\n.111.\n12221\n10001\n10001\n.111.\n \n \nArrow\nRed Red\n..1..\n..11.\n11111\n..11.\n..1..\n \n \nHudDivider\nwhite black\n00000\n11111\n11111\n11111\n11111\n \nIconGO\ngreen white\n10111\n10011\n10001\n10011\n10111\n \nGoing\ngreen white\n10111\n10011\n10001\n10011\n10111\n \nLeftBouncer\nWhite White Blue\n.221.\n2.1.2\n21..2\n2.1.2\n.221.\n \nRightBouncer\nWhite White Blue\n.122.\n2.1.2\n2..12\n2.1.2\n.122.\n \nUpBouncer\nWhite White Blue\n.222.\n2.1.2\n21.12\n1...1\n.222.\n \nDownBouncer\nWhite White Blue\n.222.\n1...1\n21.12\n2.1.2\n.222.\n \nHudBG\nblack\n \nEmpty \nblack\n \nPlayEmpty \nblack\n.....\n.....\n.....\n.....\n.....\n \n \nBall\n#003300 Green\n.000.\n01110\n01110\n01110\n.000.\n \nWinBall\nLightBlue LightGreen\n.000.\n01110\n01110\n01110\n.000.\n \n \n \nBallUp\n#003300 Green Black\n.000.\n01210\n01110\n01110\n.000.\n \nBallDown\n#003300 Green Black\n.000.\n01110\n01110\n01210\n.000.\n \nBallLeft\n#003300 Green Black\n.000.\n01110\n02110\n01110\n.000.\n \nBallRight\n#003300 Green Black\n.000.\n01110\n01120\n01110\n.000.\n \n \n \n \n=======\nLEGEND\n=======\nBackground = Bg or HudBG\n. = bg and PlayEmpty\nS = Selection and PlayEmpty\n- = HudDivider and Wall\nH = HudBG and PlayEmpty\nA = Arrow and HudBG\nG = IconGO\nW = Wall\nO = Hole\n \nL = LeftBouncer and HudBG\nR = RightBouncer and HudBG\nU = UpBouncer and HudBG\nD = DownBouncer and HudBG\n \nB = BallLeft\nN = BallRight\nM = BallUp\nK = BallDown\n \nPlayer = Selection\n \n \nPlacedLeftbouncer = LeftBouncer and Selection \nPlacedRightbouncer = RightBouncer and Selection \nPlacedUpbouncer = UpBouncer and Selection \nPlacedDownbouncer = DownBouncer and Selection \n \nBouncer = LeftBouncer or RightBouncer or UpBouncer or DownBouncer\n \nemptyPlayer = Selection and PlayEmpty\n \n \nballSwitchLeft = Ball and LeftBouncer\nballSwitchRight = Ball and RightBouncer\nballSwitchUp = Ball and UpBouncer\nballSwitchDown = Ball and DownBouncer\n \nballSwitchedLeft = BallLeft and LeftBouncer\nballSwitchedRight = BallRight and RightBouncer\nballSwitchedUp = BallUp and UpBouncer\nballSwitchedDown = BallDown and DownBouncer\n \ngameGo = Selection and IconGO\ngameGoing = Going\n \n \n \nWinL = BallLeft and Hole\nWinR = BallRight and Hole\nWinU = BallUp and Hole\nWinD = BallDown and Hole\n \nWin = WinBall\n \nMovingBall = Ball or BallLeft or BallRight or BallUp or BallDown\n \n=======\nSOUNDS\n=======\nSFX0 41242705 (place bouncer)\nSFX1 73889302 (press go)\nMovingBall Move 68254307 (ball move)\nSFX2 68257500 (pocket ball)\nSFX3 82752503 (ball switch direction)\n \n================\nCOLLISIONLAYERS\n================\n \nBackground\n \nArrow, Empty, LeftBouncer, RightBouncer, UpBouncer, DownBouncer, PlayEmpty, IconGO, Going, Hole\nWinBall\nWall, Ball, BallUp, BallDown, BallLeft, BallRight\nSelection, HudDivider\n \n \n======\nRULES\n======\n \n(action button: take icon to the right of the arrow, place under selector)\n[action selection PlayEmpty][Arrow|LeftBouncer] -> [PlacedLeftbouncer][Arrow|Empty] SFX0\n[action selection PlayEmpty][Arrow|RightBouncer] -> [PlacedRightbouncer][Arrow|Empty] SFX0\n[action selection PlayEmpty][Arrow|UpBouncer] -> [PlacedUpbouncer][Arrow|Empty] SFX0\n[action selection PlayEmpty][Arrow|DownBouncer] -> [PlacedDownbouncer][Arrow|Empty] SFX0\n \n(win conditions)\n[WinL] -> [Win] again SFX2\n[WinR] -> [Win] again SFX2\n[WinU] -> [Win] again SFX2\n[WinD] -> [Win] again SFX2\n \n(slide unused icons over to the left if there's space between them and the arrow)\nright [Empty | Bouncer] -> [Bouncer | Empty]\n \n(selector on top of go button -> signals game to run)\n[action selection iconGO] -> [gameGoing] again SFX1\n \n(make genericball match the direction of the bouncer)\n[ballSwitchLeft]->[ballSwitchedLeft] again \n[ballSwitchRight]->[ballSwitchedRight] again\n[ballSwitchUp]->[ballSwitchedUp] again\n[ballSwitchDown]->[ballSwitchedDown] again\n \n(if ball is going to move on top of a bouncer, switch it to generic ball first)\nright [Going][Bouncer | BallLeft] -> [Going][Bouncer | Left Ball] again SFX3\nleft [Going][Bouncer | BallRight] -> [Going][Bouncer | Right Ball] again SFX3\nup [Going][Bouncer | BallDown] -> [Going][Bouncer | Down Ball] again SFX3\ndown [Going][Bouncer | BallUp] -> [Going][Bouncer | Up Ball] again SFX3\n \n \n \n(move the ball if Going)\n[Going][BallLeft] -> [Going][LEFT BallLeft] again\n[Going][BallRight] -> [Going][RIGHT BallRight] again\n[Going][BallUp] -> [Going][UP BallUp] again\n[Going][BallDown] -> [Going][DOWN BallDown] again\n \n \n \n[Going] -> [Going] again\n \n==============\nWINCONDITIONS\n==============\n \nno MovingBall\n \n=======\nLEVELS\n=======\n \nmessage place bouncers, hit play\n \n......w.....\n..o...w.....\n......w.....\n......w.....\n......w..b..\n......s.....\n............\ng-----------\n-hhadluhhhhh\n \nmessage Level 2\n \n............\n......o.....\n..s.........\n......w.....\n...o.....b..\n......m.....\n............\ng-----------\n-hhalurhhhhh\n \nmessage Level 3\n \n............\n............\n..o.wwww....\n..s.n..b....\n....wwww.o..\n............\n............\ng-----------\n-hhaudrlhhhh\n \nmessage Level 4\n \n............\n............\n..o......o..\n............\n............\n.s..bbbb....\n............\n............\n..o......o..\n............\ng-----------\n-hhalrudu...\n \nmessage Level 5\n \n.....n......w...\n..wwww.k....o.w.\n......b..m......\n...o............\n.......w........\n.....b.w........\n......wwo.......\nw.ww.www........\n.o..............\n....s...........\n..........wwwo..\ng---------------\n-hhaddddddrrr...\n \nmessage I didn't feel like making more levels\n",[3,3,3,3,1,1,1,1,4,3,3,1,4,2,3,3,3,"restart",3,3,3,1,4,1,4,1,4,1,4,2,2,2,2,2,4,0,3,3,2,2,1,0,3,"restart",3,3,4,1,1,3,4,1,4,1,4,2,2,2,2,4,2,0,2,4,0,0,3,3,2,1,0,3,2,"undo",0,0,0,0,3,3,0,3,4,1,4,"restart","restart",3,3,4,1,4,1,4,2,2,2,1,2,2,4,"undo",4,"undo",0,0,0,0,0,3,3,4,3,4,"undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo","undo",1,1,2,2,2,2,2,4,"undo","undo",2,4,"undo","undo",0,0,0,0,3,4,2,2,2,2,1,2,"undo",2,4],"bg playempty:0,0,0,0,0,0,0,0,0,0,bg going:1,bg huddivider wall:2,\n0,0,0,0,0,ballright bg rightbouncer:3,0,0,0,0,2,hudbg playempty:4,\n0,0,bg hole:5,0,0,ball bg playempty:6,0,0,5,0,2,4,\n0,0,0,0,0,ballleft bg leftbouncer:7,0,0,0,0,2,arrow hudbg:8,\n0,0,0,0,0,ball bg:9,0,0,0,0,2,hudbg upbouncer:10,\n0,0,0,0,0,bg:11,0,0,0,0,2,downbouncer hudbg:12,\n0,0,0,0,0,11,0,0,0,0,2,10,\n0,0,0,0,0,11,0,0,0,0,2,empty hudbg:13,\n0,0,0,0,0,0,0,0,0,0,2,13,\n0,0,5,0,0,0,0,0,5,0,2,0,\n0,0,0,0,0,0,0,0,0,0,2,0,\n0,0,0,0,0,0,0,0,0,0,2,0,\n",7,"1397304013801.759"]
	],
	[
		"Sok7",
		["title Sok7\nauthor Kevin Cancienne\nhomepage https://twitter.com/potatojin\n \ncolor_palette whitingjp\nnoaction\n \n========\nOBJECTS\n========\n \n \nBackground (special, automatically placed in its own layer)\ndarkgray black\n10000\n10000\n10000\n10000\n11111\n \nPlayer \nRED PINK \n.1.1.\n.000.\n11111\n.111.\n.1.1.\n \nGarbage1\nlightgray black\n00000\n01110\n01010\n01110\n00000\n \nGarbage2\nlightgray darkgray darkgray\n00200\n01110\n21012\n01110\n00200\n \n \nOne\ngreen white\n00100\n00100\n00100\n00100\n00100\n \nTwo\nyellow white\n01110\n00010\n01110\n01000\n01110\n \nThree\norange white\n01110\n00010\n00110\n00010\n01110\n \nFour\nred white\n01010\n01010\n01110\n00010\n00010\n \nFive\npurple white\n01110\n01000\n01110\n00010\n01110\n \nSix\nlightblue white\n01110\n01000\n01110\n01010\n01110\n \nSeven\ndarkblue white\n01110\n00010\n00010\n00010\n00010\n \nWall\nblack\n00000\n00000\n00000\n00000\n00000\n \nO (unoccupied cell)\nwhite\n00000\n00000\n00000\n00000\n00000\n \nX (occupied cell)\nblack\n00000\n00000\n00000\n00000\n00000\n \nE (explosion)\nblack\n00000\n00000\n00000\n00000\n00000\n \nD (disappeared disc)\nblack\n00000\n00000\n00000\n00000\n00000\n \nC (counter)\nblack\n00000\n00000\n00000\n00000\n00000\n \n=======\nLEGEND\n=======\n \n. = Background\nP = Player\n1 = One\n2 = Two\n3 = Three\n4 = Four\n5 = Five\n6 = Six\n7 = Seven\nW = Wall\nGarbage = Garbage1 or Garbage2\nGarbage1_1 = Garbage1\nGarbage1_2 = Garbage1\nGarbage1_3 = Garbage1\nDisc = One or Two or Three or Four or Five or Six or Seven or Garbage\nRandomDisc = One or Two or Three or Four or Five or Six or Garbage1 or Garbage1_1 or Garbage1_2 or Garbage1_3\nNumberDisc = One or Two or Three or Four or Five or Six or Seven\nObject = Disc or Player\n \n \n \n=========\nSOUNDS\n=========\nDisc Move 53338707\nDisc Destroy 56624700\nEndlevel 34957309\nSFX0 67673302\n \n================\nCOLLISIONLAYERS\n================\n \nC\nE, D\nO, X\nBackground\nWall, Player, One, Two, Three, Four, Five, Six, Seven, Garbage\n \n \n \n======\nRULES\n======\n \n \n[> Player | Disc] -> [> Player | > Disc]\n \n[D] -> [ ]\n[X] -> [O]\n[ ] -> [O]\n[One O] -> [One X]\n[Two O] -> [Two X]\n[Three O] -> [Three X]\n[Four O] -> [Four X]\n[Five O] -> [Five X]\n[Six O] -> [Six X]\n[Seven O] -> [Seven X]\n[Garbage O] -> [Garbage X]\n \n(1 rules)\n[O | One | O] -> [O | D X | O] again\n \n(2 rules)\n[O | Two | X | O] -> [O | D X | X | O] again\n \n(3 rules)\n[O | Three | X | X | O] -> [O | D X | X | X | O] again\n[O | X | Three | X | O] -> [O | X | D X | X | O] again\n[O | X | X | Three | O] -> [O | X | X | D X | O] again\n \n(4 rules)\n[O | Four | X | X | X | O] -> [O | D X | X | X | X | O] again\n[O | X | Four | X | X | O] -> [O | X | D X | X | X | O] again\n[O | X | X | Four | X | O] -> [O | X | X | D X | X | O] again\n[O | X | X | X | Four | O] -> [O | X | X | X | D X | O] again\n \n(5 rules)\n[O | Five | X | X | X | X | O] -> [O | D X | X | X | X | X | O] again\n[O | X | Five | X | X | X | O] -> [O | X | D X | X | X | X | O] again\n[O | X | X | Five | X | X | O] -> [O | X | X | D X | X | X | O] again\n[O | X | X | X | Five | X | O] -> [O | X | X | X | D X | X | O] again\n[O | X | X | X | X | Five | O] -> [O | X | X | X | X | D X | O] again\n \n(6 rules)\n[O | Six | X | X | X | X | X | O] -> [O | D X | X | X | X | X | X | O] again\n[O | X | Six | X | X | X | X | O] -> [O | X | D X | X | X | X | X | O] again\n[O | X | X | Six | X | X | X | O] -> [O | X | X | D X | X | X | X | O] again\n[O | X | X | X | Six | X | X | O] -> [O | X | X | X | D X | X | X | O] again\n[O | X | X | X | X | Six | X | O] -> [O | X | X | X | X | D X | X | O] again\n[O | X | X | X | X | X | Six | O] -> [O | X | X | X | X | X | D X | O] again\n \n(7 rules)\n[O | Seven | X | X | X | X | X | X | O] -> [O | D X | X | X | X | X | X | X | O] again\n[O | X | Seven | X | X | X | X | X | O] -> [O | X | D X | X | X | X | X | X | O] again\n[O | X | X | Seven | X | X | X | X | O] -> [O | X | X | D X | X | X | X | X | O] again\n[O | X | X | X | Seven | X | X | X | O] -> [O | X | X | X | D X | X | X | X | O] again\n[O | X | X | X | X | Seven | X | X | O] -> [O | X | X | X | X | D X | X | X | O] again\n[O | X | X | X | X | X | Seven | X | O] -> [O | X | X | X | X | X | D X | X | O] again\n[O | X | X | X | X | X | X | Seven | O] -> [O | X | X | X | X | X | X | D X | O] again\n \n \n(garbage rules)\n[C X] -> [ X]\n[> Player | ] -> [> Player | C]\n[C No Object | C No Object | C No Object | C No Object| C No Object | C No Object] -> [ | | random RandomDisc | | | ] SFX0\n[D | Garbage1] -> [ | Garbage2]\n[D | Garbage2] -> [ | random NumberDisc]\n \n \n \n==============\nWINCONDITIONS\n==============\nNo Disc\n \n=======\nLEVELS\n=======\n \n \nWWWWWWWWWWWWWW\nW....13......W\nW.4..2..5....W\nW....2..3....W\nW.77....6....W\nW....3..5....W\nW.P........2.W\nW....2.......W\nWWWWWWWWWWWWWW\n \nmessage Board Clear: You Win\n",[0,3,3,2,3,0,3,0,1,2,"undo",2,3,3,3,3,"undo","undo",1,3,3,3,1,1,2,1,0,0,3,2,1,1,2,1,0,1,1,1,0,0,3,3,3,2,3,3,0,1,2,"undo",2,1,0,3,0,1,2,3,3,3,3,3,2,1,1,1,3,3,2,2,1,0,3,0,1,3,3,0,0,0,1,2,2,3,2,1,1,3,3,3,0,3,3,2,1,1,1,1,3,0,0,1,2,3,1,1,1,1,1,1,1,0,3,3,3,"undo",2,3,3,3,3,0,0,1,1,3,3,3,3,3,2,1,1,3,3,3,2,1,1,2,1,0,3,1,1],"background o wall:0,0,0,0,0,0,0,0,0,0,background o:1,background c o:2,1,2,\n2,1,1,0,0,1,2,1,background seven x:3,2,1,1,0,0,\n1,2,1,3,2,1,1,0,0,background three x:4,1,background garbage2 x:5,5,1,\n2,1,0,0,1,2,1,1,1,2,background two x:6,0,0,1,\n1,1,1,1,2,1,0,0,1,2,background c o player:7,1,2,2,\n1,0,0,1,background five x:8,2,2,1,1,1,0,0,1,2,\n2,2,1,1,1,0,0,1,2,2,2,8,1,1,\n0,0,1,2,2,2,1,6,1,0,0,1,1,1,\n1,1,1,1,0,0,0,0,0,0,0,0,0,0,\n",0,"1397736919163.304"]
	],
	[
		"Closure",
		["title Closure Demake\nauthor Tyler Glaiel\nhomepage www.closuregame.com\nrun_rules_on_level_start\n \nyoutube bWJPOLN2Awc\n \n========\nOBJECTS\n========\n \nBackgroundB\n#111111\n \nWall\nwhite\n.....\n.....\n.....\n.....\n.....\n \nWallObjects\nwhite\n.....\n.....\n.....\n.....\n.....\n \nKill\nblack\n \n \n \nPlayer\nWhite Black\n.0.0.\n.000.\n.010.\n00000\n0.0.0\n \n \nCrate\nwhite gray LightGray\n11111\n12001\n10201\n10021\n11111\n \nFakeCrate\nblack\n.....\n.....\n.....\n.....\n.....\n \n \n \n \nPlayerMoved\nWhite Black\n.0.0.\n.000.\n.010.\n00000\n0.0.0\n \nWinPlayer\nWhite Black\n.0.0.\n00000\n.010.\n00000\n0.0.0\n \n \nFakeWall\nwhite\n \n \n \nLightSource\nblack\n.....\n.....\n.....\n.....\n.....\n \nLightFull\nblack\n.....\n.....\n.....\n.....\n.....\n(\nLightHalf\nblack\n0.0.0\n.0.0.\n0.0.0\n.0.0.\n0.0.0\n \nLightQuarter\nblack\n000.0\n.0000\n00.00\n0000.\n0.000\n)\n \nLightHalf\nblack\n...0.\n0....\n..0..\n....0\n.0...\n \nLightQuarter\nblack\n0.0.0\n.0.0.\n0.0.0\n.0.0.\n0.0.0\n \nLightNone\nblack\n00000\n00000\n00000\n00000\n00000\n \n \n \n \nOrbFree\nwhite white DarkGray\n.....\n.....\n.212.\n.111.\n.212.\n \n \nOrbHeld\nwhite white DarkGray\n.....\n.212.\n.111.\n.212.\n.....\n \n \nKeyFree\nLightGray LightGray DarkGray\n.....\n.....\n20...\n11111\n20.21\n \n \nKeyHeld\nLightGray LightGray DarkGray\n.....\n20...\n11111\n20.21\n.....\n \n \n \n \nDoor1\nlightgray black #111111\n22222\n22222\n22200\n22201\n22201\n \nDoor2\nlightgray black #111111\n22222\n22222\n00000\n11111\n11111\n \nDoor3\nlightgray black #111111\n22222\n22222\n00222\n10222\n10222\n \nDoor4\nlightgray black #111111\n22201\n22201\n22201\n22201\n22201\n \n \nDoor5\nlightgray black #111111\n11111\n11110\n11111\n11111\n11111\n \nDoor6\nlightgray black #111111\n10222\n10222\n10222\n10222\n10222\n \n \nLockedDoor\nblack LightGray DarkGray #111111\n01110\n10001\n11211\n11211\n11111\n \n \nLadder\nLightGray DarkGray\n.010.\n.000.\n.010.\n.000.\n.0.0.\n \n \n \n=======\nLEGEND\n=======\n \nBackground = BackgroundB or FakeWall or Door1 or Door2 or Door3 or Door4 or Door5 or Door6 or LockedDoor or Kill or Ladder\n \n. = BackgroundB\n# = FakeWall and Wall and WallObjects\n- = Kill\nP = Player\nO = OrbFree\nK = KeyFree\nC = FakeCrate and Crate and WallObjects\nN = Ladder\n \nAnyPlayer = PlayerMoved or Player\n \nLight = LightFull or LightHalf or LightSource or LightQuarter\n \nLight1 = LightFull or LightSource\nLight2 = Light1 or LightHalf\nLight3 = Light2 or LightQuarter\n \n \nOrb = OrbFree or OrbHeld\n \nObject = OrbFree or KeyFree\nHeldObject = OrbHeld or KeyHeld\n \n \nDoor = Door5\n \n1 = Door1\n2 = Door2\n3 = Door3\n4 = Door4\n5 = Door5\n6 = Door6\n \nL = LockedDoor\n \n \nPushBox = FakeCrate\n \n=======\nSOUNDS\n=======\n \nSFX0 58074303 (unlock)\nSFX1 41836303 (win)\n \nPlayer Move Up 6343505\nPlayer Move Down 59268304\nPlayer Move Horizontal 28923104\n \nObject Move Down 73389904\n \nFakeCrate Move 3842707\n \n================\nCOLLISIONLAYERS\n================\n \nBackground\n \n(FakeWall, Door1, Door2, Door3, Door4, Door5, Door6, LockedDoor, Kill)\n \n \n \nLight, LightNone, LightQuarter\n \nPlayer, PlayerMoved, Wall, WinPlayer, FakeCrate\n \nObject, WallObjects\n \nHeldObject, Crate\n \n======\nRULES\n======\n \n \n \n([ > Player | Crate ] -> [ > Player | > Crate ])\n \n(move held object with player)\nlate [HeldObject][Player no HeldObject] -> [][Player HeldObject]\n \n(lighting)\nlate [no Light] -> [LightNone]\nlate [Light] -> [LightNone]\nlate [Orb no LightSource] -> [Orb LightSource]\nlate [LightSource | no Light1] -> [LightSource | LightFull]\nlate [LightFull | no Light2] -> [LightFull | LightHalf]\nlate [LightHalf | no Light3] -> [LightHalf | LightQuarter]\n \n \n \n(move fake walls to collision layer)\n \nlate [Wall] -> [no Wall]\nlate [FakeWall Light no Wall] -> [FakeWall Light Wall]\n \nlate [WallObjects] -> [no WallObjects]\nlate [Wall no WallObjects] -> [Wall WallObjects]\n \nlate [FakeCrate no WallObjects] -> [FakeCrate WallObjects]\n \nlate [Crate] -> [no Crate]\nlate [FakeCrate no Crate] -> [FakeCrate Crate]\n \n \n \n(crate moving)\nhorizontal [> Player | PushBox] -> [> Player | > PushBox]\nhorizontal [> PushBox | PushBox] -> [> PushBox | > PushBox]\nhorizontal [> PushBox | Object] -> [> PushBox | > Object]\nhorizontal [> Object | Object] -> [> Object | > Object]\ndown [PushBox | no Wall no PushBox] -> [down PushBox | no Wall no PushBox] again\n \ndown [down PushBox | Object] -> [ | PushBox] again\n \ndown [Object | perpendicular PushBox] -> [perpendicular Object | perpendicular PushBox]\n \n(basic platforming)\nhorizontal [> Player | no Wall] -> [> PlayerMoved| no Wall] again\ndown [Player no Ladder | no Wall no Crate] -> [down Player no Ladder| no Wall no Crate] again\n \ndown [Player Ladder no Light | no Wall no Crate] -> [down Player Ladder | no Wall no Crate] again\n \ndown [PlayerMoved | no Wall] -> [Player | no Wall] again\n[PlayerMoved]->[Player]\n[action Player OrbFree no HeldObject] -> [Player OrbHeld]\n[action Player OrbHeld no Object] -> [Player OrbFree]\n \n[action Player KeyFree no HeldObject] -> [Player KeyHeld]\n[action Player KeyHeld no Object] -> [Player KeyFree]\n \n \n[up Player Door] -> [WinPlayer Door] win SFX1\n \n \n(gravity on free objects)\ndown [Object | no WallObjects] -> [down Object | no WallObjects] again\n \n(kill things that fall off the screen)\n[Kill Player] -> [Kill no Player]\n[Kill Object] -> [Kill no Object]\n[Kill HeldObject] -> [Kill no HeldObject]\n[Kill PushBox] -> [Kill no PushBox]\n \n(key-door check)\n[KeyHeld LockedDoor] -> [no KeyHeld Door] SFX0\n \n \n \n \n==============\nWINCONDITIONS\n==============\n \n \n=======\nLEVELS\n=======\n \n \n..............\n..............\n..............\n..............\n..............\n..............\n..............\n..............\n...........123\np.o........456\n##############\n--------------\n \n \n.............#........\n.............#........\n.............#........\n.............#........\n.............#........\n.............#........\n.............#........\n.............#........\n.............#........\n.............#........\n.............#........\n.............#.....123\n..po.........#..o..456\n######################\n----------------------\n \n \n...........##..........\n...........##..........\n...........##..........\n...........##..........\n...........##..........\n...........##..........\n...........##..........\n...........##..........\n...........##..........\n123........##..........\n4L6po......##..o.k.....\n#######################\n.......................\n-----------------------\n \n.......................\n.......................\n.......................\n.......................\n.......................\n....................123\n....................4L6\n............k.....#####\n............c.o...#####\n..........#############\n..po.c....#############\n#######################\n#######################\n-----------------------\n \n \n.......................\n.......................\n.......................\n.......................\n.......................\n.......................\n.......................\n.......................\n...............123.....\n.opk.c.o.......4L6.....\n##########.############\n##########.############\n#######################\n-----------------------\n \n.......................\n.......................\n.......................\n...pocc................\n#N##########...........\n#N##########...........\n#N##########........123\n#N##########........456\n#N##########........###\n#N..o.......o.......###\n###################.###\n#######################\n#######################\n-----------------------\n \nmessage You Win!\nmessage Check Out Closure at closuregame.com\n",[3,4,3,0,3,4,1,3,3,3,0,3,4,0,0,3,0,1,1,3,0,3,0,3,3,4,0,3,4,3,0,1,1,3,3,3,3,0,3,4,3,4,0,1,0,3,0,2],"backgroundb lightnone:0,0,0,0,0,0,0,0,0,0,0,fakewall lightnone:1,1,kill lightnone:2,0,0,0,0,0,0,0,0,0,\n0,0,1,1,2,0,0,0,0,0,0,0,0,0,0,0,1,1,2,0,0,0,0,\n0,0,0,0,0,0,0,1,1,2,0,0,0,0,0,0,0,0,0,0,0,1,1,\n2,0,0,0,0,0,0,0,0,0,0,0,1,1,2,0,0,0,0,0,0,0,0,\n0,0,0,1,1,2,0,0,0,0,0,0,0,0,0,0,0,1,1,2,0,0,0,\n0,0,0,0,0,backgroundb lightquarter:3,0,0,1,1,2,0,0,0,0,0,0,0,3,backgroundb lighthalf:4,3,0,1,\n1,2,0,0,0,0,0,0,3,4,backgroundb lightfull:5,fakewall lighthalf wall wallobjects:6,fakewall lightquarter wall wallobjects:7,1,1,2,0,0,0,0,0,3,4,\n5,backgroundb lightsource orbfree:8,fakewall lightfull wall wallobjects:9,6,7,1,2,0,0,0,0,0,0,3,4,5,6,7,1,1,2,0,0,\n0,0,0,0,0,3,4,7,1,1,1,2,0,0,0,0,0,0,0,0,3,1,1,\n1,1,2,0,0,0,0,0,0,0,3,4,7,1,1,1,2,0,0,0,0,0,0,\n3,4,backgroundb keyfree lightfull:10,6,7,1,1,2,0,0,0,0,0,3,4,5,backgroundb lightsource orbheld player:11,9,6,7,1,2,0,\n0,0,0,0,0,3,6,9,6,7,1,1,2,0,0,0,0,0,0,0,7,6,7,\n1,1,1,2,0,0,0,0,0,door1 lightnone:12,door4 lightnone:13,1,7,1,1,1,1,2,0,0,0,0,0,\ndoor2 lightnone:14,lightnone lockeddoor:15,1,1,1,1,1,1,2,0,0,0,0,0,door3 lightnone:16,door6 lightnone:17,1,1,1,1,1,1,2,\n",3,"1397314168422.1912"]
	],
	[
		"Color Chained",
		["title Colour Chained\nauthor Dennis Au\nyoutube _VzrmRkLfxM\nrun_rules_on_level_start\nagain_interval 0.015\nnoundo\n \n(version 201310152126 - added some harder levels, added sfx for rotate and drop, decided to use noundo)\n(version 201310142256 - tweaked scoring, added pop animation and reworked code)\n \n========\nOBJECTS\n========\nBackground\nBlack\n \nP1 p\nBlack\n0...0\n.....\n.....\n.....\n0...0\n \nP2 q\nBlack\n0...0\n.....\n.....\n.....\n0...0\n \nhasN\nOrange\n0....\n.....\n.....\n.....\n....0\n \nRemove\nWhite\n.....\n.....\n.....\n.....\n.....\n \n \nNP1 n\nWhite\n.....\n.....\n.....\n.....\n.....\n \nNP2 m\nWhite\n.....\n.....\n.....\n.....\n.....\n \nLoseFlag\nGrey Black LightGrey\n.....\n10120\n.....\n02010\n.....\n \nPieceGen\nBlack\n \nHBorder -\nDarkGrey\n.....\n.....\n0...0\n.....\n.....\n \nVBorder |\nDarkGrey\n..0..\n.....\n.....\n.....\n..0..\n \n(pieces)\nC1 R\nRed LightGrey Black\n.000.\n00010\n00000\n00000\n.000.\n \nC2 G\nGreen LightGrey Black\n.000.\n00010\n00000\n00000\n.000.\n \nC3 B\nBlue LightGrey Black\n.000.\n00010\n00000\n00000\n.000.\n \nC4 Y\nYellow LightGrey Black\n.000.\n00010\n00000\n00000\n.000.\n \n(Numbers)\nNo1 1\nDarkGrey\n..0..\n.00..\n..0..\n..0..\n.000.\n \nNo2 2\nDarkGrey\n.00..\n0..0.\n..0..\n.0...\n0000.\n \nNo3 3\nDarkGrey\n000..\n...0.\n.00..\n...0.\n000..\n \nNo4 4\nDarkGrey\n..0..\n.00..\n0.0..\n0000.\n..0..\n \nNo5 5\nDarkGrey\n0000.\n0....\n000..\n...0.\n000..\n \nNo6 6\nDarkGrey\n.00..\n0....\n000..\n0..0.\n.00..\n \nNo7 7\nDarkGrey\n0000.\n...0.\n..0..\n.0...\n0....\n \nNo8 8\nDarkGrey\n.00..\n0..0.\n.00..\n0..0.\n.00..\n \nNo9 9\nDarkGrey\n.00..\n0..0.\n.000.\n...0.\n.00..\n \nNo0 0\nDarkGrey\n.00..\n0..0.\n0..0.\n0..0.\n.00..\n \nPop\nLightGrey White\n...1.\n..101\n...1.\n.....\n.....\n \nInc\nBlack\n \nPlayArea\nGreen\n \n \n=======\nLEGEND\n=======\n. = Background\nu = PieceGen\n+ = Inc\n \nPlayer = P1 or P2\nPiece = C1 or C2 or C3 or C4\nPieceB = Piece\n \nNP = NP1 or NP2\nBorder = HBorder or VBorder\nScore = No1 or No2 or No3 or No4 or No5 or No6 or No7 or No8 or No9 or No0\n \nObstacle = Piece or Score\nMatch3Logic = hasN or Remove or Pop\n \n=======\nSOUNDS\n=======\nstartlevel 17589703\n \n(death)\nsfx0 45317502\n \n(match3)\nsfx1 530500\n \n(piece drop)\nsfx2 75273507\n \n(piece rotate)\nsfx3 21774107\n \n================\nCOLLISIONLAYERS\n================\nPlayArea\nBackground\nPlayer, NP, PieceGen, Border\nPiece, Score, Inc, \nMatch3Logic, LoseFlag\n \n======\nRULES\n======\n(set preview area)\n[] -> [PlayArea]\nDown [NP|PlayArea] -> [NP|]\nVertical [No PlayArea| PlayArea] -> [|]\n \n(match 3 rules)\nRight [C1|C1] -> [C1 hasN|C1 hasN]\nRight [C2|C2] -> [C2 hasN|C2 hasN]\nRight [C3|C3] -> [C3 hasN|C3 hasN]\nRight [C4|C4] -> [C4 hasN|C4 hasN]\n \nVertical [C1 hasN|C1] -> [Remove C1| Remove C1]\nVertical [C2 hasN|C2] -> [Remove C2| Remove C2]\nVertical [C3 hasN|C3] -> [Remove C3| Remove C3]\nVertical [C4 hasN|C4] -> [Remove C4| Remove C4]\n \n[Remove C1| C1] -> [Remove C1| Remove C1]\n[Remove C2| C2] -> [Remove C2| Remove C2]\n[Remove C3| C3] -> [Remove C3| Remove C3]\n[Remove C4| C4] -> [Remove C4| Remove C4]\n \n[C1|C1|C1] -> [Remove C1|Remove C1|Remove C1]\n[C2|C2|C2] -> [Remove C2|Remove C2|Remove C2]\n[C3|C3|C3] -> [Remove C3|Remove C3|Remove C3]\n[C4|C4|C4] -> [Remove C4|Remove C4|Remove C4]\n \n[hasN] -> []\n \n[PlayArea Remove Piece][P1] -> [PlayArea Pop][P1] sfx1\nrandom [Pop][inc] -> [][left inc] again\n \n \n(down drops pieces)\nDown [> Player Piece|No Piece] -> [Player|> Piece] sfx2\nDown [> Player No Piece] -> Cancel\n \n \n(x rotates clockwise)\n[Up P1|P2] -> [> P1|v P2] sfx3\n[Action P1|P2] -> [> P1|v P2] sfx3\n[Moving Player Piece] -> [Moving Player Moving Piece]\n[> Player| Border] -> cancel\n \n \n(gravity)\nDown [PlayArea Piece No Player|No Obstacle][stationary inc] -> [PlayArea|> Piece][stationary inc] again\n \n \n(explicit loss if piece ends on border)\n[Piece Border][stationary inc][P1] -> [Piece Border LoseFlag][inc][] sfx0\n[LoseFlag|No LoseFlag] -> [LoseFlag|LoseFlag] again\n \n \n(scoring)\n \nleft [> inc| score] -> [> inc| > score]\nleft [> No9| score] -> [No0|> score]\nleft [> No9| border] -> [No0| border]\n \nleft [> No0] -> [No1]\nleft [> No1] -> [No2]\nleft [> No2] -> [No3]\nleft [> No3] -> [No4]\nleft [> No4] -> [No5]\nleft [> No5] -> [No6]\nleft [> No6] -> [No7]\nleft [> No7] -> [No8]\nleft [> No8] -> [No9]\n \n \n(preview area)\n \nstartloop\n(for endless mode)\n[PieceGen No Piece] -> [PieceGen Random Piece]\n(antigrav)\nUp [Piece No PlayArea No NP| No Obstacle] -> [|> Piece]\n(get next piece)\n[P1 no Piece][P2 no Piece][NP1 Piece|NP2 PieceB]-> [P1 Piece][P2 PieceB][NP1|NP2]\nendloop\n \n \n==============\nWINCONDITIONS\n==============\nNo Piece\nNo Pop\n \n=======\nLEVELS\n=======\n(Empty Level Template\n \nnm|..pq..|\n..|......|\n..|------|\n..|......|\n..|......|\n..|......|\n..|......|\n..|......|\n..|......|\n..|000000+\n \n)\n \nnm|..pq..|\nRR|......|\n..|------|\n..|......|\n..|......|\n..|......|\n..|..Y...|\n..|..RR..|\n..|R.YY..|\n..|000000+\n \nnm|..pq..|\nGR|......|\n..|------|\n..|......|\n..|......|\n..|....B.|\n..|...BG.|\n..|...RG.|\n..|.R.RB.|\n..|000000+\n \nnm|..pq..|\nRR|......|\nBB|------|\nBR|......|\n..|......|\n..|......|\n..|......|\n..|....B.|\n..|..RRB.|\n..|000000+\n \n \nnm|..pq..|\nBG|......|\nRB|------|\n..|......|\n..|......|\n..|......|\n..|......|\n..|..GB..|\n..|RRGB..|\n..|000000+\n \nnm|..pq..|\nBG|......|\nGB|------|\n..|......|\n..|......|\n..|......|\n..|...G..|\n..|..BB..|\n..|..GG.B|\n..|000000+\n \nnm|..pq..|\nRG|......|\nGB|------|\nBR|......|\n..|......|\n..|......|\n..|...G..|\n..|...B..|\n..|..RRG.|\n..|000000+\n \nnm|..pq..|\nGR|......|\nRY|------|\nBG|......|\nYB|......|\n..|......|\n..|..B...|\n..|..RB..|\n..|.GYB..|\n..|000000+\n \nnm|..pq..|\nRG|......|\nYY|------|\nYG|......|\nBB|......|\n..|BY....|\n..|YB.G..|\n..|YRRG..|\n..|BGGBBY|\n..|000000+\n \nnm|..pq..|\nrb|......|\nbb|------|\nby|......|\nry|......|\n..|....r.|\n..|...rb.|\n..|.bybyb|\n..|bybyrr|\n..|000000+\n \nnm|..pq..|\nbr|......|\nry|------|\nyy|......|\n..|....b.|\n..|...gb.|\n..|...yy.|\n..|.bygb.|\n..|byrgrr|\n..|000000+\n \n \nnm|..pq..|\nby|......|\nry|------|\nry|......|\nyg|....y.|\n..|..rgby|\n..|b.gbyg|\n..|rrgbyg|\n..|bbyyrr|\n..|000000+\n \n \nmessage Thank you for playing.\nmessage Music: Puzzle Pieces - Desert of Lost Endings by Nick Tanski (nicholastanski.bandcamp.com)\n \n(endless mode)\nmessage Endless Mode unlocked!\n \nnm|..pq..|\n..|......|\n..|------|\n..|......|\n..|......|\n..|......|\n..|......|\n..|......|\n..|......|\nuu|000000+\n \n(CC BY-NC-SA 3.0)\n",[1,1,2,3,2,3,2,1,2],"background np1:0,background:1,1,1,1,1,1,1,1,1,\nbackground np2 remove:2,background remove:3,3,3,1,1,1,1,1,1,\nbackground playarea vborder:4,4,4,4,4,4,4,4,4,4,\nbackground playarea:5,5,background hborder playarea:6,5,5,background c3 playarea:7,7,background c1 playarea:8,7,background no0 playarea:9,\nbackground p1 playarea:10,5,6,5,5,background c4 playarea:11,11,8,7,9,\nbackground p2 playarea:12,5,6,5,5,5,5,5,11,9,\n5,5,6,5,5,5,7,7,11,9,\n5,5,6,5,5,7,11,11,8,background no1 playarea:13,\n5,5,6,5,5,11,background c2 playarea:14,14,8,9,\n4,4,4,4,4,4,4,4,4,background inc playarea:15,\n",10,"1397314339663.9756"]
	],
	[
		"Drop Swap",
		["title Drop Swap\nauthor Aaron Steed\nhomepage www.robotacid.com\n\nkey_repeat_interval 0.23\nagain_interval 0.05\nnoaction\nnoundo\nbackground_color Black\ntext_color Grey\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nBackground\nBlack\n\nPlayer\n#ffffff #000000 #626263 #3c3b3c \n.222.\n21112\n23132\n20102\n.222.\n\nDeadPlayer\n#ffffff #000000 #626263 #3c3b3c \n.222.\n21112\n21112\n23132\n.222.\n\nBaseWall\n#222222 #333333 #444444 #ffffff \n11110\n12220\n12200\n12000\n00000\n\nAPill\n#ff0000 #ff7374 #ff0000 #ff0000 \n.111.\n11110\n11010\n11100\n.000.\n\nBPill\n#00de00 #cffa92 #ff0000 #ff0000 \n.111.\n10010\n10110\n11100\n.000.\n\nCPill\n#7a35fc #b56bfd #ff0000 #ff0000 \n.111.\n10110\n11010\n11100\n.000.\n\nDPill\n#0094fc #79b5fd #ff0000 #ff0000 \n.111.\n10100\n11010\n10100\n.000.\n\nEPill\n#d1c200 #fff919 #ffffff #ff0000 \n.111.\n10010\n10010\n11110\n.000.\n\nFPill\n#ff33b1 #ff76d2 #ff0000 #ff0000 \n.111.\n10100\n11110\n10110\n.000.\n\nAllPill\n#eeee66 #ffffff #ffffcc #ffffff\n.112.\n11112\n11012\n21120\n.220.\n\nNoPill\n#ffffff #000000 #ffde85 #ff0000 \n.000.\n00000\n21012\n.000.\n..2..\n\nBomb\n#6e6e6e #000000 #ff0000 #fcf26b \n.020.\n02320\n01210\n01110\n.000.\n\nGemPill\n#ffffff #000000 #626263 #3c3b3c \n..0..\n.002.\n00022\n.223.\n..2..\n\nCount\n#ffffff #000000 #5a595a #ff0000 \n.....\n.000.\n.000.\n.000.\n.....\n\nMarked\n#ffffff #000000\n.....\n..1..\n.101.\n..1..\n.....\n\nCountTray\n#333333\n\nGemTray\n#333333\n\nStartGem\nred\n\nCollect\nWhite\n\nDebris1\n#ffffff #0739f5 #1f0f42 #ffffff\n.0.0.\n00.00\n..0..\n00.00\n.0.0.\n\nDebris2\n#ffffff #0739f5 #1f0f42 #ffffff \n.....\n.0.0.\n..0..\n.0.0.\n.....\n\nEmpty\nBlack\n\nOldPos\nBlack\n\nStartCount\nBlack\n\nDropWall1\n#222222 #333333 #444444 #ffffff\n11110\n12220\n12200\n12200\n12200\n\nDropWall2\n#222222 #333333 #444444 #ffffff \n11110\n12220\n12200\n12200\n12200\n\nDropWall3\n#222222 #333333 #444444 #ffffff \n11110\n12220\n12200\n12200\n12200\n\nDropWall4\n#222222 #333333 #444444 #ffffff \n11110\n12220\n12200\n12200\n12200\n\nDropMarker\nBlue\n\nInit\nPurple\n\n=======\nLEGEND\n=======\n\n. = Background\n@ = Player\np = DeadPlayer\n# = BaseWall\na = APill\nb = BPill\nc = CPill\nd = DPill\ne = EPill\nf = FPill\nn = NoPill\nx = AllPill\nu = Count and CountTray\nw = Count and CountTray and StartCount\ng = GemPill\nq = GemTray\no = GemTray and StartGem\np = Bomb\ni = Init\nj = DropWall1\nk = DropWall2\nl = DropWall3\nm = DropWall4\n\n\nMatchPill = APill or BPill or CPill or DPill or EPill or FPill or AllPill\nPill = MatchPill or NoPill or GemPill or Bomb\nDebris = Debris1 or Debris2\nAMatch = APill or AllPill\nBMatch = BPill or AllPill\nCMatch = CPill or AllPill\nDMatch = DPill or AllPill\nEMatch = EPill or AllPill\nFMatch = FPill or AllPill\nWall = BaseWall or DropWall1 or DropWall2 or DropWall3 or DropWall4\nItem = Pill or Debris or Wall or Player\nHeavy = Pill or Player\nDropping = Marked or DropMarker\nDropMix1 = APill or BPill or CPill or DPill or EPill\nDropMix2 = APill or BPill or CPill or DPill or EPill or GemPill\nDropMix3 = APill or BPill or CPill or DPill or EPill or NoPill\nDropMix4 = APill or BPill or CPill or DPill or EPill or FPill or GemPill\nDropMix5 = APill or BPill or CPill or DPill or EPill or FPill\nDropWallMarked = DropWall1 or DropWall3\n\n=======\nSOUNDS\n=======\n\nsfx0 54236904 (illegal)\nsfx1 5160507 (swap)\nsfx2 19008103 (allpill)\nsfx3 50665503 (crush 3)\nsfx4 80820507 (land)\nsfx5 2030908 (blast)\nsfx6 3032303 (bomb)\nsfx7 83704102 (dead)\nsfx8 7194508 (gem collect)\nEndLevel 16709508 (win)\n\n================\nCOLLISIONLAYERS\n================\n\n\nCollect, StartCount, StartGem\nBackground\nOldPos, CountTray, GemTray\nPlayer, Wall, Pill, Empty, Count, DeadPlayer, Bomb, Init\nDebris, Marked, DropMarker\n\n======\nRULES\n======\n\n(init)\n[ DropWall1 ] [ Init ] -> [ DropWall1 ] [ random DropMix1 Marked ]\n[ DropWall2 ] [ Init ] -> [ DropWall2 ] [ random DropMix1 ]\n[ DropWall3 ] [ Init ] -> [ DropWall3 ] [ random DropMix1 Marked ]\n[ DropWall4 ] [ Init ] -> [ DropWall4 ] [ random DropMix5 ]\n\n(debris clean up)\n[ Debris2 ] -> [ Empty ] again\n[ Debris1 ] -> [ Debris2 ] again\n\n(player - pill swapping)\n[ > Player | Pill ] -> [ Pill OldPos | Player ] sfx1\n[ Player Marked | OldPos ] -> [ Player | OldPos Marked ]\n\n(blocked move)\n[ > Player | No Pill ] -> [ Player | ] sfx0\n\n(pill combos)\n[ AMatch | AMatch | AMatch ] -> [ AMatch Collect | AMatch Collect | AMatch Collect ]\n[ BMatch | BMatch | BMatch ] -> [ BMatch Collect | BMatch Collect | BMatch Collect ]\n[ CMatch | CMatch | CMatch ] -> [ CMatch Collect | CMatch Collect | CMatch Collect ]\n[ DMatch | DMatch | DMatch ] -> [ DMatch Collect | DMatch Collect | DMatch Collect ]\n[ EMatch | EMatch | EMatch ] -> [ EMatch Collect | EMatch Collect | EMatch Collect ]\n[ FMatch | FMatch | FMatch ] -> [ FMatch Collect | FMatch Collect | FMatch Collect ]\n[ NoPill | NoPill | NoPill ] -> [ NoPill Collect | NoPill Collect | NoPill Collect ]\n\n(bomb activate)\n[ OldPos Bomb ] -> sfx5\nup [ OldPos Bomb | Pill ] -> [ OldPos Bomb | Pill > Collect ]\nright [ OldPos Bomb | Pill ] -> [ OldPos Bomb | Pill > Collect ]\ndown [ OldPos Bomb | Pill ] -> [ OldPos Bomb | Pill > Collect ]\nleft [ OldPos Bomb | Pill ] -> [ OldPos Bomb | Pill > Collect ]\n[ OldPos Bomb ] -> [ OldPos Empty ]\n\n(blast)\nup [ Pill > Collect | Pill ] -> [ Pill Collect | Pill > Collect ]\nright [ Pill > Collect | Pill ] -> [ Pill Collect | Pill > Collect ]\ndown [ Pill > Collect | Pill ] -> [ Pill Collect | Pill > Collect ]\nleft [ Pill > Collect | Pill ] -> [ Pill Collect | Pill > Collect ]\n[ > Collect ] -> [ Collect ]\n[ GemPill Collect ] -> [ GemPill ]\n\n(reward matches)\n(junction)\nRight [ Collect | Collect ] -> [ > Collect | > Collect ]\nDown [ Collect | Collect ] -> [ > Collect | > Collect ]\n[ Down Collect | Right Collect ] [ Collect OldPos ] -> [ Collect | Collect ] [ Bomb OldPos ] sfx6\n(4: create AllPill)\n[ MatchPill Collect | MatchPill Collect | MatchPill Collect | MatchPill Collect ] [ Collect OldPos ] -> [ MatchPill Collect | MatchPill Collect | MatchPill Collect | MatchPill Collect ] [ AllPill OldPos ] sfx2\n\n(count moves)\n(subtract on move)\nrandom right [ OldPos ] [ Count | No Count ] -> [ OldPos ] [ | ]\n(fill on Debris)\n[ Collect ] [ CountTray ] -> [ Collect ] [ CountTray Count ]\n\n(dead?)\n[ DeadPlayer ] -> cancel\n[ No Count StartCount CountTray ] [ Player ] -> [ No Count StartCount CountTray ] [ DeadPlayer ] sfx7\n[ Player | NoPill Collect ] -> [ DeadPlayer | NoPill ]\n[ DeadPlayer ] [ CountTray Count ] -> [ DeadPlayer ] [ CountTray ] sfx7\n\n(destroy matched)\n[ APill Collect ] -> [ Debris1 ] sfx3 again\n[ BPill Collect ] -> [ Debris1 ] sfx3 again\n[ CPill Collect ] -> [ Debris1 ] sfx3 again\n[ DPill Collect ] -> [ Debris1 ] sfx3 again\n[ EPill Collect ] -> [ Debris1 ] sfx3 again\n[ FPill Collect ] -> [ Debris1 ] sfx3 again\n[ AllPill Collect ] -> [ Debris1 ] sfx3 again\n[ Player ] [ NoPill Collect ] -> [ Player ] [ Debris1 ] sfx3 again\n\n(destroy NoPills)\ndown [ NoPill | Wall ] -> [ Debris1 | Wall ] again\n\n(collect gems)\ndown [ GemPill | Wall ] -> [ GemPill Collect | Wall ]\n[ GemPill Collect ] [ StartGem No GemPill ] -> [ Debris1 ] [ StartGem GemPill ] again sfx8\nright [ GemPill Collect ] [ GemPill GemTray | No GemPill GemTray ] -> [ Debris1 ] [ GemPill GemTray | GemPill GemTray ] again sfx8\n\n(drop)\n[ Heavy No Dropping ] -> [ Heavy DropMarker ]\ndown [ Heavy Dropping | Empty ] -> [ Empty | Heavy Dropping ]\n[ DropMarker ] -> [ ]\ndown [ DropWall1 | Empty ] -> [ DropWall1 | random DropMix1 ] again\ndown [ DropWall2 | Empty ] -> [ DropWall2 | random DropMix2 ] again\ndown [ DropWall3 | Empty ] -> [ DropWall3 | random DropMix3 ] again\ndown [ DropWall4 | Empty ] -> [ DropWall4 | random DropMix4 ] again\n\n(gem drop win)\nright [ GemPill GemTray | Wall ] -> win\n\n[ OldPos ] -> [ ]\n\n==============\nWINCONDITIONS\n==============\n\nNo Marked\nSome DropWallMarked\n\n======= \nLEVELS\n=======\n\nmessage collect orbs by matching 3\nmessage match 3 to restore move-energy\nmessage level 1: collect all marked orbs\n\nwuuuuu#\n#jjjjj#\n#iiiii#\n#iiiii#\n#iiiii#\n#iiiii#\n#ii@ii#\n#######\n\nmessage level 2: collect all marked orbs\n\nwuuuuuu#\n#jjjjjj#\n#iiiiii#\n#iiiiii#\n#iiiiii#\n#iiiiii#\n#iiiiii#\n#iiiiii#\n#iii@ii#\n########\n\nmessage collect gray gems by getting them to the bottom\nmessage level 3: collect 8 gems\n\noqqqqqqq#\nwuuuuuuu#\n#kkkkkkk#\n#iiiiiii#\n#iiiiiii#\n#iiiiiii#\n#iiiiiii#\n#iiiiiii#\n#iiiiiii#\n#iiiiiii#\n#iii@iii#\n#########\n\nmessage if you are next to 3 matching skulls you die\nmessage skulls can be destroyed by getting them to the bottom\nmessage level 4: collect all marked orbs\n\nwuuuuuu#\n#llllll#\n#iiiiii#\n#iiiiii#\n#iiiiii#\n#iiiiii#\n#iiiiii#\n#iiiiii#\n#iii@ii#\n########\n\nmessage level 5: collect 7 gems\n\noqqqqqqq#\nwuuuuuuu#\n#mmmmmmm#\n#iiiiiii#\n#iiiiiii#\n#iiiiiii#\n#iiiiiii#\n#iiiiiii#\n#iiiiiii#\n#iiiiiii#\n#iii@iii#\n#########\n\nmessage thanks for playing\n\n",[0,1,1,3,0,1,2,3,0,0,0,0,0],"background count counttray startcount:0,background basewall:1,1,1,1,1,1,\n1,background count counttray:2,background dropwall1:3,background bpill:4,4,apill background marked:5,5,\nbackground epill marked:6,1,2,3,background cpill:7,background player:8,background epill:9,\nbackground dpill:10,4,1,2,3,9,10,\napill background:11,7,4,1,2,3,4,\n11,6,5,6,1,2,3,\nbackground dpill marked:12,6,background cpill marked:13,background bpill marked:14,13,1,1,\n1,1,1,1,1,1,1,\n",3,"1397737011377.065"]
	],
	[
		"Drop Swap 2",
		["title Drop Swap\nauthor Aaron Steed\nhomepage www.robotacid.com\n\nkey_repeat_interval 0.23\nagain_interval 0.05\nnoaction\nnoundo\nbackground_color Black\ntext_color Grey\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nBackground\nBlack\n\nPlayer\n#ffffff #000000 #626263 #3c3b3c \n.222.\n21112\n23132\n20102\n.222.\n\nDeadPlayer\n#ffffff #000000 #626263 #3c3b3c \n.222.\n21112\n21112\n23132\n.222.\n\nBaseWall\n#222222 #333333 #444444 #ffffff \n11110\n12220\n12200\n12000\n00000\n\nAPill\n#ff0000 #ff7374 #ff0000 #ff0000 \n.111.\n11110\n11010\n11100\n.000.\n\nBPill\n#00de00 #cffa92 #ff0000 #ff0000 \n.111.\n10010\n10110\n11100\n.000.\n\nCPill\n#7a35fc #b56bfd #ff0000 #ff0000 \n.111.\n10110\n11010\n11100\n.000.\n\nDPill\n#0094fc #79b5fd #ff0000 #ff0000 \n.111.\n10100\n11010\n10100\n.000.\n\nEPill\n#d1c200 #fff919 #ffffff #ff0000 \n.111.\n10010\n10010\n11110\n.000.\n\nFPill\n#ff33b1 #ff76d2 #ff0000 #ff0000 \n.111.\n10100\n11110\n10110\n.000.\n\nAllPill\n#eeee66 #ffffff #ffffcc #ffffff\n.112.\n11112\n11012\n21120\n.220.\n\nNoPill\n#ffffff #000000 #ffde85 #ff0000 \n.000.\n00000\n21012\n.000.\n..2..\n\nBomb\n#6e6e6e #000000 #ff0000 #fcf26b \n.020.\n02320\n01210\n01110\n.000.\n\nGemPill\n#ffffff #000000 #626263 #3c3b3c \n..0..\n.002.\n00022\n.223.\n..2..\n\nCount\n#ffffff #000000 #5a595a #ff0000 \n.....\n.000.\n.000.\n.000.\n.....\n\nMarked\n#ffffff #000000\n.....\n..1..\n.101.\n..1..\n.....\n\nCountTray\n#333333\n\nGemTray\n#333333\n\nStartGem\nred\n\nCollect\nWhite\n\nDebris1\n#ffffff #0739f5 #1f0f42 #ffffff\n.0.0.\n00.00\n..0..\n00.00\n.0.0.\n\nDebris2\n#ffffff #0739f5 #1f0f42 #ffffff \n.....\n.0.0.\n..0..\n.0.0.\n.....\n\nEmpty\nBlack\n\nOldPos\nBlack\n\nStartCount\nBlack\n\nDropWall1\n#222222 #333333 #444444 #ffffff\n11110\n12220\n12200\n12200\n12200\n\nDropWall2\n#222222 #333333 #444444 #ffffff \n11110\n12220\n12200\n12200\n12200\n\nDropWall3\n#222222 #333333 #444444 #ffffff \n11110\n12220\n12200\n12200\n12200\n\nDropWall4\n#222222 #333333 #444444 #ffffff \n11110\n12220\n12200\n12200\n12200\n\nDropMarker\nBlue\n\nInit\nPurple\n\n=======\nLEGEND\n=======\n\n. = Background\n@ = Player\np = DeadPlayer\n# = BaseWall\na = APill\nb = BPill\nc = CPill\nd = DPill\ne = EPill\nf = FPill\nn = NoPill\nx = AllPill\nu = Count and CountTray\nw = Count and CountTray and StartCount\ng = GemPill\nq = GemTray\no = GemTray and StartGem\np = Bomb\ni = Init\nj = DropWall1\nk = DropWall2\nl = DropWall3\nm = DropWall4\n\n\nMatchPill = APill or BPill or CPill or DPill or EPill or FPill or AllPill\nPill = MatchPill or NoPill or GemPill or Bomb\nDebris = Debris1 or Debris2\nAMatch = APill or AllPill\nBMatch = BPill or AllPill\nCMatch = CPill or AllPill\nDMatch = DPill or AllPill\nEMatch = EPill or AllPill\nFMatch = FPill or AllPill\nWall = BaseWall or DropWall1 or DropWall2 or DropWall3 or DropWall4\nItem = Pill or Debris or Wall or Player\nHeavy = Pill or Player\nDropping = Marked or DropMarker\nDropMix1 = APill or BPill or CPill or DPill or EPill\nDropMix2 = APill or BPill or CPill or DPill or EPill or GemPill\nDropMix3 = APill or BPill or CPill or DPill or EPill or NoPill\nDropMix4 = APill or BPill or CPill or DPill or EPill or FPill or GemPill\nDropMix5 = APill or BPill or CPill or DPill or EPill or FPill\nDropWallMarked = DropWall1 or DropWall3\n\n=======\nSOUNDS\n=======\n\nsfx0 54236904 (illegal)\nsfx1 5160507 (swap)\nsfx2 19008103 (allpill)\nsfx3 50665503 (crush 3)\nsfx4 80820507 (land)\nsfx5 2030908 (blast)\nsfx6 3032303 (bomb)\nsfx7 83704102 (dead)\nsfx8 7194508 (gem collect)\nEndLevel 16709508 (win)\n\n================\nCOLLISIONLAYERS\n================\n\n\nCollect, StartCount, StartGem\nBackground\nOldPos, CountTray, GemTray\nPlayer, Wall, Pill, Empty, Count, DeadPlayer, Bomb, Init\nDebris, Marked, DropMarker\n\n======\nRULES\n======\n\n(init)\n[ DropWall1 ] [ Init ] -> [ DropWall1 ] [ random DropMix1 Marked ]\n[ DropWall2 ] [ Init ] -> [ DropWall2 ] [ random DropMix1 ]\n[ DropWall3 ] [ Init ] -> [ DropWall3 ] [ random DropMix1 Marked ]\n[ DropWall4 ] [ Init ] -> [ DropWall4 ] [ random DropMix5 ]\n\n(debris clean up)\n[ Debris2 ] -> [ Empty ] again\n[ Debris1 ] -> [ Debris2 ] again\n\n(player - pill swapping)\n[ > Player | Pill ] -> [ Pill OldPos | Player ] sfx1\n[ Player Marked | OldPos ] -> [ Player | OldPos Marked ]\n\n(blocked move)\n[ > Player | No Pill ] -> [ Player | ] sfx0\n\n(pill combos)\n[ AMatch | AMatch | AMatch ] -> [ AMatch Collect | AMatch Collect | AMatch Collect ]\n[ BMatch | BMatch | BMatch ] -> [ BMatch Collect | BMatch Collect | BMatch Collect ]\n[ CMatch | CMatch | CMatch ] -> [ CMatch Collect | CMatch Collect | CMatch Collect ]\n[ DMatch | DMatch | DMatch ] -> [ DMatch Collect | DMatch Collect | DMatch Collect ]\n[ EMatch | EMatch | EMatch ] -> [ EMatch Collect | EMatch Collect | EMatch Collect ]\n[ FMatch | FMatch | FMatch ] -> [ FMatch Collect | FMatch Collect | FMatch Collect ]\n[ NoPill | NoPill | NoPill ] -> [ NoPill Collect | NoPill Collect | NoPill Collect ]\n\n(bomb activate)\n[ OldPos Bomb ] -> sfx5\nup [ OldPos Bomb | Pill ] -> [ OldPos Bomb | Pill > Collect ]\nright [ OldPos Bomb | Pill ] -> [ OldPos Bomb | Pill > Collect ]\ndown [ OldPos Bomb | Pill ] -> [ OldPos Bomb | Pill > Collect ]\nleft [ OldPos Bomb | Pill ] -> [ OldPos Bomb | Pill > Collect ]\n[ OldPos Bomb ] -> [ OldPos Empty ]\n\n(blast)\nup [ Pill > Collect | Pill ] -> [ Pill Collect | Pill > Collect ]\nright [ Pill > Collect | Pill ] -> [ Pill Collect | Pill > Collect ]\ndown [ Pill > Collect | Pill ] -> [ Pill Collect | Pill > Collect ]\nleft [ Pill > Collect | Pill ] -> [ Pill Collect | Pill > Collect ]\n[ > Collect ] -> [ Collect ]\n[ GemPill Collect ] -> [ GemPill ]\n\n(reward matches)\n(junction)\nRight [ Collect | Collect ] -> [ > Collect | > Collect ]\nDown [ Collect | Collect ] -> [ > Collect | > Collect ]\n[ Down Collect | Right Collect ] [ Collect OldPos ] -> [ Collect | Collect ] [ Bomb OldPos ] sfx6\n(4: create AllPill)\n[ MatchPill Collect | MatchPill Collect | MatchPill Collect | MatchPill Collect ] [ Collect OldPos ] -> [ MatchPill Collect | MatchPill Collect | MatchPill Collect | MatchPill Collect ] [ AllPill OldPos ] sfx2\n\n(count moves)\n(subtract on move)\nrandom right [ OldPos ] [ Count | No Count ] -> [ OldPos ] [ | ]\n(fill on Debris)\n[ Collect ] [ CountTray ] -> [ Collect ] [ CountTray Count ]\n\n(dead?)\n[ DeadPlayer ] -> cancel\n[ No Count StartCount CountTray ] [ Player ] -> [ No Count StartCount CountTray ] [ DeadPlayer ] sfx7\n[ Player | NoPill Collect ] -> [ DeadPlayer | NoPill ]\n[ DeadPlayer ] [ CountTray Count ] -> [ DeadPlayer ] [ CountTray ] sfx7\n\n(destroy matched)\n[ APill Collect ] -> [ Debris1 ] sfx3 again\n[ BPill Collect ] -> [ Debris1 ] sfx3 again\n[ CPill Collect ] -> [ Debris1 ] sfx3 again\n[ DPill Collect ] -> [ Debris1 ] sfx3 again\n[ EPill Collect ] -> [ Debris1 ] sfx3 again\n[ FPill Collect ] -> [ Debris1 ] sfx3 again\n[ AllPill Collect ] -> [ Debris1 ] sfx3 again\n[ Player ] [ NoPill Collect ] -> [ Player ] [ Debris1 ] sfx3 again\n\n(destroy NoPills)\ndown [ NoPill | Wall ] -> [ Debris1 | Wall ] again\n\n(collect gems)\ndown [ GemPill | Wall ] -> [ GemPill Collect | Wall ]\n[ GemPill Collect ] [ StartGem No GemPill ] -> [ Debris1 ] [ StartGem GemPill ] again sfx8\nright [ GemPill Collect ] [ GemPill GemTray | No GemPill GemTray ] -> [ Debris1 ] [ GemPill GemTray | GemPill GemTray ] again sfx8\n\n(drop)\n[ Heavy No Dropping ] -> [ Heavy DropMarker ]\ndown [ Heavy Dropping | Empty ] -> [ Empty | Heavy Dropping ]\n[ DropMarker ] -> [ ]\ndown [ DropWall1 | Empty ] -> [ DropWall1 | random DropMix1 ] again\ndown [ DropWall2 | Empty ] -> [ DropWall2 | random DropMix2 ] again\ndown [ DropWall3 | Empty ] -> [ DropWall3 | random DropMix3 ] again\ndown [ DropWall4 | Empty ] -> [ DropWall4 | random DropMix4 ] again\n\n(gem drop win)\nright [ GemPill GemTray | Wall ] -> win\n\n[ OldPos ] -> [ ]\n\n==============\nWINCONDITIONS\n==============\n\nNo Marked\nSome DropWallMarked\n\n======= \nLEVELS\n=======\n\nmessage collect orbs by matching 3\nmessage match 3 to restore move-energy\nmessage level 1: collect all marked orbs\n\nwuuuuu#\n#jjjjj#\n#iiiii#\n#iiiii#\n#iiiii#\n#iiiii#\n#ii@ii#\n#######\n\nmessage level 2: collect all marked orbs\n\nwuuuuuu#\n#jjjjjj#\n#iiiiii#\n#iiiiii#\n#iiiiii#\n#iiiiii#\n#iiiiii#\n#iiiiii#\n#iii@ii#\n########\n\nmessage collect gray gems by getting them to the bottom\nmessage level 3: collect 8 gems\n\noqqqqqqq#\nwuuuuuuu#\n#kkkkkkk#\n#iiiiiii#\n#iiiiiii#\n#iiiiiii#\n#iiiiiii#\n#iiiiiii#\n#iiiiiii#\n#iiiiiii#\n#iii@iii#\n#########\n\nmessage if you are next to 3 matching skulls you die\nmessage skulls can be destroyed by getting them to the bottom\nmessage level 4: collect all marked orbs\n\nwuuuuuu#\n#llllll#\n#iiiiii#\n#iiiiii#\n#iiiiii#\n#iiiiii#\n#iiiiii#\n#iiiiii#\n#iii@ii#\n########\n\nmessage level 5: collect 7 gems\n\noqqqqqqq#\nwuuuuuuu#\n#mmmmmmm#\n#iiiiiii#\n#iiiiiii#\n#iiiiiii#\n#iiiiiii#\n#iiiiiii#\n#iiiiiii#\n#iiiiiii#\n#iii@iii#\n#########\n\nmessage thanks for playing\n\n",[0,1,2,1,3,0,1,2,3,0,1],"background counttray startcount:0,background basewall:1,1,1,1,1,1,1,\n1,1,background counttray:2,background dropwall1:3,background cpill:4,background epill:5,apill background:6,5,\n6,6,background epill marked:7,1,2,3,5,background dpill marked:8,\nbackground cpill marked:9,9,8,background deadplayer:10,background bpill marked:11,1,2,3,\nbackground dpill:12,background bpill:13,6,6,7,11,9,1,\n2,3,12,4,13,7,7,11,\napill background marked:14,1,2,3,14,14,8,9,\n14,8,7,1,2,3,14,14,\n9,7,11,7,9,1,1,1,\n1,1,1,1,1,1,1,1,\n",5,"1397737044719.822"]
	],
	[
		"Drop Swap 3",
		["title Drop Swap\nauthor Aaron Steed\nhomepage www.robotacid.com\n\nkey_repeat_interval 0.23\nagain_interval 0.05\nnoaction\nnoundo\nbackground_color Black\ntext_color Grey\nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nBackground\nBlack\n\nPlayer\n#ffffff #000000 #626263 #3c3b3c \n.222.\n21112\n23132\n20102\n.222.\n\nDeadPlayer\n#ffffff #000000 #626263 #3c3b3c \n.222.\n21112\n21112\n23132\n.222.\n\nBaseWall\n#222222 #333333 #444444 #ffffff \n11110\n12220\n12200\n12000\n00000\n\nAPill\n#ff0000 #ff7374 #ff0000 #ff0000 \n.111.\n11110\n11010\n11100\n.000.\n\nBPill\n#00de00 #cffa92 #ff0000 #ff0000 \n.111.\n10010\n10110\n11100\n.000.\n\nCPill\n#7a35fc #b56bfd #ff0000 #ff0000 \n.111.\n10110\n11010\n11100\n.000.\n\nDPill\n#0094fc #79b5fd #ff0000 #ff0000 \n.111.\n10100\n11010\n10100\n.000.\n\nEPill\n#d1c200 #fff919 #ffffff #ff0000 \n.111.\n10010\n10010\n11110\n.000.\n\nFPill\n#ff33b1 #ff76d2 #ff0000 #ff0000 \n.111.\n10100\n11110\n10110\n.000.\n\nAllPill\n#eeee66 #ffffff #ffffcc #ffffff\n.112.\n11112\n11012\n21120\n.220.\n\nNoPill\n#ffffff #000000 #ffde85 #ff0000 \n.000.\n00000\n21012\n.000.\n..2..\n\nBomb\n#6e6e6e #000000 #ff0000 #fcf26b \n.020.\n02320\n01210\n01110\n.000.\n\nGemPill\n#ffffff #000000 #626263 #3c3b3c \n..0..\n.002.\n00022\n.223.\n..2..\n\nCount\n#ffffff #000000 #5a595a #ff0000 \n.....\n.000.\n.000.\n.000.\n.....\n\nMarked\n#ffffff #000000\n.....\n..1..\n.101.\n..1..\n.....\n\nCountTray\n#333333\n\nGemTray\n#333333\n\nStartGem\nred\n\nCollect\nWhite\n\nDebris1\n#ffffff #0739f5 #1f0f42 #ffffff\n.0.0.\n00.00\n..0..\n00.00\n.0.0.\n\nDebris2\n#ffffff #0739f5 #1f0f42 #ffffff \n.....\n.0.0.\n..0..\n.0.0.\n.....\n\nEmpty\nBlack\n\nOldPos\nBlack\n\nStartCount\nBlack\n\nDropWall1\n#222222 #333333 #444444 #ffffff\n11110\n12220\n12200\n12200\n12200\n\nDropWall2\n#222222 #333333 #444444 #ffffff \n11110\n12220\n12200\n12200\n12200\n\nDropWall3\n#222222 #333333 #444444 #ffffff \n11110\n12220\n12200\n12200\n12200\n\nDropWall4\n#222222 #333333 #444444 #ffffff \n11110\n12220\n12200\n12200\n12200\n\nDropMarker\nBlue\n\nInit\nPurple\n\n=======\nLEGEND\n=======\n\n. = Background\n@ = Player\np = DeadPlayer\n# = BaseWall\na = APill\nb = BPill\nc = CPill\nd = DPill\ne = EPill\nf = FPill\nn = NoPill\nx = AllPill\nu = Count and CountTray\nw = Count and CountTray and StartCount\ng = GemPill\nq = GemTray\no = GemTray and StartGem\np = Bomb\ni = Init\nj = DropWall1\nk = DropWall2\nl = DropWall3\nm = DropWall4\n\n\nMatchPill = APill or BPill or CPill or DPill or EPill or FPill or AllPill\nPill = MatchPill or NoPill or GemPill or Bomb\nDebris = Debris1 or Debris2\nAMatch = APill or AllPill\nBMatch = BPill or AllPill\nCMatch = CPill or AllPill\nDMatch = DPill or AllPill\nEMatch = EPill or AllPill\nFMatch = FPill or AllPill\nWall = BaseWall or DropWall1 or DropWall2 or DropWall3 or DropWall4\nItem = Pill or Debris or Wall or Player\nHeavy = Pill or Player\nDropping = Marked or DropMarker\nDropMix1 = APill or BPill or CPill or DPill or EPill\nDropMix2 = APill or BPill or CPill or DPill or EPill or GemPill\nDropMix3 = APill or BPill or CPill or DPill or EPill or NoPill\nDropMix4 = APill or BPill or CPill or DPill or EPill or FPill or GemPill\nDropMix5 = APill or BPill or CPill or DPill or EPill or FPill\nDropWallMarked = DropWall1 or DropWall3\n\n=======\nSOUNDS\n=======\n\nsfx0 54236904 (illegal)\nsfx1 5160507 (swap)\nsfx2 19008103 (allpill)\nsfx3 50665503 (crush 3)\nsfx4 80820507 (land)\nsfx5 2030908 (blast)\nsfx6 3032303 (bomb)\nsfx7 83704102 (dead)\nsfx8 7194508 (gem collect)\nEndLevel 16709508 (win)\n\n================\nCOLLISIONLAYERS\n================\n\n\nCollect, StartCount, StartGem\nBackground\nOldPos, CountTray, GemTray\nPlayer, Wall, Pill, Empty, Count, DeadPlayer, Bomb, Init\nDebris, Marked, DropMarker\n\n======\nRULES\n======\n\n(init)\n[ DropWall1 ] [ Init ] -> [ DropWall1 ] [ random DropMix1 Marked ]\n[ DropWall2 ] [ Init ] -> [ DropWall2 ] [ random DropMix1 ]\n[ DropWall3 ] [ Init ] -> [ DropWall3 ] [ random DropMix1 Marked ]\n[ DropWall4 ] [ Init ] -> [ DropWall4 ] [ random DropMix5 ]\n\n(debris clean up)\n[ Debris2 ] -> [ Empty ] again\n[ Debris1 ] -> [ Debris2 ] again\n\n(player - pill swapping)\n[ > Player | Pill ] -> [ Pill OldPos | Player ] sfx1\n[ Player Marked | OldPos ] -> [ Player | OldPos Marked ]\n\n(blocked move)\n[ > Player | No Pill ] -> [ Player | ] sfx0\n\n(pill combos)\n[ AMatch | AMatch | AMatch ] -> [ AMatch Collect | AMatch Collect | AMatch Collect ]\n[ BMatch | BMatch | BMatch ] -> [ BMatch Collect | BMatch Collect | BMatch Collect ]\n[ CMatch | CMatch | CMatch ] -> [ CMatch Collect | CMatch Collect | CMatch Collect ]\n[ DMatch | DMatch | DMatch ] -> [ DMatch Collect | DMatch Collect | DMatch Collect ]\n[ EMatch | EMatch | EMatch ] -> [ EMatch Collect | EMatch Collect | EMatch Collect ]\n[ FMatch | FMatch | FMatch ] -> [ FMatch Collect | FMatch Collect | FMatch Collect ]\n[ NoPill | NoPill | NoPill ] -> [ NoPill Collect | NoPill Collect | NoPill Collect ]\n\n(bomb activate)\n[ OldPos Bomb ] -> sfx5\nup [ OldPos Bomb | Pill ] -> [ OldPos Bomb | Pill > Collect ]\nright [ OldPos Bomb | Pill ] -> [ OldPos Bomb | Pill > Collect ]\ndown [ OldPos Bomb | Pill ] -> [ OldPos Bomb | Pill > Collect ]\nleft [ OldPos Bomb | Pill ] -> [ OldPos Bomb | Pill > Collect ]\n[ OldPos Bomb ] -> [ OldPos Empty ]\n\n(blast)\nup [ Pill > Collect | Pill ] -> [ Pill Collect | Pill > Collect ]\nright [ Pill > Collect | Pill ] -> [ Pill Collect | Pill > Collect ]\ndown [ Pill > Collect | Pill ] -> [ Pill Collect | Pill > Collect ]\nleft [ Pill > Collect | Pill ] -> [ Pill Collect | Pill > Collect ]\n[ > Collect ] -> [ Collect ]\n[ GemPill Collect ] -> [ GemPill ]\n\n(reward matches)\n(junction)\nRight [ Collect | Collect ] -> [ > Collect | > Collect ]\nDown [ Collect | Collect ] -> [ > Collect | > Collect ]\n[ Down Collect | Right Collect ] [ Collect OldPos ] -> [ Collect | Collect ] [ Bomb OldPos ] sfx6\n(4: create AllPill)\n[ MatchPill Collect | MatchPill Collect | MatchPill Collect | MatchPill Collect ] [ Collect OldPos ] -> [ MatchPill Collect | MatchPill Collect | MatchPill Collect | MatchPill Collect ] [ AllPill OldPos ] sfx2\n\n(count moves)\n(subtract on move)\nrandom right [ OldPos ] [ Count | No Count ] -> [ OldPos ] [ | ]\n(fill on Debris)\n[ Collect ] [ CountTray ] -> [ Collect ] [ CountTray Count ]\n\n(dead?)\n[ DeadPlayer ] -> cancel\n[ No Count StartCount CountTray ] [ Player ] -> [ No Count StartCount CountTray ] [ DeadPlayer ] sfx7\n[ Player | NoPill Collect ] -> [ DeadPlayer | NoPill ]\n[ DeadPlayer ] [ CountTray Count ] -> [ DeadPlayer ] [ CountTray ] sfx7\n\n(destroy matched)\n[ APill Collect ] -> [ Debris1 ] sfx3 again\n[ BPill Collect ] -> [ Debris1 ] sfx3 again\n[ CPill Collect ] -> [ Debris1 ] sfx3 again\n[ DPill Collect ] -> [ Debris1 ] sfx3 again\n[ EPill Collect ] -> [ Debris1 ] sfx3 again\n[ FPill Collect ] -> [ Debris1 ] sfx3 again\n[ AllPill Collect ] -> [ Debris1 ] sfx3 again\n[ Player ] [ NoPill Collect ] -> [ Player ] [ Debris1 ] sfx3 again\n\n(destroy NoPills)\ndown [ NoPill | Wall ] -> [ Debris1 | Wall ] again\n\n(collect gems)\ndown [ GemPill | Wall ] -> [ GemPill Collect | Wall ]\n[ GemPill Collect ] [ StartGem No GemPill ] -> [ Debris1 ] [ StartGem GemPill ] again sfx8\nright [ GemPill Collect ] [ GemPill GemTray | No GemPill GemTray ] -> [ Debris1 ] [ GemPill GemTray | GemPill GemTray ] again sfx8\n\n(drop)\n[ Heavy No Dropping ] -> [ Heavy DropMarker ]\ndown [ Heavy Dropping | Empty ] -> [ Empty | Heavy Dropping ]\n[ DropMarker ] -> [ ]\ndown [ DropWall1 | Empty ] -> [ DropWall1 | random DropMix1 ] again\ndown [ DropWall2 | Empty ] -> [ DropWall2 | random DropMix2 ] again\ndown [ DropWall3 | Empty ] -> [ DropWall3 | random DropMix3 ] again\ndown [ DropWall4 | Empty ] -> [ DropWall4 | random DropMix4 ] again\n\n(gem drop win)\nright [ GemPill GemTray | Wall ] -> win\n\n[ OldPos ] -> [ ]\n\n==============\nWINCONDITIONS\n==============\n\nNo Marked\nSome DropWallMarked\n\n======= \nLEVELS\n=======\n\nmessage collect orbs by matching 3\nmessage match 3 to restore move-energy\nmessage level 1: collect all marked orbs\n\nwuuuuu#\n#jjjjj#\n#iiiii#\n#iiiii#\n#iiiii#\n#iiiii#\n#ii@ii#\n#######\n\nmessage level 2: collect all marked orbs\n\nwuuuuuu#\n#jjjjjj#\n#iiiiii#\n#iiiiii#\n#iiiiii#\n#iiiiii#\n#iiiiii#\n#iiiiii#\n#iii@ii#\n########\n\nmessage collect gray gems by getting them to the bottom\nmessage level 3: collect 8 gems\n\noqqqqqqq#\nwuuuuuuu#\n#kkkkkkk#\n#iiiiiii#\n#iiiiiii#\n#iiiiiii#\n#iiiiiii#\n#iiiiiii#\n#iiiiiii#\n#iiiiiii#\n#iii@iii#\n#########\n\nmessage if you are next to 3 matching skulls you die\nmessage skulls can be destroyed by getting them to the bottom\nmessage level 4: collect all marked orbs\n\nwuuuuuu#\n#llllll#\n#iiiiii#\n#iiiiii#\n#iiiiii#\n#iiiiii#\n#iiiiii#\n#iiiiii#\n#iii@ii#\n########\n\nmessage level 5: collect 7 gems\n\noqqqqqqq#\nwuuuuuuu#\n#mmmmmmm#\n#iiiiiii#\n#iiiiiii#\n#iiiiiii#\n#iiiiiii#\n#iiiiiii#\n#iiiiiii#\n#iiiiiii#\n#iii@iii#\n#########\n\nmessage thanks for playing\n\n",["restart",3,0,0,3,3,1,0,1,2,3,0,0,1,2,2,1,0,0,0,0,0,1,1,0,0,0,2,1,0,3,2],"background gempill gemtray startgem:0,background count counttray startcount:1,background basewall:2,2,2,2,2,2,2,\n2,2,2,background gemtray:3,background count counttray:4,background dropwall2:5,background gempill:6,background bpill:7,background dpill:8,\napill background:9,8,background epill:10,7,9,2,3,4,5,\n8,10,background player:11,10,6,8,10,8,2,\n3,4,5,8,6,6,7,6,9,\nbackground cpill:12,10,2,3,4,5,9,6,7,\n6,6,6,8,10,2,3,4,5,\n10,10,9,8,6,8,12,7,2,\n3,4,5,9,10,7,9,7,7,\n10,8,2,3,4,5,7,8,7,\n7,12,12,8,10,2,2,2,2,\n2,2,2,2,2,2,2,2,2,\n",8,"1397737071059.7979"]
	],
	[
		"Threes",
		["title Threes: The Demake\nauthor Benjamin Davis\nhomepage threesgame.com\n \nagain_interval 0.5\nbackground_color #F9F9F9\ncolor_palette arnecolors\nflickscreen 11x6\nkey_repeat_interval 0.25\nnoaction\nnoundo\ntext_color #777E8C\nrun_rules_on_level_start\n \n========\nOBJECTS\n========\n \n1\n#F9F9F9\n000.0\n000.0\n000.0\n000.0\n000.0\n \n2\n#F9F9F9\n....0\n000.0\n....0\n.0000\n....0\n \n3\n#F9F9F9\n....0\n000.0\n0...0\n000.0\n....0\n \n4\n#F9F9F9\n.00.0\n.00.0\n....0\n000.0\n000.0\n \n5\n#F9F9F9\n....0\n.0000\n....0\n000.0\n....0\n \n6\n#F9F9F9\n.0000\n.0000\n....0\n.00.0\n....0\n \n7\n#F9F9F9\n....0\n000.0\n000.0\n000.0\n000.0\n \n8\n#F9F9F9\n....0\n.00.0\n....0\n.00.0\n....0\n \n9\n#F9F9F9\n....0\n.00.0\n....0\n000.0\n000.0\n \n0\n#F9F9F9\n....0\n.00.0\n.00.0\n.00.0\n....0\n \nCarry\n#F9F9F9\n00000\n00.00\n0...0\n00.00\n00000\n \nBlock1\n#65CDFF #5DAAFA\n.000.\n.000.\n.000.\n.111.\n.....\n \nBlock2\n#FF6780 #CA4F7B\n.000.\n.000.\n.000.\n.111.\n.....\n \nBlock1Grey\n#999999 #666666\n.000.\n.000.\n.000.\n.111.\n.....\n \nBlock2Grey\n#666666 #333333\n.000.\n.000.\n.000.\n.111.\n.....\n \nBlock3\nWhite #F8CB66 LightGrey #D8A667\n.200.\n.000.\n.000.\n.111.\n.....\n \nBlock6\nWhite #F8CB66 LightGrey #D8A667\n.220.\n.000.\n.000.\n.111.\n.....\n \nBlock12\nWhite #F8CB66 LightGrey #D8A667\n.222.\n.000.\n.000.\n.111.\n.....\n \nBlock24\nWhite #F8CB66 LightGrey #D8A667\n.222.\n.200.\n.000.\n.111.\n.....\n \nBlock48\nWhite #F8CB66 LightGrey #D8A667\n.222.\n.220.\n.000.\n.111.\n.....\n \nBlock96\nWhite #F8CB66 LightGrey #D8A667\n.222.\n.222.\n.000.\n.111.\n.....\n \nBlock192\nWhite #F8CB66 LightGrey #D8A667\n.222.\n.222.\n.200.\n.311.\n.....\n \nBlock384\nWhite #F8CB66 LightGrey #D8A667\n.222.\n.222.\n.220.\n.331.\n.....\n \nBlock768\nWhite #F8CB66 LightGrey #D8A667\n.222.\n.222.\n.222.\n.333.\n.....\n \nScored\n#999999\n.....\n.....\n.....\n.000.\n.....\n \nScoring\n#FF6780 #CA4F7B\n.0.0.\n.....\n.0.0.\n.1.1.\n.....\n \nBackground\n#505050 #484848 #414141 #3A3A3A #333333\n00000\n11111\n22222\n33333\n44444\n \nGrid\n#D2E5DF #BBD9D9\n00000\n01110\n01110\n01110\n00000\n \nSpawn\n#D2E5DF\n \nWall\n#F9F9F9\n(.....\n.....\n.....\n.....\n.....)\n \nGrey\n#999999 #919191 #8A8A8A #838383 #7B7B7B\n00000\n11111\n22222\n33333\n44444\n \nPlayer\nBlack\n.....\n.....\n.....\n.....\n.....\n \n=======\nLEGEND\n=======\n \nBlock = Block1 or Block2 or Block3 or Block6 or Block12 or Block24 or Block48 or Block96 or Block192 or Block384 or Block768 or Block1Grey or Block2Grey\nLost = Grey\nNumber = 1 or 2 or 3 or 4 or 5 or 6 or 7 or 8 or 9 or 0\n \n, = Background\n. = Grid and Spawn\nq = Spawn and Wall\ns = Spawn\n# = Wall\n+ = Carry\n \na = Grid and Spawn and Block48\nb = Grid and Spawn and Block96\nc = Grid and Spawn and Block192\nd = Grid and Spawn and Block384\ne = Grid and Spawn and Block768\n \n=======\nSOUNDS\n=======\n \nPlayer Move 58475507\n \nSFX0 2494907\nSFX1 98118707\n \n================\nCOLLISIONLAYERS\n================\n \nBackground\nSpawn Grey\nGrid Carry\nBlock\nPlayer Number Scored\nWall Scoring\n \n======\nRULES\n======\n \n( Reset bonus pool )\nright [ Wall Spawn | Wall Spawn | Wall Spawn | Wall Spawn | Wall Spawn | Wall Spawn | Wall Spawn | Wall Spawn | Wall Spawn | Wall Spawn | Wall Spawn | Wall Spawn | Wall Spawn | Wall Spawn | Wall Spawn | Wall Spawn | Wall Spawn | Wall Spawn | Wall Spawn | Wall Spawn | Wall Spawn ] -> [ Wall Spawn Block1Grey | Wall Spawn Block1Grey | Wall Spawn Block1Grey | Wall Spawn Block1Grey | Wall Spawn Block1Grey | Wall Spawn Block1Grey | Wall Spawn Block1Grey | Wall Spawn Block1Grey | Wall Spawn Block1Grey | Wall Spawn Block1Grey | Wall Spawn Block1Grey | Wall Spawn Block1Grey | Wall Spawn Block1Grey | Wall Spawn Block1Grey | Wall Spawn Block1Grey | Wall Spawn Block1Grey | Wall Spawn Block1Grey | Wall Spawn Block1Grey | Wall Spawn Block1Grey | Wall Spawn Block1Grey | Wall Spawn Block1Grey ]\n \n( Create bonus block )\nright [ Wall Spawn Block1Grey | Wall no Spawn ] [ Grid Block768 ] -> [ Wall Spawn random Block6 random Block12 random Block24 random Block48 random Block96 | Wall ] [ Grid Block768 ]\nright [ Wall Spawn Block1Grey | Wall no Spawn ] [ Grid Block384 ] -> [ Wall Spawn random Block6 random Block12 random Block24 random Block48 | Wall ] [ Grid Block384 ]\nright [ Wall Spawn Block1Grey | Wall no Spawn ] [ Grid Block192 ] -> [ Wall Spawn random Block6 random Block12 random Block24 | Wall ] [ Grid Block192 ]\nright [ Wall Spawn Block1Grey | Wall no Spawn ] [ Grid Block96 ] -> [ Wall Spawn random Block6 random Block12 | Wall ] [ Grid Block96 ]\nright [ Wall Spawn Block1Grey | Wall no Spawn ] [ Grid Block48 ] -> [ Wall Spawn Block6 | Wall ] [ Grid Block48 ]\n \n( Restock stack if empty )\nright [ Wall Spawn no Block | Wall Spawn no Block | Wall Spawn no Block | Wall Spawn no Block | Wall Spawn no Block | Wall Spawn no Block | Wall Spawn no Block | Wall Spawn no Block | Wall Spawn no Block | Wall Spawn no Block | Wall Spawn no Block | Wall Spawn no Block | Spawn no Wall ] -> [ Wall Spawn Block1 | Wall Spawn Block1 | Wall Spawn Block1 | Wall Spawn Block1 | Wall Spawn Block2 | Wall Spawn Block2 | Wall Spawn Block2 | Wall Spawn Block2 | Wall Spawn Block3 | Wall Spawn Block3 | Wall Spawn Block3 | Wall Spawn Block3 | Spawn no Wall ]\n \n( Take 9 cards from the stack and place them onto the grid at the start )\nrandom right [ Grid Spawn no Block ] [ Spawn Wall Block | ... | Spawn no Wall no Grid ] -> [ Grid Spawn Block Player ] [ Spawn Wall | ... | Spawn ]\nrandom right [ Grid Spawn no Block ] [ Spawn Wall Block | ... | Spawn no Wall no Grid ] -> [ Grid Spawn Block Player ] [ Spawn Wall | ... | Spawn ]\nrandom right [ Grid Spawn no Block ] [ Spawn Wall Block | ... | Spawn no Wall no Grid ] -> [ Grid Spawn Block Player ] [ Spawn Wall | ... | Spawn ]\nrandom right [ Grid Spawn no Block ] [ Spawn Wall Block | ... | Spawn no Wall no Grid ] -> [ Grid Spawn Block Player ] [ Spawn Wall | ... | Spawn ]\nrandom right [ Grid Spawn no Block ] [ Spawn Wall Block | ... | Spawn no Wall no Grid ] -> [ Grid Spawn Block Player ] [ Spawn Wall | ... | Spawn ]\nrandom right [ Grid Spawn no Block ] [ Spawn Wall Block | ... | Spawn no Wall no Grid ] -> [ Grid Spawn Block Player ] [ Spawn Wall | ... | Spawn ]\nrandom right [ Grid Spawn no Block ] [ Spawn Wall Block | ... | Spawn no Wall no Grid ] -> [ Grid Spawn Block Player ] [ Spawn Wall | ... | Spawn ]\nrandom right [ Grid Spawn no Block ] [ Spawn Wall Block | ... | Spawn no Wall no Grid ] -> [ Grid Spawn Block Player ] [ Spawn Wall | ... | Spawn ]\nrandom right [ Grid Spawn no Block ] [ Spawn Wall Block | ... | Spawn no Wall no Grid ] -> [ Grid Spawn Block Player ] [ Spawn Wall | ... | Spawn ]\n \n( Clear Spawns at start )\n[ Grid Spawn ] -> [ Grid No Spawn ]\n \n( Move Block when Player moves )\n[ Moving Player Stationary Block ] -> [ Moving Player Moving Block ]\n \n( Stop when we hit a Wall )\n[ > Block | Wall ] -> [ Block | Wall ]\n \nstartloop\n \n[ > Block1 | Player Stationary Block2 ] -> [ > Block3 | ] SFX0\n[ > Block2 | Player Stationary Block1 ] -> [ > Block3 | ] SFX0\n[ > Block3 | Player Stationary Block3 ] -> [ > Block6 | ] SFX0\n[ > Block6 | Player Stationary Block6 ] -> [ > Block12 | ] SFX0\n[ > Block12 | Player Stationary Block12 ] -> [ > Block24 | ] SFX0\n[ > Block24 | Player Stationary Block24 ] -> [ > Block48 | ] SFX0\n[ > Block48 | Player Stationary Block48 ] -> [ > Block96 | ] SFX0\n[ > Block96 | Player Stationary Block96 ] -> [ > Block192 | ] SFX0\n[ > Block192 | Player Stationary Block192 ] -> [ > Block384 | ] SFX0\n[ > Block384 | Player Stationary Block384 ] -> [ > Block768 | ] SFX0\n \n( Stop when we hit a stationary Block )\n[ > Block | Stationary Block ] -> [ action Block | Block ]\n \n[ action Block ] -> [ Block ]\n \nendloop\n \n( Stop Player when Block stops )\n[ Moving Player Stationary Block ] -> [ Stationary Player Stationary Block ]\n \n( Move block from spawn to side of grid )\nup random [ Spawn Block no Wall ] [ Wall | Grid | ... | up Player ] -> [ Spawn ] [ Wall up Block up Player | Grid | ... | up Player ]\ndown random [ Spawn Block no Wall ] [ Wall | Grid | ... | down Player ] -> [ Spawn ] [ Wall down Block down Player | Grid | ... | down Player ]\nleft random [ Spawn Block no Wall ] [ Wall | Grid | ... | left Player ] -> [ Spawn ] [ Wall left Block left Player | Grid | ... | left Player ]\nright random [ Spawn Block no Wall ] [ Wall | Grid | ... | right Player ] -> [ Spawn ] [ Wall right Block right Player | Grid | ... | right Player ]\nup random [ Spawn Block no Wall ] [ Wall | Grid up Player ] -> [ Spawn ] [ Wall up Block up Player | Grid up Player ]\ndown random [ Spawn Block no Wall ] [ Wall | Grid down Player ] -> [ Spawn ] [ Wall down Block down Player | Grid down Player ]\nleft random [ Spawn Block no Wall ] [ Wall | Grid left Player ] -> [ Spawn ] [ Wall left Block left Player | Grid left Player ]\nright random [ Spawn Block no Wall ] [ Wall | Grid right Player ] -> [ Spawn ] [ Wall right Block right Player | Grid right Player ]\n \n( Take random block from bonus pool )\nrandom right [ Spawn Wall Block | ... | Wall | Wall | Grid ] [ Spawn no Wall no Block ] -> [ Spawn Wall | ... | Wall | Wall | Grid ] [ Spawn Block ]\n \n( If bonus block is a grey 1, discard it )\nright [ Spawn no Wall Block1Grey | Wall ] -> [ Spawn | Wall ]\n \n( If not using a bonus block, take new block from stack )\nrandom right [ Spawn Wall Block | ... | Spawn No Block No Number no Wall no Grid ] -> [ Spawn Wall | ... | Spawn Block ]\n \n( Lose condition: All Grids have Blocks on and there are no compatible blocks next to each other [e.g. 1 | 2 or 3 | 3 )\n \n( Set as lost )\nLate [ Grid No Lost ] -> [ Grid Lost ]\n \n( Check for conditions which mean it's not lost )\nLate [ Lost Grid No Block ] -> [ Grid ]\nLate [ Lost Block1 | Block2 ] -> [ Block1 | Block2 ]\nLate [ Lost Block3 | Block3 ] -> [ Block3 | Block3 ]\nLate [ Lost Block6 | Block6 ] -> [ Block6 | Block6 ]\nLate [ Lost Block12 | Block12 ] -> [ Block12 | Block12 ]\nLate [ Lost Block24 | Block24 ] -> [ Block24 | Block24 ]\nLate [ Lost Block48 | Block48 ] -> [ Block48 | Block48 ]\nLate [ Lost Block96 | Block96 ] -> [ Block96 | Block96 ]\nLate [ Lost Block192 | Block192 ] -> [ Block192 | Block192 ]\nLate [ Lost Block384 | Block384 ] -> [ Block384 | Block384 ]\n \n( If there are any tiles without a Lost, remove all Losts)\nLate [ Grid No Lost | Grid Lost ] -> [ Grid | Grid ]\n \n( Move grid, removing Player )\nLate Right [ Lost Grid Block Player | | | | | | | ] -> [ | | | | | | | Lost Grid Block ]\n \n( Turn 1s and 2s grey )\nLate [ Lost Block1 ] -> [ Lost Block1Grey ]\nLate [ Lost Block2 ] -> [ Lost Block2Grey ]\n \n( Add )\n \nlate down [ 1 | ... | 0 ] -> [ 0 | ... | 1 ]\nlate down [ 2 | ... | 0 ] -> [ 0 | ... | 2 ]\nlate down [ 3 | ... | 0 ] -> [ 0 | ... | 3 ]\nlate down [ 4 | ... | 0 ] -> [ 0 | ... | 4 ]\nlate down [ 5 | ... | 0 ] -> [ 0 | ... | 5 ]\nlate down [ 6 | ... | 0 ] -> [ 0 | ... | 6 ]\nlate down [ 7 | ... | 0 ] -> [ 0 | ... | 7 ]\nlate down [ 8 | ... | 0 ] -> [ 0 | ... | 8 ]\nlate down [ 9 | ... | 0 ] -> [ 0 | ... | 9 ]\n \nlate down [ 1 | ... | 1 ] -> [ 0 | ... | 2 ]\nlate down [ 2 | ... | 1 ] -> [ 0 | ... | 3 ]\nlate down [ 3 | ... | 1 ] -> [ 0 | ... | 4 ]\nlate down [ 4 | ... | 1 ] -> [ 0 | ... | 5 ]\nlate down [ 5 | ... | 1 ] -> [ 0 | ... | 6 ]\nlate down [ 6 | ... | 1 ] -> [ 0 | ... | 7 ]\nlate down [ 7 | ... | 1 ] -> [ 0 | ... | 8 ]\nlate down [ 8 | ... | 1 ] -> [ 0 | ... | 9 ]\nlate down [ 9 | ... | 1 ] -> [ 0 | ... | 0 Carry ]\n \nlate down [ 1 | ... | 2 ] -> [ 0 | ... | 3 ]\nlate down [ 2 | ... | 2 ] -> [ 0 | ... | 4 ]\nlate down [ 3 | ... | 2 ] -> [ 0 | ... | 5 ]\nlate down [ 4 | ... | 2 ] -> [ 0 | ... | 6 ]\nlate down [ 5 | ... | 2 ] -> [ 0 | ... | 7 ]\nlate down [ 6 | ... | 2 ] -> [ 0 | ... | 8 ]\nlate down [ 7 | ... | 2 ] -> [ 0 | ... | 9 ]\nlate down [ 8 | ... | 2 ] -> [ 0 | ... | 0 Carry ]\nlate down [ 9 | ... | 2 ] -> [ 0 | ... | 1 Carry ]\n \nlate down [ 1 | ... | 3 ] -> [ 0 | ... | 4 ]\nlate down [ 2 | ... | 3 ] -> [ 0 | ... | 5 ]\nlate down [ 3 | ... | 3 ] -> [ 0 | ... | 6 ]\nlate down [ 4 | ... | 3 ] -> [ 0 | ... | 7 ]\nlate down [ 5 | ... | 3 ] -> [ 0 | ... | 8 ]\nlate down [ 6 | ... | 3 ] -> [ 0 | ... | 9 ]\nlate down [ 7 | ... | 3 ] -> [ 0 | ... | 0 Carry ]\nlate down [ 8 | ... | 3 ] -> [ 0 | ... | 1 Carry ]\nlate down [ 9 | ... | 3 ] -> [ 0 | ... | 2 Carry ]\n \nlate down [ 1 | ... | 4 ] -> [ 0 | ... | 5 ]\nlate down [ 2 | ... | 4 ] -> [ 0 | ... | 6 ]\nlate down [ 3 | ... | 4 ] -> [ 0 | ... | 7 ]\nlate down [ 4 | ... | 4 ] -> [ 0 | ... | 8 ]\nlate down [ 5 | ... | 4 ] -> [ 0 | ... | 9 ]\nlate down [ 6 | ... | 4 ] -> [ 0 | ... | 0 Carry ]\nlate down [ 7 | ... | 4 ] -> [ 0 | ... | 1 Carry ]\nlate down [ 8 | ... | 4 ] -> [ 0 | ... | 2 Carry ]\nlate down [ 9 | ... | 4 ] -> [ 0 | ... | 3 Carry ]\n \nlate down [ 1 | ... | 5 ] -> [ 0 | ... | 6 ]\nlate down [ 2 | ... | 5 ] -> [ 0 | ... | 7 ]\nlate down [ 3 | ... | 5 ] -> [ 0 | ... | 8 ]\nlate down [ 4 | ... | 5 ] -> [ 0 | ... | 9 ]\nlate down [ 5 | ... | 5 ] -> [ 0 | ... | 0 Carry ]\nlate down [ 6 | ... | 5 ] -> [ 0 | ... | 1 Carry ]\nlate down [ 7 | ... | 5 ] -> [ 0 | ... | 2 Carry ]\nlate down [ 8 | ... | 5 ] -> [ 0 | ... | 3 Carry ]\nlate down [ 9 | ... | 5 ] -> [ 0 | ... | 4 Carry ]\n \nlate down [ 1 | ... | 6 ] -> [ 0 | ... | 7 ]\nlate down [ 2 | ... | 6 ] -> [ 0 | ... | 8 ]\nlate down [ 3 | ... | 6 ] -> [ 0 | ... | 9 ]\nlate down [ 4 | ... | 6 ] -> [ 0 | ... | 0 Carry ]\nlate down [ 5 | ... | 6 ] -> [ 0 | ... | 1 Carry ]\nlate down [ 6 | ... | 6 ] -> [ 0 | ... | 2 Carry ]\nlate down [ 7 | ... | 6 ] -> [ 0 | ... | 3 Carry ]\nlate down [ 8 | ... | 6 ] -> [ 0 | ... | 4 Carry ]\nlate down [ 9 | ... | 6 ] -> [ 0 | ... | 5 Carry ]\n \nlate down [ 1 | ... | 7 ] -> [ 0 | ... | 8 ]\nlate down [ 2 | ... | 7 ] -> [ 0 | ... | 9 ]\nlate down [ 3 | ... | 7 ] -> [ 0 | ... | 0 Carry ]\nlate down [ 4 | ... | 7 ] -> [ 0 | ... | 1 Carry ]\nlate down [ 5 | ... | 7 ] -> [ 0 | ... | 2 Carry ]\nlate down [ 6 | ... | 7 ] -> [ 0 | ... | 3 Carry ]\nlate down [ 7 | ... | 7 ] -> [ 0 | ... | 4 Carry ]\nlate down [ 8 | ... | 7 ] -> [ 0 | ... | 5 Carry ]\nlate down [ 9 | ... | 7 ] -> [ 0 | ... | 6 Carry ]\n \nlate down [ 1 | ... | 8 ] -> [ 0 | ... | 9 ]\nlate down [ 2 | ... | 8 ] -> [ 0 | ... | 0 Carry ]\nlate down [ 3 | ... | 8 ] -> [ 0 | ... | 1 Carry ]\nlate down [ 4 | ... | 8 ] -> [ 0 | ... | 2 Carry ]\nlate down [ 5 | ... | 8 ] -> [ 0 | ... | 3 Carry ]\nlate down [ 6 | ... | 8 ] -> [ 0 | ... | 4 Carry ]\nlate down [ 7 | ... | 8 ] -> [ 0 | ... | 5 Carry ]\nlate down [ 8 | ... | 8 ] -> [ 0 | ... | 6 Carry ]\nlate down [ 9 | ... | 8 ] -> [ 0 | ... | 7 Carry ]\n \nlate down [ 1 | ... | 9 ] -> [ 0 | ... | 0 Carry ]\nlate down [ 2 | ... | 9 ] -> [ 0 | ... | 1 Carry ]\nlate down [ 3 | ... | 9 ] -> [ 0 | ... | 2 Carry ]\nlate down [ 4 | ... | 9 ] -> [ 0 | ... | 3 Carry ]\nlate down [ 5 | ... | 9 ] -> [ 0 | ... | 4 Carry ]\nlate down [ 6 | ... | 9 ] -> [ 0 | ... | 5 Carry ]\nlate down [ 7 | ... | 9 ] -> [ 0 | ... | 6 Carry ]\nlate down [ 8 | ... | 9 ] -> [ 0 | ... | 7 Carry ]\nlate down [ 9 | ... | 9 ] -> [ 0 | ... | 8 Carry ]\n \n( Carry )\n \nstartloop\n \n\tlate right [ no Number | ... | 0 | Number Carry ] -> [ | ... | 1 | Number ]\n\tlate right [ no Number | ... | 1 | Number Carry ] -> [ | ... | 2 | Number ]\n\tlate right [ no Number | ... | 2 | Number Carry ] -> [ | ... | 3 | Number ]\n\tlate right [ no Number | ... | 3 | Number Carry ] -> [ | ... | 4 | Number ]\n\tlate right [ no Number | ... | 4 | Number Carry ] -> [ | ... | 5 | Number ]\n\tlate right [ no Number | ... | 5 | Number Carry ] -> [ | ... | 6 | Number ]\n\tlate right [ no Number | ... | 6 | Number Carry ] -> [ | ... | 7 | Number ]\n\tlate right [ no Number | ... | 7 | Number Carry ] -> [ | ... | 8 | Number ]\n\tlate right [ no Number | ... | 8 | Number Carry ] -> [ | ... | 9 | Number ]\n\tlate right [ no Number | ... | 9 no Carry | Number Carry ] -> [ | ... | 0 Carry | Number ]\n late right [ no Number | 0 Carry ] -> [ | 0 ]\n \nendloop\n \n( After scoring, set block border to grey )\nlate [ Scoring Block ] -> [ Scored Block ]\n \n( Count each block, starting with the lowest value )\nlate [ Carry No Number No Block ] [ Grid Lost no Scored Block3 ] -> [ Carry Block3 ] [ Grid Lost Scoring Block3 ]\nlate [ Carry No Number No Block ] [ Grid Lost no Scored Block6 ] -> [ Carry Block6 ] [ Grid Lost Scoring Block6 ]\nlate [ Carry No Number No Block ] [ Grid Lost no Scored Block12 ] -> [ Carry Block12 ] [ Grid Lost Scoring Block12 ]\nlate [ Carry No Number No Block ] [ Grid Lost no Scored Block24 ] -> [ Carry Block24 ] [ Grid Lost Scoring Block24 ]\nlate [ Carry No Number No Block ] [ Grid Lost no Scored Block48 ] -> [ Carry Block48 ] [ Grid Lost Scoring Block48 ]\nlate [ Carry No Number No Block ] [ Grid Lost no Scored Block96 ] -> [ Carry Block96 ] [ Grid Lost Scoring Block96 ]\nlate [ Carry No Number No Block ] [ Grid Lost no Scored Block192 ] -> [ Carry Block192 ] [ Grid Lost Scoring Block192 ]\nlate [ Carry No Number No Block ] [ Grid Lost no Scored Block384 ] -> [ Carry Block384 ] [ Grid Lost Scoring Block384 ]\nlate [ Carry No Number No Block ] [ Grid Lost no Scored Block768 ] -> [ Carry Block768 ] [ Grid Lost Scoring Block768 ]\n \n( Set score to add )\nlate right [ Carry Block3 | 0 | 0 | 0 | 0 | 0 ] -> [ Carry Block3 | 0 | 0 | 0 | 0 | 3 ] again\nlate right [ Carry Block6 | 0 | 0 | 0 | 0 | 0 ] -> [ Carry Block6 | 0 | 0 | 0 | 0 | 9 ] again\nlate right [ Carry Block12 | 0 | 0 | 0 | 0 | 0 ] -> [ Carry Block12 | 0 | 0 | 0 | 2 | 7 ] again\nlate right [ Carry Block24 | 0 | 0 | 0 | 0 | 0 ] -> [ Carry Block24 | 0 | 0 | 0 | 8 | 1 ] again\nlate right [ Carry Block48 | 0 | 0 | 0 | 0 | 0 ] -> [ Carry Block48 | 0 | 0 | 2 | 4 | 3 ] again\nlate right [ Carry Block96 | 0 | 0 | 0 | 0 | 0 ] -> [ Carry Block96 | 0 | 0 | 7 | 2 | 9 ] again\nlate right [ Carry Block192 | 0 | 0 | 0 | 0 | 0 ] -> [ Carry Block192 | 0 | 2 | 1 | 8 | 7 ] again\nlate right [ Carry Block384 | 0 | 0 | 0 | 0 | 0 ] -> [ Carry Block384 | 0 | 6 | 5 | 6 | 1 ] again\nlate right [ Carry Block768 | 0 | 0 | 0 | 0 | 0 ] -> [ Carry Block768 | 1 | 9 | 6 | 8 | 3 ] again\n \n( Colour adding row of numbers )\nlate right [ Carry no Number | ... | Number ] -> [ Carry Grey | ... | Number Grey ]\n \n( Show numbers )\nLate [ Wall Number ] -> [ Number ]\n \n( Show only significant digits for the adding line )\nlate right [ Carry No Number | 0 | 0 | 0 | 0 | 0 ] -> [ Carry Wall | 0 Wall | 0 Wall | 0 Wall | 0 Wall | 0 Wall ]\nlate right [ Carry No Number | 0 | 0 | 0 | 0 ] -> [ Carry No Wall | 0 Wall | 0 Wall | 0 Wall | 0 Wall ]\nlate right [ Carry No Number | 0 | 0 | 0 ] -> [ Carry No Wall | 0 Wall | 0 Wall | 0 Wall ]\nlate right [ Carry No Number | 0 | 0 ] -> [ Carry No Wall | 0 Wall | 0 Wall ]\nlate right [ Carry No Number | 0 ] -> [ Carry No Wall | 0 Wall ]\n \nlate right [ Carry No Block ] -> [ Carry Wall ]\n \n( Remove block we're scoring from adding row )\nlate [ Carry Block ] -> [ Carry Player ]\n \n==============\nWINCONDITIONS\n==============\n \n=======\nLEVELS\n=======\n \n############################################\n############qqqqqqqqqqqqs#....###,,,,#######\n##########################....###,,,,#+00000\n###qqqqqqqqqqqqqqqqqqqqq##....###,,,,#######\n##########################....###,,,,#000000\n############################################\n",[1,0,0,1,0,1],"background wall:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background block1grey spawn wall:1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,\n0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,background block1 spawn wall:2,0,1,0,0,0,background spawn wall:3,0,1,0,0,0,3,0,1,\n0,0,0,2,0,3,0,0,0,background block2 spawn wall:4,0,1,0,0,0,3,0,1,0,0,0,4,0,1,0,0,0,4,0,1,0,0,0,background block3 spawn wall:5,0,1,0,0,0,5,0,1,0,0,\n0,5,0,1,0,0,0,3,0,1,0,0,0,background block3 spawn:6,0,0,0,0,0,0,0,0,0,0,0,background block12 grid player:7,background block2 grid player:8,background block1 grid player:9,background grid:10,0,0,background block3 grid player:11,11,8,10,0,0,10,9,10,8,0,0,10,\n9,9,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,background:12,12,12,12,0,0,12,12,12,12,0,0,12,12,12,12,0,0,12,12,12,\n12,0,0,0,0,0,0,0,0,0,background carry grey wall:13,0,0 background:14,0,0,0,0 background grey wall:15,0,14,0,0,0,15,0,14,0,0,0,15,0,14,0,0,0,15,0,14,0,0,0,15,0,14,0,\n",0,"1397316107166.7544"]
	],
	[
		"Smother",
		["title Smother\nauthor Team Borse\n \nbackground_color #9CBD0F\ntext_color #0F380F\n \nrun_rules_on_level_start\n \n========\nOBJECTS\n========\n \nBackground \n#9CBD0F\n \nLaserGV\n#9CBD0F #8CAD0F #306230 #0F380F\n22222\n.222.\n..3..\n..3..\n.....\n \nLaserGH\n#9CBD0F #8CAD0F #306230 #0F380F\n2....\n22...\n2233.\n22...\n2....\n \nLaserV\n#9CBD0F #8CAD0F #306230 #0F380F\n.....\n..3..\n..3..\n..3..\n.....\n \nLaserH\n#9CBD0F #8CAD0F #306230 #0F380F\n.....\n.....\n.333.\n.....\n.....\n \nLaserB\n#9CBD0F #8CAD0F #306230 #0F380F\n.....\n..3..\n.333.\n..3..\n.....\n \nExit \n#9CBD0F #8CAD0F #306230 #0F380F\n2...2\n2...2\n2...2\n2...2\n2.2.2\n \nWall \n#9CBD0F #8CAD0F #306230 #0F380F\n33333\n31223\n32123\n32223\n33333\n \nHeart\n#9CBD0F #8CAD0F #306230 #0F380F\n.2.2.\n22222\n.222.\n..2..\n.....\n \n \nPlayerFull\n#9CBD0F #8CAD0F #306230 #0F380F \n \n.222.\n.323.\n.222.\n.222.\n.2.2.\n \nProtector\n#9CBD0F #8CAD0F #306230 #0F380F \n \n.333.\n.232.\n.333.\n.333.\n.3.3.\n \nProtectorSolo\n#9CBD0F #8CAD0F #306230 #0F380F \n \n.333.\n.232.\n.333.\n.333.\n.3.3.\n \nvictimSolo\n#9CBD0F #8CAD0F #306230 #0F380F \n \n.222.\n.323.\n.222.\n.222.\n.2.2.\n \n \nPlayerDead\n#9CBD0F #8CAD0F #306230 #0F380F \n.222.\n22222\n2.2.2\n.222.\n.222.\n \npushBlock\n#9CBD0F #8CAD0F #306230 #0F380F\n33333\n31113\n31113\n31113\n33333\n \n=======\nLEGEND\n=======\n \nPlayer = PlayerFull or Protector or ProtectorSolo or victimSolo\nPlayerWin = PlayerFull or PlayerDead or Protector or victimSolo\nLaser = LaserV or LaserH or LaserB\nLaserBlock = Wall or Player or PlayerDead or Exit \n. = Background\n# = Wall\ng = LaserGV\nh = LaserGH\nP = PlayerFull\nn = Protector\nq = ProtectorSolo\nk = victimSolo\nO = Exit\nl = Heart\nb = pushBlock\n \n=======\nSOUNDS\n=======\n \nstartgame 83279102 (sound at start of game)\nCloseMessage 123434 (close message noise)\nShowMessage 123434 (show message noise)\nsfx0 8545502 (death)\nsfx1 26 (heart)\n \n \n================\nCOLLISIONLAYERS\n================\nBackground\nLaser\nExit\nProtectorSolo, Heart, Wall\nPlayer, Wall, PlayerDead, LaserGV, LaserGH, Protector, victimSolo, pushBlock \n \n======\nRULES \n======\n \n(clear lasers)\nlate [Laser] -> []\n \n(zip the lasers out of the guns and through the levels)\nlate down [LaserGV | no Laser] -> [LaserGV | LaserV]\nlate right [LaserGH | no Laser] -> [LaserGH | LaserH]\n \nlate down [LaserV no LaserBlock | ] -> [LaserV | LaserV]\nlate right [LaserH no LaserBlock | ] -> [LaserH | LaserH] \n \n(generate overlapping lasers)\nlate down [LaserV no LaserBlock | LaserH] -> [LaserV | LaserB]\nlate down [LaserGV no LaserBlock | LaserH] -> [LaserGV | LaserB]\nlate right [LaserH no LaserBlock | LaserV] -> [LaserH | LaserB]\nlate right [LaserGH no LaserBlock | LaserV] -> [LaserGH | LaserB]\n \n(deal with overlapping lasers)\nlate right [LaserB no LaserBlock | no Laser] -> [LaserB | LaserH]\nlate right [LaserH no LaserBlock | no Laser] -> [LaserH | LaserH]\nlate down [LaserB no LaserBlock | no Laser] -> [LaserB | LaserV]\nlate down [LaserV no LaserBlock | no Laser] -> [LaserV | LaserV]\n \n(solo Victim can push a block)\n [ > victimSolo | pushBlock ] -> [ > victimSolo| > pushBlock]\n \n(pushing block to switch breaks laser)\n[pushBlock laser] -> [ wall]\n \n \n(if a player is over a laser, then cause them harm)\nlate [ PlayerFull Laser ] -> [PlayerDead Laser] sfx0\n \n(victim solo dies in the laser)\nlate [ victimSolo Laser ] -> [PlayerDead Laser] sfx0\n \n(protector levels)\n[ > ProtectorSolo | ... | Heart ] -> [ | ... | ProtectorSolo ] sfx1\n[ > ProtectorSolo ] -> [ ProtectorSolo]\n \n \n==============\nWINCONDITIONS\n==============\nAll PlayerWin on Exit\nNo Heart\n \n======= \nLEVELS\n=======\n \nmessage then...\n \nmessage I PROTECT YOU\n \n###g###g###\n#.........#\n#n.......o#\n#........o#\n#p...#....#\n#.........#\n###########\n \nmessage YOU SMOTHER ME\n\t\n###########\n#n........#\n#......#..#\nh..#h..#..#\n#p.....#..#\n#......#oo#\n###########\n \nmessage I DEFEND YOU\n \n#####g#####\n#.P.....n.#\n#.........#\n#..#...#..#\n#.........#\n#......oo.#\n###########\n \nmessage YOU SPEAK FOR ME\n \n#####g#####\n#n.......o#\n#....#h...#\nh....g....#\n#.....#..o#\n#p......#.#\n###########\n \nmessage WE ARE CARE FREE\n \n#P####g##g###\n#.#..#.#....#\n#..........o#\nh...........#\n#.#h..#..#.o#\n#.....#....n#\n#############\n \nmessage I CARRY OUR BURDENS\n \nmessage before...\n \nmessage I AM ALWAYS SEARCHING\n \n###########\n#l...l....#\n#....l....#\n#.........#\n#q..l.....#\n#l..l.....#\n###########\n \n \nmessage I NEVER SEE A FUTURE\n \n###########\n#.........#\n#..l..q.l.#\n#.l....l..#\n#.ll...l.l#\n#l.l...l..#\n###########\n \nmessage I NEVER FEEL COMFORTABLE\n \n###########\n#....l....#\n#lq..l..l.#\n#.l..l....#\n#.l.....l.#\n#....l....#\n###########\n \n \nmessage NO ONE GETS ME\n \n###########l##l#####\n#l.l...............#\n#.....ll...........#\n#l..l..............#\n#..q..l.......l....#\n#..ll..l......l....#\n###########........#\n###########l....l..#\n###########........#\n###########.l.l.l..#\n####################\n \nmessage I NEED CONTACT\n \n###################\n#.l...l############\n#......############\n#l.l..l##########l#\n#l.......l.....l#.#\n#....l............#\n#ll..q.........l.l#\n#..l.....l.......l#\n#.l..l............#\n###################\n \nmessage I NEED VALIDATION\n \nmessage before...\n \nmessage I AM INDEPENDENT\n \n###########\n#.k.g.....#\n#.......b.#\n#.b...###.#\n#.#.......#\n#...h.....#\n#...#...O.#\n###########\n \n \nmessage I AM STRONG\n \n \n###g##g##\n#.......#\n#kb.b...#\n#.......#\nh.....#.#\n#..#b#h.#\n#....#..#\nh....#o.#\n#.......#\n#########\n \nmessage I NEED NO ONE\n \n###g#######\n#.o.......#\n#...#.##..#\n#.#..bkb.##\nh...#.#.b.#\n#.......#.#\n#.....#...#\n###########\n \nmessage I ENJOY MY COMPANY\n \n#####g#####g#####g######\n#.k.....b...........o..#\n#..b....#.#.......##...#\n#.........b...#b..#g...#\nh..........#......#....#\n##.###.#######.####.#.##\nh..............#h......#\n####.#####.###.##.#.#.##\n###.b.#....#........#..#\n###.#....#b#.........b.#\n##.........#.......#...#\n########################\n \nmessage I AM FEARLESS\n \n##g##g#g####\n#o..#.#....#\n#...#.#.#..#\n#..........#\n#.....#..b.#\n#........b.#\n#..#.##.#b.#\n#..#......k#\n############\n \nmessage I AM ALONE\n \n \nmessage now...\n \n###########\n#...o.o...#\n#.........#\n#.........#\n#.........#\n#...n.p...#\n###########\n \nmessage WE DON'T SEE THINGS AS THEY ARE, WE SEE THEM AS WE ARE\nmessage Credits\nmessage Concept/Design/Programming/Graphics - Steven McStravog\nmessage Design/Programming/Graphics - Darragh McLernon\nmessage Porting/Design/Programming - Rachel Gawley\nmessage Artwork - Ricky Woodside \n",[2,2,3,3,3,3,2,3],"background wall:0,0,0,background lasergh:1,0,0,0,0,background:2,2,background laserh:3,\n2,2,0,0,2,2,3,2,2,0,0,\n2,2,3,2,2,0,0,2,2,3,2,\n2,0,background lasergv:4,background laserv:5,background laserv wall:6,background lasergv laserh:7,background laserv protector:8,background playerdead:9,0,0,2,\n1,3,0,2,0,0,2,3,3,2,2,\n0,0,2,3,3,2,0,0,0,background exit:10,3,\n3,10,2,0,0,0,background laserh wall:11,11,0,0,0,\n",8,"1397318526578.8389"]
	],
	[
		"again + message combo",
		["========\nOBJECTS\n========\n\nBackground\nBlack\n\nTrigger\nRed\n.....\n.000.\n.0.0.\n.000.\n.....\n\nPlayer\nGreen\n00000\n0...0\n0.0.0\n0...0\n00000\n\n=======\nLEGEND\n=======\n\n. = Background\nX = Trigger\nP = Player\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTrigger\nPlayer\n\n======\nRULES\n======\n\nlate [ Player Trigger ] -> [ Trigger ] again message Click!\n\n==============\nWINCONDITIONS\n==============\n\nno Trigger\n\n=======\nLEVELS\n=======\n\nmessage Level 1\n\n.....\n.....\n.P.X.\n.....\n.....\n\nmessage Level 2\n\n.....\n..P..\n.....\n..X..\n.....\n\n",[3,3],"background:0,0,0,0,0,\n0,0,0,0,0,\n0,0,0,0,0,\n0,0,background trigger:1,0,0,\n0,0,0,0,0,\n",1,"1397321235736.0955"]
	],
	[
		"chaos wizard",
		["title chaos wizard\nauthor mark wonnacott\nhomepage http://twitter.com/ragzouken\n\nyoutube JDIj3zPwEvw\n\n(run_rules_on_level_start)\n\nrealtime_interval 0.2\n\n========\nOBJECTS\n========\n\nSpace\nblack darkblue\n00010\n00000\n00000\n01000\n00000\n\nBackground\ndarkblue darkgreen\n00000\n01000\n00010\n00001\n00100\n\nWall\nblack darkbrown darkblue\n01112\n21212\n02121\n20021\n00010\n\nIndestructible\ndarkgreen grey darkgrey\n01112\n21212\n02121\n20021\n00010\n\nRed\nred lightred darkred\n..0..\n.010.\n22110\n.220.\n..2..\n\nBlue\nblue lightblue purple\n..0..\n.010.\n22110\n.220.\n..2..\n\nGreen\ngreen lightgreen darkgreen\n..0..\n.010.\n22110\n.220.\n..2..\n\nStone\ngrey lightgrey darkgrey\n..0..\n.010.\n22110\n.220.\n..2..\n\nCharge\nred darkred\n1.0.1\n..0..\n00000\n..0..\n1.0.1\n\nPrism\nwhite lightblue grey\n..0..\n.000.\n00000\n.000.\n..0..\n\n\nMoveUp\nwhite\n\nMoveDown\nwhite\n\nMoveLeft\nwhite\n\nMoveRight\nwhite\n\nExpand\nwhite\n\nInhibit\nwhite\n\nHold\nblue lightblue\n.1.1.\n1.0.1\n.0.0.\n1.0.1\n.1.1.\n\nBurn\nred orange yellow white\n.010.\n01210\n12321\n01210\n.010.\n\nPlayer\ngreen gray yellow\n..1..\n.111.\n.202.\n00000\n00000\n\nRival\nblack darkgrey red\n..1..\n.111.\n.212.\n00100\n00000\n\nGoal\nblack\n0.0.0\n.0.0.\n0.0.0\n.0.0.\n0.0.0\n\n=======\nLEGEND\n=======\n, = Space\n. = Background\n+ = Prism\n# = Wall\nX = Indestructible\n@ = Player and Inhibit\nR = Red\nG = Green\nB = Blue\nS = Stone\n? = Goal\n$ = Charge\n% = Rival\n\n3 = Space and Blue\n£ = Space and Charge\n\nWizard = Player or Rival\n\nGem = Red or Blue or Green or Stone\n\nMovement = MoveUp or MoveDown or MoveLeft or MoveRight or Expand\nMediator = Hold or Burn\n\nMoveable = Wizard or Gem\nDestructable = Wizard or Gem or Wall\n\n=======\nSOUNDS\n=======\n\n(sfx0 76693900 (prism))\nsfx1 68148303 (cast)\nsfx2 24680901 (fall)\n\nBurn destroy 17088108\n\n================\nCOLLISIONLAYERS\n================\n\nMoveUp, MoveDown, MoveLeft, MoveRight, Expand, Inhibit\nBackground\nSpace\nCharge, Goal\nWizard, Gem, Stone, Wall, Prism, Indestructible\nHold, Burn\n\n======\nRULES\n======\n\n[ Inhibit ] [ moving Player ] -> [ ] [ Player ]\n[ Inhibit ] -> cancel\n\n[ moving Player Hold ] -> [ Player Hold ]\n\n(rival ai)\n[ Rival no Goal | Goal ] -> [ > Rival | Goal ]\n\n(objects fall into pits when not held)\nlate [ Moveable no Hold Space ] -> [ Space ] sfx2\n\n[ parallel Wizard | Gem ] -> [ parallel Wizard | parallel Gem ]\n\n[ > Gem | Charge ] -> [ Gem | Charge ]\n[ > Gem | Gem ] -> [ > Gem | > Gem ]\n\n[ action Wizard Charge ] -> [ Wizard ]\n[ Charge ] [ action Wizard ] -> [ ] [ Wizard Charge ]\n\n[ action Wizard ] -> [ Wizard Charge ]\n\n\n(spells recipes)\n[ Blue | Charge no Wizard ] -> [ | > Hold ] sfx1\n[ Red | Charge no Wizard ] -> [ | > Burn ] sfx1\n\n[ Blue | Green | Charge no Wizard ] -> [ Blue | Blue | Blue ] sfx1\n[ Red | Green | Charge no Wizard ] -> [ Red | Red | Red ] sfx1\n\n[ Green | Charge no Wizard ] -> [ Red | Blue ] sfx1\n\n[ Stone | Charge no Wizard ] -> [ Prism | ] sfx1\n[ Prism | Charge no Wizard ] -> [ Stone | ] sfx1\n\n(prism expands a spell)\n[ stationary Player ] [ Mediator Prism ] -> [ Player ] [ Expand Mediator Prism ] sfx0\n\n(shortcut to create directional mediators)\n[ up Mediator ] -> [ Mediator MoveUp ]\n[ down Mediator ] -> [ Mediator MoveDown ]\n[ left Mediator ] -> [ Mediator MoveLeft ]\n[ right Mediator ] -> [ Mediator MoveRight ]\n\n(apply movement to mediators)\n[ stationary Player ] [ Mediator MoveUp ] -> [ Player ] [ up Mediator up MoveUp ]\n[ stationary Player ] [ Mediator MoveDown ] -> [ Player ] [ down Mediator down MoveDown ]\n[ stationary Player ] [ Mediator MoveLeft ] -> [ Player ] [ left Mediator left MoveLeft ]\n[ stationary Player ] [ Mediator MoveRight ] -> [ Player ] [ right Mediator right MoveRight ]\n\n(expand multiplies the spell in all directions)\n up [ Mediator Expand | no Movement no Wall ] -> [ Mediator Expand | Mediator MoveUp ]\n+ down [ Mediator Expand | no Movement no Wall ] -> [ Mediator Expand | Mediator MoveDown ]\n+ left [ Mediator Expand | no Movement no Wall ] -> [ Mediator Expand | Mediator MoveLeft ]\n+ right [ Mediator Expand | no Movement no Wall ] -> [ Mediator Expand | Mediator MoveRight ]\n\n[ stationary Player ] [ > Mediator > Movement | Prism ] -> [ Player ] [ > Mediator Movement | Prism ]\n[ stationary Player ] [ Mediator Expand ] -> [ Player ] [ ]\n\n(teleport fizzles on dirt and wall)\n[ Hold Wall ] -> [ Wall ]\n[ Hold Indestructible ] -> [ Indestructible ]\n\n(fireball destroys dirt, fizzles on wall)\n[ Burn Destructable ] -> [ ]\n[ Burn Indestructible ] -> [ Indestructible ]\n\n(spells cancel out)\n[ stationary Player ] [ > Mediator Movement | Mediator Movement ] -> [ Player ] [ | ]\n\n(clean up spell-less move commands)\n[ stationary Player ] [ Movement no Mediator ] -> [ Player ] [ ]\n\n(teleport moves objects)\n[ > Hold Moveable ] -> [ > Hold > Moveable ]\n\n(spells end on goal)\n[ > Mediator Movement | Goal ] -> [ | Goal ]\n\n(rival leaves level)\n[ Rival Goal ] -> [ Goal ]\n\n==============\nWINCONDITIONS\n==============\n\nsome Player on Goal\nno Rival\n\n=======\nLEVELS\n=======\n\nmessage you are a chaos wizard - heir of an ancient sigil - a sigil with the power to free magick from its mineral slumber\n\nmessage cast spells by placing your sigil next to mana ores. escape this tomb\n\n(rival wizard, introduce teleport, teach pulling)\nx##xxxxxxx##x\nxxxxxbbbxxxxx\nx,,xx...xx,,x\n,,,,#...#,,,,\n,,,,#...#,,,,\n,,,,#...#,,,,\n,,,,#...#,,,,\n,,,,#.@.#,,,,\n,,,,#...#,,,,\n,,,,#...#,,,,\n,,,,#...#,,,,\n,,,,#$$$#,,,,\nx,,xxbbbxx,,x\nxxxxx.%.xxxxx\nx##xx???xx##x\n\n(move demo, teach teleport)\nx,,xxxxxxx,,x\nxxxxx...xxxxx\nx##xx.@.xx##x\n####x...x####\n##xxx...xxx##\n##xb......x##\n##x.x...x.x##\n##x...b.b.x##\n##x...$...x##\n##x.x.%.x.x##\n##x,,.....x##\n##x,,,,,..x##\n##x,x,,,xbx##\n##x,,..,,,x##\n##xxx...xxx##\n####x???x####\n\n(teach that mana can be teleported)\n##xxxxxx#####\n##x.....x####\n##x.@...,x###\n##.....,,,x##\n##....,,...x#\n#.b##x,b...x#\n#.####x..b.x#\n#..###.$.$.x#\n##.....b.%.x#\n#######x.,,x#\n#######x,,,x#\n#######x,,,x#\n#######x,..x#\n#######x???x#\n\n(introduce fireball, teach fireball)\n###xxxxxxx###\n###xx...xx###\n###xx.@.xx###\n###xx...xx###\n###xx...xx###\n###xx...xx###\n#rr#x...xx###\nrrrr..$.xx###\nrr####R.xx###\nr#######xx###\nr#######xx###\n######..xx###\n###xx...xx###\n###xx.%.xx###\n###xx???xx###\n\n(puzzle: teleport, fireball, teleporting mana)\n###############\n#####xxxxx#####\n#xxxxxbrbxxxxx#\n#x,,,,...,,,,x#\n#x,....@....,x#\n#x,.,,...,,.,x#\n#x,.,,,,,,,.,x#\n#xr..,x#x,..bx#\n#xr..,#.#,..rx#\n#xr$.,x#x,.$bx#\n#x,,,,,,,,,,,x#\n#x,.,,rrr,,.,x#\n#x,.........,x#\n#x,,,,$$$,,,,x#\n#xxx#.bbbxxxxx#\n#####x.%.x#####\n#####x???x#####\n\n(introduce & teach pre-sigil)\n###xxxxxxx###\n###xx...xx###\n###x..@..x###\n##x.....##x##\n#x.r....###x#\n#x$#r#x..##x#\n#x###x.b.$bx#\n#x###x$x..,x#\n#x.##x%x..,x#\n#x..#,...,,x#\n#x...,,,,,,x#\n##x...,,,,x##\n###x....,x###\n###xx...xx###\n###xx???xx###\n\n(puzzle: fireball, pre-sigil)\n#################\n#####xxxxxxx#####\n#xxxxxx...xxxxxx#\n#xr...x.@.xr###x#\n#xr.....#...###x#\n#xrr..x...x..##x#\n#xxxx..,,,.#xxxx#\n####x.x,,,x.x####\n####x..,,,.#x####\n####x.x,,,x#x####\n####x..,,,.#x####\n####x.x,,,x.x####\n####x..,,,.#x####\n####xx#$.$.xx####\n#####xxr%rxx#####\n#####xx???xx#####\n\n(introduce split, teach split)\n###xxxxxxx###\n###xx...xx###\n###xx.@.xx###\n###xx...xx###\n###xx...xx###\n###xx.g.xx###\n####x...xx###\n#####...xx###\n#######.xx###\n########xx###\n######,,xx###\n#####,,,xx###\n####x,..xx###\n###xx.%.xx###\n###xx???xx###\n\n(puzzle: teleport, fireball, split)\n#######xxxxx#\n#xxxxxxx...x#\n#x###b...@.x#\n#x####r$...x#\n#x##r$...,.##\n#x#.gxx.,,,,#\n#x...x##,,,,#\n#x###x##,,,,#\n#xg##x##,,,,#\n#x...xxx,,,.#\n#x.......,,.#\n#x.....###,b#\n#x....###.#x#\n#xxxxxxx.%.x#\n#######x???x#\n\n(introduce multiply, teach multiply)\nx###xxxxx###x\nxx#xx...xx#xx\n,x#x.@...x#x,\nxxxxx...xxxxx\nxbg$x.$#x$grx\nxbg$x.r#x$grx\nxxxxx$##xxxxx\n,x#x.r...x#x,\nxxxxx##.xxxxx\nxbg$###...grx\nxbg$x..,x.,,x\nxxxxx.,,xxxxx\n,x#x.,,,.x#x,\nxx#xx,,%xx#xx\nx###x???x###x\n\n(puzzle: fireball, teleport mana, multiply)\n####xxxxxxx####\n####xx...xx####\n###xxx.@.xxx###\n###x.xr.rx.x###\n###x...r...x###\nxxxx.......xxxx\nx..x,.$$$.,x.rx\nx.g.,.rrr.,...x\nx.#...x#x.....x\nx...,#####,...x\nxb.x,##.##,x..x\nxxxx#...#..xxxx\n###x.##..##x###\n###x.x.%#x#x###\n###xxx???xxx###\n\n(puzzle: fireball, teleport, teleport mana, split, multiply)\n####xxxxxxx####\n####xx.@.xx####\n#####r...g#####\n####r.,,,.#####\n####r.,,,.#g###\n####..,,,..####\n###b.....$.#g##\n###....,,r..###\n###...,,,,..###\n####.$,,,,,,###\n####$r,,,#...##\n####r,,###....#\n###,,,####....#\n####xx#%#xx.r##\n####xx???xx####\n\n(introduce amplification, teach amplification)\n###xxxxxxx###\n#xxxx...xxxx#\n#xrxx.@.xx,x#\n#x.........x#\n#x,,.xxxxxgx#\n#x+,#x###x.x#\n#x,,.xxxxx.x#\n#x.r..#...rx#\n#xgxxxxx.,,x#\n#x#x###x#,+x#\n#x#xxxxx.,,x#\n#x.###....$x#\n#x,xx...xxbx#\n#xxxx.%.xxxx#\n###xx???xx###\n\n(amplified teleport)\n,,xxxxxxx,,\n,#xx...xx#,\n,#xx.@.xx#,\n#+.,$b.,.+#\n,..#...,..#\n,,,#,,###,#\n,..#...#..#\n#+.,.+r£.+#\n#..,##.,..,\n,,,,,,,,,,,\n,.#,##.,..#\n#x.,.x.,.+#\n##xx...xx##\n#,xx.%.xx,#\n,,xx???xx#,\n\n(puzzle: fireball, amplified fireball)\n###xxxxxxx###\n#xxxx...xxxx#\n#xrxx.@.xxrx#\n#xr.......rx#\n#x..##.#...x#\n#x..,,,,,##x#\n#x#.,,,,#.#x#\n#x###,+,###x#\n#x..#,,,##.x#\n#x..,,,,,##x#\n#x.######..x#\n#x.#####...x#\n#xrxx#.#xxrx#\n#xxxx.%.xxxx#\n###xx???xx###\n\n(puzzle: fireball, split, amplified teleport)\n###xxxxxxx###\n#xxxx...xxxx#\n#xbxx.@.xx.x#\n#x..x...x...#\n#x...,.,...,#\n#x...,.,...,#\n#x..,...,..,#\n#x.#...r.#.##\n#x.x,,,,,x.x#\n#xgx+,+,+x.x#\n#x#xxx,xxx.x#\n#x##..$...#x#\n#x#xx.r.xx#x#\n#xxxx.%.xxxx#\n###xx???xx###\n\n(puzzle: fireball, sigil-first, split, multiply, amplified teleport)\n###xxxxxxx###\n#xxxx...xxxx#\n#x#xx.@.xx.x#\n#x........gx#\n#xgx..x..x.x#\n#x.x.....x.x#\n#x,,x...x,,x#\n#x+,..,..,+x#\n#x,,x$.$x,,x#\n#x.x.r.r.x.x#\n#x.x.#x#.x.x#\n#x...###...x#\n#x.xx#.#xx.x#\n#xxxx.%.xxxx#\n###xx???xx###\n\n(introduce mobile amplify, teach mobile amplify)\n(puzzle: teleport, amplified teleport)\n###xxxxxxxx,,\n#xxxx...xxx,,\n#x.xx.@.xx,,,\n#xbbs...,,,,#\n#xx.,,.,,,+##\n#xx.,,.,,,,,#\n#xx,,x.x,,,,,\n#x,,,r$,,,+##\n#xx,,x,x,,,##\n#xx.,,,,,,,,#\n#xx.,##,,,,,,\n#x....##,,,,,\n#x.xx..#xx,,,\n#xxxx.%.xxx,,\n###xx???xxx,,\n\n(puzzle: teleport, fireball, mobile amplify)\n#################\n#####xxxxxxx#####\n#xxxxxx.@.xxxxxx#\n#x.bbx.+++.x+.+x#\n#x...x.....x.xrx#\n#x#.....b....x$x#\n#x..$x..$..x.x.x#\n#x..rx.....x+.+x#\n#xx$xx#.%..xxxxx#\n#x#r..##.....##x#\n#x#...#,,,.###.x#\n#x##...,,,.#.##x#\n#x##...,,,.##.bx#\n#xxxxxx...xxxxxx#\n#####xx...xx#####\n#####xx???xx#####\n\nmessage i cannot allow you to proceed\n\n(gauntlet i: fireball dodging)\n,,xxxxxxxxx,,\n,,xxx...xxx,,\n,,,xx.@.xx,,,\nx,,,,...,,,,,\n+.,,,.b.,,,,x\n..x,,.$.,,,.+\n+.+.,.%.,,x..\n...x,...,.+.+\n+.+.,...,x...\n$.x,,...,.+.+\nrx,,,...,,x.$\nx,,,,...,,,xr\n,,,,,...,,,,x\n,,,xx...xx,,,\n,,xxx...xxx,,\n,,xxx???xxx,,\n\nmessage your power waxes and thus mine wanes\n\n(gauntlet ii: impending fireball doom)\n####xxxxx####\n#xxxxbbbxxxx#\n#x.,..@..,.x#\n#x.,.....,.x#\n#x.,.....,.x#\n#x.,#####,.x#\n#x,#######,x#\n#x,#######,x#\n#x,#######,x#\n#x,#######,x#\n#x,#######,x#\n#x,#######,x#\n#x,#######,x#\n#x,#######,x#\n#x,#######,x#\n#x,#######,x#\n#x,#######,x#\n#x,,#####,,x#\n#x,,,,,,,,,x#\n#x,x+++++x,x#\n#x.xxx$xxx.x#\n#x....r....x#\n#xxxx.%.xxxx#\n####x???x####\n\n(message it seems you cannot be stopped\n\n(gauntlet iii: interference pattern)\n#######xxxxx#######\n###xxxxx...xxxxx###\n###x...s.@.s...x###\n###x...s...s...x###\n#xxx,,,,sbs,,,,xxx#\n#x+,,,,,...,,,,,,x#\n#x+,,,,,$r.,,,,,,x#\n#x+,,,,,...,,,,,,x#\n#x+,,,,,$$$,,,,,,x#\n#xxx,,,,bbb,,,,xxx#\n###x...$...$...x###\n###x...r...r...x###\n###xxxxx.%.xxxxx###\n#######x???x#######)\n\nmessage there isn't enough mana in the cosmos to stop fate\nmessage ...but you shall not leave whilst i live\n\n(boss)\n,,x###xxxxx###x,,\n,,xrrrxb.bxrrrx,,\n,,,.....@.....,,,\n,,,,,,,...,,,,,,,\n,,,,,,,,,,,,,,,,,\n,+x,,,,,,,,,,,x+,\n+x+,,,,,£3,,,,+x+\nx+%,,,,,,,,,,,.+x\n,,,,,,x,x,x,,,,,,\n,,,,,,,???,,,,,,,\n,,,,,,x???x,,,,,,\n,,,,,,,???,,,,,,,\n,,,,,,x,x,x,,,,,,\nx+.,,,,3£,,,,,.+x\n+x+,,,,,,,,,,,+x+\n,+x,,,,,,,,,,,x+,\n,,,,,,,,,,,,,,,,,\n\nmessage all of this has happened before, and all of this will happen again, my son\n",["tick","tick","tick","tick","tick","tick",3,"tick","tick","tick","tick","tick","tick",1,"tick",1,"tick",3,"tick","tick",2,"tick",2,"tick",2,"tick",1,"tick","tick",1,"tick","tick","tick","tick","tick","tick","restart","tick","tick",3,"tick",3,2,"tick",2,2,"tick",2,"tick",2,"tick",2,3,"tick",3,"tick",3,0,"tick",0,"tick",0,1,1,"tick",1,"tick",1,"tick","tick","tick","tick","tick"],"background indestructible:0,0,0,background wall:1,1,1,1,1,1,1,1,1,1,\n1,1,1,background space:2,0,1,1,1,1,1,1,1,1,\n1,1,1,1,1,1,2,0,1,1,0,0,0,\n0,0,0,0,0,0,0,0,1,0,0,0,1,\n0,background blue:3,background:4,4,4,4,2,2,2,2,0,1,0,\n0,0,0,0,4,0,4,4,0,2,2,0,2,\n0,0,0,4,4,4,4,background player:5,4,4,4,4,4,\n2,2,4,4,background goal:6,0,4,4,4,4,4,4,4,\n4,4,4,2,2,4,4,6,0,4,4,4,4,\n4,4,4,4,4,4,2,2,2,4,6,0,0,\n0,0,0,4,0,3,4,0,4,4,0,2,0,\n0,0,0,0,1,0,4,4,4,4,4,4,4,\n3,2,0,1,2,0,1,1,0,0,0,0,0,\n0,0,0,0,0,0,1,2,0,1,1,1,1,\n1,1,1,1,1,1,1,1,1,1,0,0,0,\n1,1,1,1,1,1,1,1,1,1,1,1,1,\n",3,"1397323474349.4995"]
	],
	[
		"50 objects",
		["title Simple Block Pushing Game\nauthor Stephen Lavelle\nhomepage www.puzzlescript.net\n \n========\nOBJECTS\n========\n \nBackground\nBlack\n \nPlayer\nGreen\n \nO0\ngrey\n \nO1\ngrey\n \nO2\ngrey\n \nO3\ngrey\n \nO4\ngrey\n \nO5\ngrey\n \nO6\ngrey\n \nO7\ngrey\n \nO8\ngrey\n \nO9\ngrey\n \nO10\ngrey\n \nO11\ngrey\n \nO12\ngrey\n \nO13\ngrey\n \nO14\ngrey\n \nO15\ngrey\n \nO16\ngrey\n \nO17\ngrey\n \nO18\ngrey\n \nO19\ngrey\n \n \nO20\ngrey\n \nO21\ngrey\n \nO22\ngrey\n \nO23\ngrey\n \nO24\ngrey\n \nO25\ngrey\n \nO26\ngrey\n \nO27\ngrey\n \nO28\ngrey\n \nO29\ngrey\n \n \nO30\ngrey\n \nO31\ngrey\n \nO32\ngrey\n \nO33\ngrey\n \nO34\ngrey\n \nO35\ngrey\n \nO36\ngrey\n \nO37\ngrey\n \nO38\ngrey\n \nO39\ngrey\n \nO40\ngrey\n \nO41\ngrey\n \nO42\ngrey\n \nO43\ngrey\n \nO44\ngrey\n \nO45\ngrey\n \nO46\ngrey\n \nO47\ngrey\n \nO48\ngrey\n \nO49\ngrey\n \nRiver\nblue\n \n=======\nLEGEND\n=======\n \n. = Background\nP = Player\n~ = River\nO = O0 or O1 or O2 or O3 or O4 or O5 or O6 or O7 or O8 or O9 or O10 or O11 or O12 or O13 or O14 or O15 or O16 or O17 or O18 or O19 or O20 or O21 or O22 or O23 or O24 or O25 or O26 or O27 or O28 or O29 or O30 or O31 or O32 or O33 or O34 or O35 or O36 or O37 or O38 or O39 or O40 or O41 or O42 or O43 or O44 or O45 or O46 or O47 or O48 or O49\n \n \n=======\nSOUNDS\n=======\n \n \n================\nCOLLISIONLAYERS\n================\n \nBackground\nRiver\nPlayer, O\n \n======\nRULES\n======\n \n[ action player ] [ no O no Player no River ] -> [action player] [ random O ]\n[ > Player | O ] -> [ > Player | > O ]\n[ > O | O ] -> [ > O | > O ]\n \n==============\nWINCONDITIONS\n==============\n \n \n=======\nLEVELS\n=======\n \n~~~~~~~~~\n~.......~\n~...P...~\n~.......~\n~~~~~~~~~\n",[4,1,3,0,1,2,2,3,3,0,3,0,1,1,2,2,2,1,0],"background river:0,background o0 river:1,background o16 river:2,background o7 river:3,0,0,background o27:4,background o40:5,background o31:6,\n0,3,background o7:7,background player:8,background:9,0,0,9,9,\n9,background o49 river:10,background o17 river:11,9,9,9,0,background o38 river:12,9,\n9,background o44:13,0,0,background o10:14,background o12:15,background o29:16,0,0,\nbackground o49:17,background o8:18,background o24:19,0,0,0,background o11 river:20,background o27 river:21,0,\n",0,"1397342665552.5623"]
	],/*
	--crazy slow to compile, replacing with something that doesn't take as long
	[
		"100 objects",
		["title Simple Block Pushing Game\nauthor Stephen Lavelle\nhomepage www.puzzlescript.net\n \n========\nOBJECTS\n========\n \nBackground\nBlack\n \nPlayer\nGreen\n \nO0\ngrey\n \nO1\ngrey\n \nO2\ngrey\n \nO3\ngrey\n \nO4\ngrey\n \nO5\ngrey\n \nO6\ngrey\n \nO7\ngrey\n \nO8\ngrey\n \nO9\ngrey\n \nO10\ngrey\n \nO11\ngrey\n \nO12\ngrey\n \nO13\ngrey\n \nO14\ngrey\n \nO15\ngrey\n \nO16\ngrey\n \nO17\ngrey\n \nO18\ngrey\n \nO19\ngrey\n \n \nO20\ngrey\n \nO21\ngrey\n \nO22\ngrey\n \nO23\ngrey\n \nO24\ngrey\n \nO25\ngrey\n \nO26\ngrey\n \nO27\ngrey\n \nO28\ngrey\n \nO29\ngrey\n \n \nO30\ngrey\n \nO31\ngrey\n \nO32\ngrey\n \nO33\ngrey\n \nO34\ngrey\n \nO35\ngrey\n \nO36\ngrey\n \nO37\ngrey\n \nO38\ngrey\n \nO39\ngrey\n \nO40\ngrey\n \nO41\ngrey\n \nO42\ngrey\n \nO43\ngrey\n \nO44\ngrey\n \nO45\ngrey\n \nO46\ngrey\n \nO47\ngrey\n \nO48\ngrey\n \nO49\ngrey\n \n\nN0\npurple\n \nN1\npurple\n \nN2\npurple\n \nN3\npurple\n \nN4\npurple\n \nN5\npurple\n \nN6\npurple\n \nN7\npurple\n \nN8\npurple\n \nN9\npurple\n \nN10\npurple\n \nN11\npurple\n \nN12\npurple\n \nN13\npurple\n \nN14\npurple\n \nN15\npurple\n \nN16\npurple\n \nN17\npurple\n \nN18\npurple\n \nN19\npurple\n \n \nN20\npurple\n \nN21\npurple\n \nN22\npurple\n \nN23\npurple\n \nN24\npurple\n \nN25\npurple\n \nN26\npurple\n \nN27\npurple\n \nN28\npurple\n \nN29\npurple\n \n \nN30\npurple\n \nN31\npurple\n \nN32\npurple\n \nN33\npurple\n \nN34\npurple\n \nN35\npurple\n \nN36\npurple\n \nN37\npurple\n \nN38\npurple\n \nN39\npurple\n \nN40\npurple\n \nN41\npurple\n \nN42\npurple\n \nN43\npurple\n \nN44\npurple\n \nN45\npurple\n \nN46\npurple\n \nN47\npurple\n \nN48\npurple\n \nN49\npurple\n\nRiver\nblue\n \n=======\nLEGEND\n=======\n \n. = Background\nP = Player\n~ = River\nO = O0 or O1 or O2 or O3 or O4 or O5 or O6 or O7 or O8 or O9 or O10 or O11 or O12 or O13 or O14 or O15 or O16 or O17 or O18 or O19 or O20 or O21 or O22 or O23 or O24 or O25 or O26 or O27 or O28 or O29 or O30 or O31 or O32 or O33 or O34 or O35 or O36 or O37 or O38 or O39 or O40 or O41 or O42 or O43 or O44 or O45 or O46 or O47 or O48 or O49 or N0 or N1 or N2 or N3 or N4 or N5 or N6 or N7 or N8 or N9 or N10 or N11 or N12 or N13 or N14 or N15 or N16 or N17 or N18 or N19 or N20 or N21 or N22 or N23 or N24 or N25 or N26 or N27 or N28 or N29 or N30 or N31 or N32 or N33 or N34 or N35 or N36 or N37 or N38 or N39 or N40 or N41 or N42 or N43 or N44 or N45 or N46 or N47 or N48 or N49\n \n \n=======\nSOUNDS\n=======\n \n \n================\nCOLLISIONLAYERS\n================\n \nBackground\nRiver\nPlayer, O\n \n======\nRULES\n======\n \n[ action player ] [ no O no Player no River ] -> [action player] [ random O ]\n[ > Player | O ] -> [ > Player | > O ]\n[ > O | O ] -> [ > O | > O ]\n \n==============\nWINCONDITIONS\n==============\n \n \n=======\nLEVELS\n=======\n \n~~~~~~~~~\n~.......~\n~...P...~\n~.......~\n~~~~~~~~~\n",[4,1,0,3,2,3,2,1,0,1,1,0,1,0,3,3],"background river:0,background o43 river:1,background o3 river:2,background n14 river:3,0,0,background o42:4,background n21:5,background n13:6,\n0,0,background:7,background n15:8,background o1:9,0,0,7,7,\nbackground n17:10,0,background player river:11,7,7,7,0,background n6 river:12,background n24:13,\n7,7,background o18 river:14,0,background n3:15,background n40:16,background o32:17,0,0,\nbackground o13:18,background o30:19,background n1:20,0,0,background n28 river:21,background o15 river:22,0,0,\n",0,"1397342930704.8674"]
	],*/
	[
		"100 objects",
		["title Simple Block Pushing Game\nauthor Stephen Lavelle\nhomepage www.puzzlescript.net\n \n========\nOBJECTS\n========\n \nBackground\nBlack\n \nPlayer\nGreen\n \nO0\ngrey\n \nO1\ngrey\n \nO2\ngrey\n \nO3\ngrey\n \nO4\ngrey\n \nO5\ngrey\n \nO6\ngrey\n \nO7\ngrey\n \nO8\ngrey\n \nO9\ngrey\n \nO10\ngrey\n \nO11\ngrey\n \nO12\ngrey\n \nO13\ngrey\n \nO14\ngrey\n \nO15\ngrey\n \nO16\ngrey\n \nO17\ngrey\n \nO18\ngrey\n \nO19\ngrey\n \n \nO20\ngrey\n \nO21\ngrey\n \nO22\ngrey\n \nO23\ngrey\n \nO24\ngrey\n \nO25\ngrey\n \nO26\ngrey\n \nO27\ngrey\n \nO28\ngrey\n \nO29\ngrey\n \n \nO30\ngrey\n \nO31\ngrey\n \nO32\ngrey\n \nO33\ngrey\n \nO34\ngrey\n \nO35\ngrey\n \nO36\ngrey\n \nO37\ngrey\n \nO38\ngrey\n \nO39\ngrey\n \nO40\ngrey\n \nO41\ngrey\n \nO42\ngrey\n \nO43\ngrey\n \nO44\ngrey\n \nO45\ngrey\n \nO46\ngrey\n \nO47\ngrey\n \nO48\ngrey\n \nO49\ngrey\n \n\nN0\npurple\n \nN1\npurple\n \nN2\npurple\n \nN3\npurple\n \nN4\npurple\n \nN5\npurple\n \nN6\npurple\n \nN7\npurple\n \nN8\npurple\n \nN9\npurple\n \nN10\npurple\n \nN11\npurple\n \nN12\npurple\n \nN13\npurple\n \nN14\npurple\n \nN15\npurple\n \nN16\npurple\n \nN17\npurple\n \nN18\npurple\n \nN19\npurple\n \n \nN20\npurple\n \nN21\npurple\n \nN22\npurple\n \nN23\npurple\n \nN24\npurple\n \nN25\npurple\n \nN26\npurple\n \nN27\npurple\n \nN28\npurple\n \nN29\npurple\n \n \nN30\npurple\n \nN31\npurple\n \nN32\npurple\n \nN33\npurple\n \nN34\npurple\n \nN35\npurple\n \nN36\npurple\n \nN37\npurple\n \nN38\npurple\n \nN39\npurple\n \nN40\npurple\n \nN41\npurple\n \nN42\npurple\n \nN43\npurple\n \nN44\npurple\n \nN45\npurple\n \nN46\npurple\n \nN47\npurple\n \nN48\npurple\n \nN49\npurple\n\nRiver\nblue\n \n=======\nLEGEND\n=======\n \n. = Background\nP = Player\n~ = River\nO = O0 or O1 or O2 or O3 or O4 or O5 or O6 or O7 or O8 or O9 or O10 or O11 or O12 or O13 or O14 or O15 or O16 or O17 or O18 or O19 or O20 or O21 or O22 or O23 or O24 or O25 or O26 or O27 or O28 or O29 or O30 or O31 or O32 or O33 or O34 or O35 or O36 or O37 or O38 or O39 or O40 or O41 or O42 or O43 or O44 or O45 or O46 or O47 or O48 or O49 \nN = N0 or N1 or N2 or N3 or N4 or N5 or N6 or N7 or N8 or N9 or N10 or N11 or N12 or N13 or N14 or N15 or N16 or N17 or N18 or N19 or N20 or N21 or N22 or N23 or N24 or N25 or N26 or N27 or N28 or N29 or N30 or N31 or N32 or N33 or N34 or N35 or N36 or N37 or N38 or N39 or N40 or N41 or N42 or N43 or N44 or N45 or N46 or N47 or N48 or N49\nN_O = N or O\n \n=======\nSOUNDS\n=======\n \n \n================\nCOLLISIONLAYERS\n================\n \nBackground\nRiver\nPlayer, O, N\n \n======\nRULES\n======\n \n[ action player ] [ no N_O no Player no River ] -> [action player] [ random N_O ]\n[ > Player | O ] -> [ > Player | > O ]\n[ > Player | N ] -> [ > Player | ]\n\n \n==============\nWINCONDITIONS\n==============\n \n \n=======\nLEVELS\n=======\n \n~~~~~~~~~\n~.......~\n~...P...~\n~.......~\n~~~~~~~~~\n",[4,1,2,1,1],"background river:0,0,0,0,0,0,background o9:1,background o2:2,background player:3,\n0,0,background o27:4,background o37:5,background:6,0,0,background n0:7,6,\n6,background o49 river:8,0,background n22:9,6,background n14:10,0,0,5,\nbackground n37:11,background n27:12,0,0,background n18:13,background n8:14,background o3:15,0,0,\nbackground n48:16,background o31:17,background n24:18,0,0,0,0,0,0,\n",0,"1397344224335.4502"]
	],
	[
		"200 objects",
		["title Simple Block Pushing Game\nauthor Stephen Lavelle\nhomepage www.puzzlescript.net\n \n========\nOBJECTS\n========\n \nBackground\nBlack\n \nPlayer\nGreen\n \nO0\ngrey\n \nO1\ngrey\n \nO2\ngrey\n \nO3\ngrey\n \nO4\ngrey\n \nO5\ngrey\n \nO6\ngrey\n \nO7\ngrey\n \nO8\ngrey\n \nO9\ngrey\n \nO10\ngrey\n \nO11\ngrey\n \nO12\ngrey\n \nO13\ngrey\n \nO14\ngrey\n \nO15\ngrey\n \nO16\ngrey\n \nO17\ngrey\n \nO18\ngrey\n \nO19\ngrey\n \n \nO20\ngrey\n \nO21\ngrey\n \nO22\ngrey\n \nO23\ngrey\n \nO24\ngrey\n \nO25\ngrey\n \nO26\ngrey\n \nO27\ngrey\n \nO28\ngrey\n \nO29\ngrey\n \n \nO30\ngrey\n \nO31\ngrey\n \nO32\ngrey\n \nO33\ngrey\n \nO34\ngrey\n \nO35\ngrey\n \nO36\ngrey\n \nO37\ngrey\n \nO38\ngrey\n \nO39\ngrey\n \nO40\ngrey\n \nO41\ngrey\n \nO42\ngrey\n \nO43\ngrey\n \nO44\ngrey\n \nO45\ngrey\n \nO46\ngrey\n \nO47\ngrey\n \nO48\ngrey\n \nO49\ngrey\n \n\nN0\npurple\n \nN1\npurple\n \nN2\npurple\n \nN3\npurple\n \nN4\npurple\n \nN5\npurple\n \nN6\npurple\n \nN7\npurple\n \nN8\npurple\n \nN9\npurple\n \nN10\npurple\n \nN11\npurple\n \nN12\npurple\n \nN13\npurple\n \nN14\npurple\n \nN15\npurple\n \nN16\npurple\n \nN17\npurple\n \nN18\npurple\n \nN19\npurple\n \n \nN20\npurple\n \nN21\npurple\n \nN22\npurple\n \nN23\npurple\n \nN24\npurple\n \nN25\npurple\n \nN26\npurple\n \nN27\npurple\n \nN28\npurple\n \nN29\npurple\n \n \nN30\npurple\n \nN31\npurple\n \nN32\npurple\n \nN33\npurple\n \nN34\npurple\n \nN35\npurple\n \nN36\npurple\n \nN37\npurple\n \nN38\npurple\n \nN39\npurple\n \nN40\npurple\n \nN41\npurple\n \nN42\npurple\n \nN43\npurple\n \nN44\npurple\n \nN45\npurple\n \nN46\npurple\n \nN47\npurple\n \nN48\npurple\n \nN49\npurple\n\n\nL0\nyellow\n \nL1\nyellow\n \nL2\nyellow\n \nL3\nyellow\n \nL4\nyellow\n \nL5\nyellow\n \nL6\nyellow\n \nL7\nyellow\n \nL8\nyellow\n \nL9\nyellow\n \nL10\nyellow\n \nL11\nyellow\n \nL12\nyellow\n \nL13\nyellow\n \nL14\nyellow\n \nL15\nyellow\n \nL16\nyellow\n \nL17\nyellow\n \nL18\nyellow\n \nL19\nyellow\n \n \nL20\nyellow\n \nL21\nyellow\n \nL22\nyellow\n \nL23\nyellow\n \nL24\nyellow\n \nL25\nyellow\n \nL26\nyellow\n \nL27\nyellow\n \nL28\nyellow\n \nL29\nyellow\n \n \nL30\nyellow\n \nL31\nyellow\n \nL32\nyellow\n \nL33\nyellow\n \nL34\nyellow\n \nL35\nyellow\n \nL36\nyellow\n \nL37\nyellow\n \nL38\nyellow\n \nL39\nyellow\n \nL40\nyellow\n \nL41\nyellow\n \nL42\nyellow\n \nL43\nyellow\n \nL44\nyellow\n \nL45\nyellow\n \nL46\nyellow\n \nL47\nyellow\n \nL48\nyellow\n \nL49\nyellow\n \n\nM0\npink\n \nM1\npink\n \nM2\npink\n \nM3\npink\n \nM4\npink\n \nM5\npink\n \nM6\npink\n \nM7\npink\n \nM8\npink\n \nM9\npink\n \nM10\npink\n \nM11\npink\n \nM12\npink\n \nM13\npink\n \nM14\npink\n \nM15\npink\n \nM16\npink\n \nM17\npink\n \nM18\npink\n \nM19\npink\n \n \nM20\npink\n \nM21\npink\n \nM22\npink\n \nM23\npink\n \nM24\npink\n \nM25\npink\n \nM26\npink\n \nM27\npink\n \nM28\npink\n \nM29\npink\n \n \nM30\npink\n \nM31\npink\n \nM32\npink\n \nM33\npink\n \nM34\npink\n \nM35\npink\n \nM36\npink\n \nM37\npink\n \nM38\npink\n \nM39\npink\n \nM40\npink\n \nM41\npink\n \nM42\npink\n \nM43\npink\n \nM44\npink\n \nM45\npink\n \nM46\npink\n \nM47\npink\n \nM48\npink\n \nM49\npink\n\nRiver\nblue\n \n=======\nLEGEND\n=======\n \n. = Background\nP = Player\n~ = River\nO = O0 or O1 or O2 or O3 or O4 or O5 or O6 or O7 or O8 or O9 or O10 or O11 or O12 or O13 or O14 or O15 or O16 or O17 or O18 or O19 or O20 or O21 or O22 or O23 or O24 or O25 or O26 or O27 or O28 or O29 or O30 or O31 or O32 or O33 or O34 or O35 or O36 or O37 or O38 or O39 or O40 or O41 or O42 or O43 or O44 or O45 or O46 or O47 or O48 or O49 or N0 or N1 or N2 or N3 or N4 or N5 or N6 or N7 or N8 or N9 or N10 or N11 or N12 or N13 or N14 or N15 or N16 or N17 or N18 or N19 or N20 or N21 or N22 or N23 or N24 or N25 or N26 or N27 or N28 or N29 or N30 or N31 or N32 or N33 or N34 or N35 or N36 or N37 or N38 or N39 or N40 or N41 or N42 or N43 or N44 or N45 or N46 or N47 or N48 or N49 or L0 or L1 or L2 or L3 or L4 or L5 or L6 or L7 or L8 or L9 or L10 or L11 or L12 or L13 or L14 or L15 or L16 or L17 or L18 or L19 or L20 or L21 or L22 or L23 or L24 or L25 or L26 or L27 or L28 or L29 or L30 or L31 or L32 or L33 or L34 or L35 or L36 or L37 or L38 or L39 or L40 or L41 or L42 or L43 or L44 or L45 or L46 or L47 or L48 or L49 or M0 or M1 or M2 or M3 or M4 or M5 or M6 or M7 or M8 or M9 or M10 or M11 or M12 or M13 or M14 or M15 or M16 or M17 or M18 or M19 or M20 or M21 or M22 or M23 or M24 or M25 or M26 or M27 or M28 or M29 or M30 or M31 or M32 or M33 or M34 or M35 or M36 or M37 or M38 or M39 or M40 or M41 or M42 or M43 or M44 or M45 or M46 or M47 or M48 or M49\n \n \n=======\nSOUNDS\n=======\n \n \n================\nCOLLISIONLAYERS\n================\n \nBackground\nRiver\nPlayer\nO\n \n======\nRULES\n======\n \n[ action player ] [ no O no Player no River ] -> [action player] [ random O ]\nlate [ Player O ] -> [ Player ]\n \n==============\nWINCONDITIONS\n==============\n \n \n=======\nLEVELS\n=======\n \n~~~~~~~~~\n~.......~\n~...P...~\n~.......~\n~~~~~~~~~\n",[4,1,0,3,3,3,2,2,1,1,1,1,1,0,3,0,1,4,3,3,3,2,2,3,3,0,0,3],"background river:0,0,0,0,0,0,background:1,background m36:2,background l38:3,\n0,0,1,background n46:4,background o13:5,0,0,1,background m17:6,\nbackground l32:7,0,0,1,1,1,0,0,background l34:8,\nbackground o38:9,1,0,0,1,1,1,0,0,\nbackground player:10,background n21:11,background m18:12,0,0,0,0,0,0,\n",0,"1397343088681.431"]
	],
	[
		"misc many objects",
		["title Simple Block Pushing Game\nauthor Stephen Lavelle\nhomepage www.puzzlescript.net\n \n========\nOBJECTS\n========\n \nBackground\nBlack\n \nPlayer\nGreen\n \nO0\ngrey\n \nO1\ngrey\n \nO2\ngrey\n \nO3\ngrey\n \nO4\ngrey\n \nO5\ngrey\n \nO6\ngrey\n \nO7\ngrey\n \nO8\ngrey\n \nO9\ngrey\n \nO10\ngrey\n \nO11\ngrey\n \nO12\ngrey\n \nO13\ngrey\n \nO14\ngrey\n \nO15\ngrey\n \nO16\ngrey\n \nO17\ngrey\n \nO18\ngrey\n \nO19\ngrey\n \n \nO20\ngrey\n \nO21\ngrey\n \nO22\ngrey\n \nO23\ngrey\n \nO24\ngrey\n \nO25\ngrey\n \nO26\ngrey\n \nO27\ngrey\n \nO28\ngrey\n \nO29\ngrey\n \n \nO30\ngrey\n \nO31\ngrey\n \nO32\ngrey\n \nO33\ngrey\n \nO34\ngrey\n \nO35\ngrey\n \nO36\ngrey\n \nO37\ngrey\n \nO38\ngrey\n \nO39\ngrey\n \nO40\ngrey\n \nO41\ngrey\n \nO42\ngrey\n \nO43\ngrey\n \nO44\ngrey\n \nO45\ngrey\n \nO46\ngrey\n \nO47\ngrey\n \nO48\ngrey\n \nO49\ngrey\n \n\nN0\npurple\n \nN1\npurple\n \nN2\npurple\n \nN3\npurple\n \nN4\npurple\n \nN5\npurple\n \nN6\npurple\n \nN7\npurple\n \nN8\npurple\n \nN9\npurple\n \nN10\npurple\n \nN11\npurple\n \nN12\npurple\n \nN13\npurple\n \nN14\npurple\n \nN15\npurple\n \nN16\npurple\n \nN17\npurple\n \nN18\npurple\n \nN19\npurple\n \n \nN20\npurple\n \nN21\npurple\n \nN22\npurple\n \nN23\npurple\n \nN24\npurple\n \nN25\npurple\n \nN26\npurple\n \nN27\npurple\n \nN28\npurple\n \nN29\npurple\n \n \nN30\npurple\n \nN31\npurple\n \nN32\npurple\n \nN33\npurple\n \nN34\npurple\n \nN35\npurple\n \nN36\npurple\n \nN37\npurple\n \nN38\npurple\n \nN39\npurple\n \nN40\npurple\n \nN41\npurple\n \nN42\npurple\n \nN43\npurple\n \nN44\npurple\n \nN45\npurple\n \nN46\npurple\n \nN47\npurple\n \nN48\npurple\n \nN49\npurple\n\n\nL0\nyellow\n \nL1\nyellow\n \nL2\nyellow\n \nL3\nyellow\n \nL4\nyellow\n \nL5\nyellow\n \nL6\nyellow\n \nL7\nyellow\n \nL8\nyellow\n \nL9\nyellow\n \nL10\nyellow\n \nL11\nyellow\n \nL12\nyellow\n \nL13\nyellow\n \nL14\nyellow\n \nL15\nyellow\n \nL16\nyellow\n \nL17\nyellow\n \nL18\nyellow\n \nL19\nyellow\n \n \nL20\nyellow\n \nL21\nyellow\n \nL22\nyellow\n \nL23\nyellow\n \nL24\nyellow\n \nL25\nyellow\n \nL26\nyellow\n \nL27\nyellow\n \nL28\nyellow\n \nL29\nyellow\n \n \nL30\nyellow\n \nL31\nyellow\n \nL32\nyellow\n \nL33\nyellow\n \nL34\nyellow\n \nL35\nyellow\n \nL36\nyellow\n \nL37\nyellow\n \nL38\nyellow\n \nL39\nyellow\n \nL40\nyellow\n \nL41\nyellow\n \nL42\nyellow\n \nL43\nyellow\n \nL44\nyellow\n \nL45\nyellow\n \nL46\nyellow\n \nL47\nyellow\n \nL48\nyellow\n \nL49\nyellow\n \n\nM0\npink\n \nM1\npink\n \nM2\npink\n \nM3\npink\n \nM4\npink\n \nM5\npink\n \nM6\npink\n \nM7\npink\n \nM8\npink\n \nM9\npink\n \nM10\npink\n \nM11\npink\n \nM12\npink\n \nM13\npink\n \nM14\npink\n \nM15\npink\n \nM16\npink\n \nM17\npink\n \nM18\npink\n \nM19\npink\n \n \nM20\npink\n \nM21\npink\n \nM22\npink\n \nM23\npink\n \nM24\npink\n \nM25\npink\n \nM26\npink\n \nM27\npink\n \nM28\npink\n \nM29\npink\n \n \nM30\npink\n \nM31\npink\n \nM32\npink\n \nM33\npink\n \nM34\npink\n \nM35\npink\n \nM36\npink\n \nM37\npink\n \nM38\npink\n \nM39\npink\n \nM40\npink\n \nM41\npink\n \nM42\npink\n \nM43\npink\n \nM44\npink\n \nM45\npink\n \nM46\npink\n \nM47\npink\n \nM48\npink\n \nM49\npink\n\nRiver\nblue\n \n=======\nLEGEND\n=======\n \n. = Background\nP = Player\n~ = River\nO = O0 or O1 or O2 or O3 or O4 or O5 or O6 or O7 or O8 or O9 or O10 or O11 or O12 or O13 or O14 or O15 or O16 or O17 or O18 or O19 or O20 or O21 or O22 or O23 or O24 or O25 or O26 or O27 or O28 or O29 or O30 or O31 or O32 or O33 or O34 or O35 or O36 or O37 or O38 or O39 or O40 or O41 or O42 or O43 or O44 or O45 or O46 or O47 or O48 or O49 \nN = N0 or N1 or N2 or N3 or N4 or N5 or N6 or N7 or N8 or N9 or N10 or N11 or N12 or N13 or N14 or N15 or N16 or N17 or N18 or N19 or N20 or N21 or N22 or N23 or N24 or N25 or N26 or N27 or N28 or N29 or N30 or N31 or N32 or N33 or N34 or N35 or N36 or N37 or N38 or N39 or N40 or N41 or N42 or N43 or N44 or N45 or N46 or N47 or N48 or N49 \nL = L0 or L1 or L2 or L3 or L4 or L5 or L6 or L7 or L8 or L9 or L10 or L11 or L12 or L13 or L14 or L15 or L16 or L17 or L18 or L19 or L20 or L21 or L22 or L23 or L24 or L25 or L26 or L27 or L28 or L29 or L30 or L31 or L32 or L33 or L34 or L35 or L36 or L37 or L38 or L39 or L40 or L41 or L42 or L43 or L44 or L45 or L46 or L47 or L48 or L49 \nM = M0 or M1 or M2 or M3 or M4 or M5 or M6 or M7 or M8 or M9 or M10 or M11 or M12 or M13 or M14 or M15 or M16 or M17 or M18 or M19 or M20 or M21 or M22 or M23 or M24 or M25 or M26 or M27 or M28 or M29 or M30 or M31 or M32 or M33 or M34 or M35 or M36 or M37 or M38 or M39 or M40 or M41 or M42 or M43 or M44 or M45 or M46 or M47 or M48 or M49\nanything = L or M or N or O\n \n=======\nSOUNDS\n=======\n \n \n================\nCOLLISIONLAYERS\n================\n \nBackground\nRiver\nPlayer\nO\nL\nM\nN\n \n======\nRULES\n======\n \n[ action player ] [ no O no Player no River ] -> [action player] [ random O ]\nlate [ Player O ] -> [ Player ]\n \n==============\nWINCONDITIONS\n==============\n \n \n=======\nLEVELS\n=======\n \n~~~~~~~~~\n~.......~\n~...P...~\n~.......~\n~~~~~~~~~\n",[4,1,0,3,3,3,2,2],"background river:0,0,0,0,0,0,background o10:1,background o8:2,background o47:3,\n0,0,background o1:4,background o45:5,background o35:6,0,0,background:7,7,\nbackground o16:8,0,0,7,7,2,0,0,7,\nbackground o23:9,5,0,0,7,7,background player:10,0,0,\nbackground o11:11,background o15:12,background o12:13,0,0,0,0,0,0,\n",0,"1397343233919.3174"]
	],
	[
		"50 layers",
		["title Simple Block Pushing Game\nauthor Stephen Lavelle\nhomepage www.puzzlescript.net\n \n========\nOBJECTS\n========\n \nBackground\nBlack\n \nPlayer\nGreen\n \nO0\ngrey\n \nO1\ngrey\n \nO2\ngrey\n \nO3\ngrey\n \nO4\ngrey\n \nO5\ngrey\n \nO6\ngrey\n \nO7\ngrey\n \nO8\ngrey\n \nO9\ngrey\n \nO10\ngrey\n \nO11\ngrey\n \nO12\ngrey\n \nO13\ngrey\n \nO14\ngrey\n \nO15\ngrey\n \nO16\ngrey\n \nO17\ngrey\n \nO18\ngrey\n \nO19\ngrey\n \n \nO20\ngrey\n \nO21\ngrey\n \nO22\ngrey\n \nO23\ngrey\n \nO24\ngrey\n \nO25\ngrey\n \nO26\ngrey\n \nO27\ngrey\n \nO28\ngrey\n \nO29\ngrey\n \n \nO30\ngrey\n \nO31\ngrey\n \nO32\ngrey\n \nO33\ngrey\n \nO34\ngrey\n \nO35\ngrey\n \nO36\ngrey\n \nO37\ngrey\n \nO38\ngrey\n \nO39\ngrey\n \nO40\ngrey\n \nO41\ngrey\n \nO42\ngrey\n \nO43\ngrey\n \nO44\ngrey\n \nO45\ngrey\n \nO46\ngrey\n \nO47\ngrey\n \nO48\ngrey\n \nO49\ngrey\n \n\nRiver\nblue\n \n=======\nLEGEND\n=======\n \n. = Background\nP = Player\n~ = River\nO = O0 or O1 or O2 or O3 or O4 or O5 or O6 or O7 or O8 or O9 or O10 or O11 or O12 or O13 or O14 or O15 or O16 or O17 or O18 or O19 or O20 or O21 or O22 or O23 or O24 or O25 or O26 or O27 or O28 or O29 or O30 or O31 or O32 or O33 or O34 or O35 or O36 or O37 or O38 or O39 or O40 or O41 or O42 or O43 or O44 or O45 or O46 or O47 or O48 or O49 \n \n=======\nSOUNDS\n=======\n \n \n================\nCOLLISIONLAYERS\n================\n \nBackground\nRiver\nPlayer\nO0\nO1\nO2\nO3\nO4\nO5\nO6\nO7\nO8\nO9\nO10\nO11\nO12\nO13\nO14\nO15\nO16\nO17\nO18\nO19\nO20\nO21\nO22\nO23\nO24\nO25\nO26\nO27\nO28\nO29\nO30\nO31\nO32\nO33\nO34\nO35\nO36\nO37\nO38\nO39\nO40\nO41\nO42\nO43\nO44\nO45\nO46\nO47\nO48\nO49 \n\n \n======\nRULES\n======\n \n[ action player ] [ no O no Player no River ] -> [action player] [ random O ]\nlate [ Player O ] -> [ Player ]\n \n==============\nWINCONDITIONS\n==============\n \n \n=======\nLEVELS\n=======\n \n~~~~~~~~~\n~.......~\n~...P...~\n~.......~\n~~~~~~~~~\n",[4,1,0,3,3,3,2,2],"background river:0,0,0,0,0,0,background o21:1,background o42:2,background o17:3,\n0,0,background o36:4,background o39:5,background o28:6,0,0,background:7,7,\nbackground o38:8,0,0,7,7,background o32:9,0,0,7,\nbackground o19:10,background o22:11,0,0,7,7,background player:12,0,0,\nbackground o14:13,background o8:14,background o34:15,0,0,0,0,0,0,\n",0,"1397343421304.0276"]
	],
	[
		"50 layers 2",
		["title Simple Block Pushing Game\nauthor Stephen Lavelle\nhomepage www.puzzlescript.net\n \n========\nOBJECTS\n========\n \nBackground\nBlack\n \nPlayer\nGreen\n \nO0\ngrey\n \nO1\ngrey\n \nO2\ngrey\n \nO3\ngrey\n \nO4\ngrey\n \nO5\ngrey\n \nO6\ngrey\n \nO7\ngrey\n \nO8\ngrey\n \nO9\ngrey\n \nO10\ngrey\n \nO11\ngrey\n \nO12\ngrey\n \nO13\ngrey\n \nO14\ngrey\n \nO15\ngrey\n \nO16\ngrey\n \nO17\ngrey\n \nO18\ngrey\n \nO19\ngrey\n \n \nO20\ngrey\n \nO21\ngrey\n \nO22\ngrey\n \nO23\ngrey\n \nO24\ngrey\n \nO25\ngrey\n \nO26\ngrey\n \nO27\ngrey\n \nO28\ngrey\n \nO29\ngrey\n \n \nO30\ngrey\n \nO31\ngrey\n \nO32\ngrey\n \nO33\ngrey\n \nO34\ngrey\n \nO35\ngrey\n \nO36\ngrey\n \nO37\ngrey\n \nO38\ngrey\n \nO39\ngrey\n \nO40\ngrey\n \nO41\ngrey\n \nO42\ngrey\n \nO43\ngrey\n \nO44\ngrey\n \nO45\ngrey\n \nO46\ngrey\n \nO47\ngrey\n \nO48\ngrey\n \nO49\ngrey\n \n\nRiver\nblue\n \n=======\nLEGEND\n=======\n \n. = Background\nP = Player\n~ = River\nO = O0 or O1 or O2 or O3 or O4 or O5 or O6 or O7 or O8 or O9 or O10 or O11 or O12 or O13 or O14 or O15 or O16 or O17 or O18 or O19 or O20 or O21 or O22 or O23 or O24 or O25 or O26 or O27 or O28 or O29 or O30 or O31 or O32 or O33 or O34 or O35 or O36 or O37 or O38 or O39 or O40 or O41 or O42 or O43 or O44 or O45 or O46 or O47 or O48 or O49 \n \n=======\nSOUNDS\n=======\n \n \n================\nCOLLISIONLAYERS\n================\n \nBackground\nRiver\nPlayer\nO0\nO1\nO2\nO3\nO4\nO5\nO6\nO7\nO8\nO9\nO10\nO11\nO12\nO13\nO14\nO15\nO16\nO17\nO18\nO19\nO20\nO21\nO22\nO23\nO24\nO25\nO26\nO27\nO28\nO29\nO30\nO31\nO32\nO33\nO34\nO35\nO36\nO37\nO38\nO39\nO40\nO41\nO42\nO43\nO44\nO45\nO46\nO47\nO48\nO49 \n\n \n======\nRULES\n======\n \n[ action player ] [ no O no Player no River ] -> [action player] [ random O ]\n\n[ > player | o ] -> cancel\n \n==============\nWINCONDITIONS\n==============\n \n \n=======\nLEVELS\n=======\n \n~~~~~~~~~\n~.......~\n~...P...~\n~.......~\n~~~~~~~~~\n",[1,4,1,0,3,2,1,0,3,2,1,0,3],"background river:0,0,0,0,0,0,background o9:1,background o47:2,background o29:3,\n0,0,background o3:4,background o23:5,background o8:6,0,0,background o27:7,background player:8,\nbackground o18:9,0,0,5,background o33:10,background o21:11,0,0,background o12:12,\n5,background o24:13,0,0,background o16:14,7,background o32:15,0,0,\nbackground o22:16,14,background o49:17,0,0,0,0,0,0,\n",0,"1397343495880.7278"]
	],
	[
		"netrunner test",
		["title ICE.5\nauthor Jonah Ostroff\nrun_rules_on_level_start\nBackground_Color #180018\nrealtime_interval 5\n\n(\nEvery 5 seconds, a click happens:\nRunner gets 1 credit.\nCorp gets 1 credit per installed agenda.\nInstalled agendas advance and possibly score, activating their subroutines.\nSubroutines take effect.\n\nCorp uses W/S to select agenda or ice, which agenda or ice, and which server to install on. Install cost is always 1.\n\nWhen you run, you go through ice in order, and the following things happen:\nA: If the ice is unrezzed, the corp rezzes it by paying its strength, if possible. If they cannot afford this, it remains unrezzed and the runner moves on.\nB: If the ice is rezzed, the runner compares his credits to the strength of the ice, and compares his breaker color to the ice.\n• If the credits are sufficient and the breakers match, the credits are spent, the ice is destroyed, and the runner moves on.\n• If the credits are sufficient and the breakers don't match, the credits are spent and the ice's strength is reduced by 1, to a minimum of 1, and the runner moves on.\n• If the credits are insufficient and the breakers match, the runner bypasses the ice for free.\n• If the credits are insufficient and the breakers don't match, the run ends and the subroutine is activated, taking effect at the next click.\nC: If an agenda is encountered, the runner steals the agenda and moves on.\nD: If the end of the server is reached, the runner's breaker changes to that server's color and the run ends.\n\nAfter each run, the corp gains 1 credit.\n\nSubroutines:\nRed (Jinteki?) spawns strength 1 ice\nGreen (Weyland?) increases the strength of a random rezzed ice.\nBlue (Haas-Bioroid?) prevents the runner from running and gaining credits for 1 tick.\nYellow (NBN) sets the corp's credit pool to 5.\n\nIce selector always shows two agendas in the top row (W) and two ice in the bottom row (S). The cheaper ice is always on the left.\n\nAdvance agenda 5 times (20-25 seconds) to score, access to steal.\nScored (not stolen) agendas trigger the subroutine of their color.\n\n)\n\n========\nOBJECTS\n========\n\nBG\n#180018\n\nCardSpace\n#180018\n\nScoreSpace\nWhite Black\n11111\n10001\n10001\n10001\n11111\n\nServers\n#212 #323\n00000\n01000\n00010\n00000\n00000\n\nWWhite\nWhite\n0...0\n0.0.0\n0.0.0\n0.0.0\n.0.0.\n\nSWhite\nWhite\n.0000\n0....\n.000.\n....0\n0000.\n\nWGray\n#424\n0...0\n0.0.0\n0.0.0\n0.0.0\n.0.0.\n\nSGray\n#424\n.0000\n0....\n.000.\n....0\n0000.\n\nHidden\n#77A #AA8\n00010\n01111\n01000\n11110\n00010\n\nCBlue\nBlue\n.....\n.000.\n.000.\n.000.\n.....\n\nCGreen\n#3A4\n.....\n.000.\n.000.\n.000.\n.....\n\nCRed\nRed\n.....\n.000.\n.000.\n.000.\n.....\n\nCYellow\n#FF0\n.....\n.000.\n.000.\n.000.\n.....\n\nNum0\n#000\n.....\n.....\n.....\n.....\n.....\n\nNum1\n#000\n.....\n.....\n..0..\n.....\n.....\n\nNum2\n#000\n.....\n.0...\n.....\n...0.\n.....\n\nNum3\n#000\n.....\n.0...\n..0..\n...0.\n.....\n\nNum4\n#000\n.....\n.0.0.\n.....\n.0.0.\n.....\n\nNum5\n#000\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\nIce (Also shows credits.)\n#AAA\n00000\n0...0\n0...0\n0...0\n00000\n\nAgenda (Also shows points.)\n#AAA\n.000.\n0...0\n0...0\n0...0\n.000.\n\nRunner\nWhite\n..0..\n.0.0.\n.0.0.\n0...0\n.000.\n\nBarrier\nWhite\n..0..\n..0..\n..0..\n..0..\n..0..\n\nBreaker\nWhite #180018\n11111\n00000\n0...0\n0...0\n.000.\n\nLEdge\nWhite #180018\n110..\n110..\n110..\n110..\n110..\n\nREdge\nWhite #180018\n..011\n..011\n..011\n..011\n..011\n\nTop\nWhite #180018\n11111\n00000\n..0..\n..0..\n..0..\n\nActive\n#F0F\n.....\n.....\n.....\n.....\n.....\n\nRunnerData\nWhite\n..0..\n.0.0.\n.0.0.\n0...0\n.000.\n\nCorpData (30th)\nWhite\n.0...\n...0.\n.0...\n00000\n0...0\n\nSubroutine\n#F0F\n.0.0.\n0...0\n.....\n0...0\n.0.0.\n\n=======\nLEGEND\n=======\n\nBackground = Servers or BG or CardSpace or ScoreSpace\nPlayer = Runner\nIndicator = WWhite or SWhite or WGray or SGray\nLetter = Indicator or RunnerData or CorpData\nWhiteIndicator = WWhite or SWhite\nColor = CRed or CBlue or CGreen or CYellow\nColorOther = CRed or CBlue or CGreen or CYellow\nNumber = Num0 or Num1 or Num2 or Num3 or Num4 or Num5\nNumberOther = Num0 or Num1 or Num2 or Num3 or Num4 or Num5\nCard = Ice or Agenda\nG4 = Num5\nG3 = Num4 or G4\nG2 = Num3 or G3\nG1 = Num2 or G2\nG0 = Num1 or G1\n\nColorable = Card or Runner or Breaker\nBarrierStuff = Barrier or LEdge or REdge or Top\nInterface = Breaker or Card\n\n| = Barrier and Servers\n/ = LEdge and Servers\n\\ = REdge and Servers\n- = Top and Servers\n, = Servers\n@ = Runner and Servers\n. = BG\nW = WWhite\nS = SWhite\n1 = WGray\n2 = SGray\n? = CardSpace\n5 = Breaker and CRed and Servers\n6 = Breaker and CBlue and Servers\n7 = Breaker and CGreen and Servers\n8 = Breaker and CYellow and Servers\n{ = Top and LEdge and Servers\n} = Top and REdge and Servers\nR = RunnerData\nC = CorpData\n$ = Ice and ScoreSpace\n! = Agenda and Num0 and ScoreSpace\n=======\nSOUNDS\n=======\nSfx1 34409706 (Time sound)\nSfx2 79359503 (Agenda scored)\nSfx3 2690903 (Agenda stolen)\nSfx4 77457707 (New Ice)\nSfx5 29470105 (Change breaker sound)\nSfx6 63512704 (Subroutine sound)\nSfx7 99213702 (Destroy ice sound)\n================\nCOLLISIONLAYERS\n================\n\nBackground\nColor Top\nColorable Letter LEdge REdge Barrier\nNumber\nHidden Subroutine\nActive\n\n======\nRULES\n======\n(Check for winner)\n[BG Color| | | |BG Color][Stationary Player] -> Cancel\nRight[REdge| |BG Color|Color| | |BG Color][Runner] -> [REdge| |BG Color|Up Color| | |BG Color][]\nUp[BG Up Color|CorpData] -> [BG Color|CorpData] Message Corp wins!\nDown[BG Up Color|RunnerData] -> [BG Color|RunnerData] Message Runner wins!\n[Color Servers no Colorable] -> [Servers]\n\n[Stationary Player][ScoreSpace Number] -> [Player][ScoreSpace Number] Sfx1\n\n[Action Player][CBlue RunnerData] -> Cancel\n\n(After tick, give runner 1 credit and corp X credits where X is the number of agendas in servers, and advance each agenda.)\nRight[Stationary Player][RunnerData no CBlue| |Ice ScoreSpace Number|] -> [Player][RunnerData| |Ice ScoreSpace Number|Num1]\n\nRight[Stationary Player][Agenda Servers] -> [Player][Right Agenda Servers]\nRight [Right Agenda Servers][CorpData| |Ice ScoreSpace Num0] -> [Agenda Servers][CorpData| |Ice ScoreSpace Num1]\nRight [Right Agenda Servers][CorpData| |Ice ScoreSpace Num1] -> [Agenda Servers][CorpData| |Ice ScoreSpace Num2]\nRight [Right Agenda Servers][CorpData| |Ice ScoreSpace Num2] -> [Agenda Servers][CorpData| |Ice ScoreSpace Num3]\nRight [Right Agenda Servers][CorpData| |Ice ScoreSpace Num3] -> [Agenda Servers][CorpData| |Ice ScoreSpace Num4]\nRight [Right Agenda Servers][CorpData| |Ice ScoreSpace Num4] -> [Agenda Servers][CorpData| |Ice ScoreSpace Num5]\n[Right Agenda Servers] -> [Agenda Servers]\n\n[Stationary Player][Agenda Number Servers] -> [Stationary Player][Agenda Right Number Servers]\n[Right Num0] -> [Num1]\n[Right Num1] -> [Num2]\n[Right Num2] -> [Num3]\n[Right Num3] -> [Num4]\n[Right Num4] -> [Num5]\n\n(Scoring agendas.)\nDown[Servers Hidden Agenda Num5][CorpData| ] ->[Servers Hidden Agenda Num5][CorpData|Left Active]\nLeft [Left Active BG|] -> [BG|Right Active]\nRight[Right Active Color|BG|] -> [Color|Right Active BG|]\n+ [Right Active BG no Color][Hidden Agenda Num5 Color Servers] -> [Right Active BG Color Subroutine][Servers] Sfx2\n[Hidden Agenda Num5 Color Servers] -> [Servers] Sfx2\n[Right Active BG] -> [BG]\n\n(Enable subroutines.)\n\n(Shrug off Blue from last time.)\n[Stationary Player][Cblue RunnerData] -> [Player][RunnerData]\n\n(Blue colors the RunnerData blue for the next turn, preventing them from running and gaining credits.)\n[Stationary Player][CBlue Subroutine][RunnerData] -> [Player][CBlue][CBlue RunnerData]\n(Yellow sets the corp's credits to 5.)\n[Stationary Player][CYellow Subroutine][CorpData| |Ice] -> [Player][CYellow][CorpData| |Ice Num5]\n(Red adds a rezzed strength 1 ice to a random server.)\nstartloop\nrandom Down [Stationary Player][CRed Subroutine][Breaker| | | | |no Card] -> [Player][CRed][Breaker| | | | |Ice Num1 random Color]\n\n(Green strengthens a rezzed ice, possibly itself.)\nrandom [Stationary Player][CGreen Subroutine][Servers Ice Number no Num5 no Hidden] -> [Player][CGreen][Servers Ice Right Number]\nendloop\n\n[Stationary Player][Subroutine] -> [Stationary Player][]\n\n(Begin the run.)\nUp [Action Runner|] -> [Action Runner|Active]\n\n(Loop for each ice/agenda:)\nstartloop\n(Rez if can pay.)\nRight[CorpData| |Ice Num1][Servers Active Hidden Ice Number no G1] -> [CorpData|Number|Ice Num1][Servers Active Ice Number]\nRight[CorpData| |Ice Num2][Servers Active Hidden Ice Number no G2] -> [CorpData|Number|Ice Num2][Servers Active Ice Number]\nRight[CorpData| |Ice Num3][Servers Active Hidden Ice Number no G3] -> [CorpData|Number|Ice Num3][Servers Active Ice Number]\nRight[CorpData| |Ice Num4][Servers Active Hidden Ice Number no G4] -> [CorpData|Number|Ice Num4][Servers Active Ice Number]\nRight[CorpData| |Ice Num5][Servers Active Hidden Ice Number] -> [CorpData|Number|Ice Num5][Servers Active Ice Number]\n\n(Break ice if able.)\nRight[RunnerData| |Ice Num1][Servers Stationary Active no Hidden Ice Number no G1] -> [RunnerData|Number|Ice Num1][Servers Up Active Ice Number]\nRight[RunnerData| |Ice Num2][Servers Stationary Active no Hidden Ice Number no G2] -> [RunnerData|Number|Ice Num2][Servers Up Active Ice Number]\nRight[RunnerData| |Ice Num3][Servers Stationary Active no Hidden Ice Number no G3] -> [RunnerData|Number|Ice Num3][Servers Up Active Ice Number]\nRight[RunnerData| |Ice Num4][Servers Stationary Active no Hidden Ice Number no G4] -> [RunnerData|Number|Ice Num4][Servers Up Active Ice Number]\nRight[RunnerData| |Ice Num5][Servers Stationary Active no Hidden Ice Number] -> [RunnerData|Number|Ice Num5][Servers Up Active Ice Number]\n\n(Check whether ice and runner are same color.)\n[Runner CBlue][Active no Hidden Ice CBlue] -> [Runner CBlue][Active Right Ice CBlue]\n[Runner CRed][Active no Hidden Ice CRed] -> [Runner CRed][Active Right Ice CRed]\n[Runner CYellow][Active no Hidden Ice CYellow] -> [Runner CYellow][Active Right Ice CYellow]\n[Runner CGreen][Active no Hidden Ice CGreen] -> [Runner CGreen][Active Right Ice CGreen]\n\n(Destroy ice if broken and same color.)\n[Up Active Servers no Hidden Right Ice Color Number] -> [Up Active Servers] Sfx7\n\n(Shrink ice strength if broken.)\n[Up Active Ice no Hidden G1] -> [Up Active Ice Left G1]\n\n(Move past ice if correct breaker and still not broken.)\nRight[RunnerData| |Ice Num0][Servers Stationary Active no Hidden Right Ice G0] -> [RunnerData| |Ice Num0][Servers Up Active no Hidden Ice G0]\nRight[RunnerData| |Ice Num1][Servers Stationary Active no Hidden Right Ice G1] -> [RunnerData| |Ice Num1][Servers Up Active no Hidden Ice G1]\nRight[RunnerData| |Ice Num2][Servers Stationary Active no Hidden Right Ice G2] -> [RunnerData| |Ice Num2][Servers Up Active no Hidden Ice G2]\nRight[RunnerData| |Ice Num3][Servers Stationary Active no Hidden Right Ice G3] -> [RunnerData| |Ice Num3][Servers Up Active no Hidden Ice G3]\nRight[RunnerData| |Ice Num4][Servers Stationary Active no Hidden Right Ice G4] -> [RunnerData| |Ice Num4][Servers Up Active no Hidden Ice G4]\n\n(Score agenda if able.)\nUp[Active Hidden Agenda Servers][RunnerData|] -> [Active Hidden Agenda Servers][RunnerData|Left Active]\nLeft[Left Active BG|] -> [BG|Right Active]\nRight[Right Active BG Color||] -> [BG Color|Right Active|]\n+[Right Active BG no Color][Servers Active Hidden Agenda Color Number] -> [Right Active BG Color][Servers Active] Sfx3\n[Active Servers Hidden Agenda Color Number] -> [Active Servers]\n\n[Right Active BG] -> [BG]\n\n[Active Servers no Interface] -> [Up Active Servers]\n[Active Hidden Ice Servers] -> [Up Active Hidden Ice Servers]\n\n(Adjust numbers.)\nRight[Stationary G0|Stationary Number ScoreSpace] -> [Left G0|Left Number ScoreSpace]\n+ Right[Stationary Number ScoreSpace|Stationary G0] -> [Right Number ScoreSpace|Left G0]\n+[Left Num5] -> [Num4]\n+[Left Num4] -> [Num3]\n+[Left Num3] -> [Num2]\n+[Left Num2] -> [Num1]\n+[Left Num1] -> [Num0]\n+[Right Num0] -> [Num1]\n+[Right Num1] -> [Num2]\n+[Right Num2] -> [Num3]\n+[Right Num3] -> [Num4]\n+[Right Num4] -> [Num5]\n+[Right Num5] -> [Num5]\n\n[Num0 BG] -> [BG]\n\n(Advance if able.)\nUp[Up Active Servers no Runner|] -> [Servers|Active]\nendloop\n\n(Pay corp 1 after run.)\n[Active Servers no Runner][CorpData| |Ice|no Num1] -> [Active Servers][CorpData| |Ice|Num1]\n\n(Access breaker if at end.)\n[Runner][Active Breaker Color Servers] -> [Runner Color][Breaker Color Servers] Sfx5\n\n(Enable subroutine if blocked by ice.)\n[Active Servers Ice no Runner] -> [Servers Ice Subroutine] Sfx6\n\nUp[Servers Hidden Card Number Color|no Card no Breaker] -> [Servers|Hidden Card Number Color]\n+ Up[Servers no Hidden Card Number Color|no Card no Breaker] -> [Servers|Card Number Color]\n\n(Corp decision stuff. First, transfer to current W or S.)\n[Up Runner][WWhite] -> [Active Runner][Active WWhite]\n[Down Runner][SWhite] -> [Active Runner][Active SWhite]\n\n(Choosing card row.)\nRight[Active Runner][WWhite| |CardSpace][WGray| |SGray| | |Breaker] -> [Active Runner][WGray| |CardSpace][WWhite| |SWhite| | |Breaker]\nRight[Active Runner][SWhite| |CardSpace] -> [Runner][SGray| |CardSpace]\n\n(Choosing card column.)\nRight[Active Runner][WWhite| |SWhite| | |Breaker][WGray| |no Indicator| |SGray] -> [Runner][WGray| |SGray| | |Breaker][WWhite| | | |SWhite]\n\n(Choosing left or right servers.)\nDown[Active WhiteIndicator| |Top] -> [WhiteIndicator|Active|Top]\nRight[Active Runner][WWhite| | | |SWhite] -> [Runner][WGray| | | |SGray]\nRight[WGray|Active|SGray] -> [WWhite| |SWhite]\n\n(Choosing final server.)\nDown[Active WhiteIndicator|Breaker|...|no Card|][Hidden Card Number Color CardSpace] -> [WhiteIndicator|Breaker|...|Hidden Card Number Color|][CardSpace]\nDown[Active WhiteIndicator|Breaker][CardSpace Hidden Card] -> Cancel\n\n(Resetting choice process.)\nRight[Active Runner][WWhite| |SWhite] -> [Active Runner][WGray| |SGray]\n(Corp pays for installed card.)\nRight[Active Runner][CorpData| |Ice Num0] -> Cancel\nRight[Active Runner][CorpData| |Ice] -> [Active Runner][CorpData|Num1|Ice] Sfx4\n(Highlight original W and S again.)\nDown[Active Runner][WGray| |SGray] -> [Runner][WWhite| |SWhite]\n\n(Adjust numbers here.)\nRight[Stationary G0|Stationary Number ScoreSpace] -> [Left G0|Left Number ScoreSpace]\n+ Right[Stationary Number ScoreSpace|Stationary G0] -> [Right Number ScoreSpace|Left G0]\n+[Left Num5] -> [Num4]\n+[Left Num4] -> [Num3]\n+[Left Num3] -> [Num2]\n+[Left Num2] -> [Num1]\n+[Left Num1] -> [Num0]\n+[Right Num0] -> [Num1]\n+[Right Num1] -> [Num2]\n+[Right Num2] -> [Num3]\n+[Right Num3] -> [Num4]\n+[Right Num4] -> [Num5]\n+[Right Num5] -> [Num5]\n\n[Num0 BG] -> [BG]\n\n(Runner switching lanes.)\nHorizontal [> Runner Color|Barrier|Servers] -> [|Barrier|Runner Color Servers]\nHorizontal [> Runner|Barrier|Servers] -> [|Barrier|Runner Servers]\n\n(Hiding chosen card.)\nDown[Active Indicator|...|CardSpace] -> [Active Indicator|...|Active CardSpace]\nRight[Active Indicator|...|Active CardSpace] -> [Active Indicator|...|Hidden CardSpace]\n\n[Active CardSpace] -> [CardSpace]\n\n[Active Indicator][Hidden CardSpace][CardSpace no Card] -> [Indicator][Hidden CardSpace][Action CardSpace]\n\n[Hidden Stationary CardSpace Number Card Color][Action CardSpace] -> [CardSpace][Hidden Action CardSpace Number Card Color]\n\n[Action CardSpace][Stationary CardSpace Number Card Color] -> [Action CardSpace][CardSpace]\n\n(Initialize credits at start of game.)\nLate Right[CorpData| |Ice ScoreSpace no Number] -> [CorpData| |Ice ScoreSpace Num5]\nLate Right[RunnerData| |Ice ScoreSpace no Number] -> [RunnerData| |Ice ScoreSpace Num0]\n\n(Make new ice.)\nlate Right[WWhite|...|CardSpace no Agenda] -> [WWhite|...|CardSpace Agenda random Color Num0]\nlate Right[SWhite|...|CardSpace no Color] -> [SWhite|...|CardSpace random Color]\nlate Right[SWhite|...|CardSpace no G0] -> [SWhite|...|CardSpace random G0 Ice]\n\n(Sort ice choices left-to-right.)\nlate Right[CardSpace Color G1| |CardSpace ColorOther Num1] -> [CardSpace ColorOther Num1| |CardSpace Color G1]\nlate Right[CardSpace Color G2| |CardSpace ColorOther Num2] -> [CardSpace ColorOther Num2| |CardSpace Color G2]\nlate Right[CardSpace Color G3| |CardSpace ColorOther Num3] -> [CardSpace ColorOther Num3| |CardSpace Color G3]\nlate Right[CardSpace Color G4| |CardSpace ColorOther Num4] -> [CardSpace ColorOther Num4| |CardSpace Color G4]\n\n(Put agendas above ice in servers.)\nlate Up[Servers Hidden Agenda Color Number|Servers Ice ColorOther NumberOther] -> [Servers Hidden Ice ColorOther NumberOther|Servers Agenda Color Number]\n+ late up[Servers Hidden Ice|Servers no Hidden Agenda] -> [Servers Ice|Servers Hidden Agenda]\n\n==============\nWINCONDITIONS\n==============\nNo Runner\n=======\nLEVELS\n=======\nMessage Runner uses Left/Right/Space Bar. Corp uses W/S. Score or steal five agendas to win. See source code for further instructions.\n\n.........1...2.........\n........1.2.1.2........\n...1.2.{5-6-7-8}.......\n......./,|,|,|,\\..C.$..\n.W.?.?./,|,|,|,\\.......\n....?../,|,|,|,\\.......\n.S.?.?./,|,|,|,\\.......\n......./,|,|,|,\\..R.$..\n......./@|,|,|,\\.......\n",[0,2,0,2,2,0,0,0,0,0,0,0,0,0,0,2,2,"tick",3,3,0,4,4,"tick",2,2,"tick",0,0,2,0,4,"tick",3,4,"tick"],"bg:0,0,0,0,0,0,0,0,0,0,0,0,0,bg wwhite:1,0,bg swhite:2,0,0,0,0,0,0,0,\n0,0,0,0,0,0,bg wgray:3,0,agenda cardspace cgreen num0:4,0,cardspace cgreen ice num1:5,0,0,0,0,0,0,0,cardspace:6,0,0,0,0,\n0,bg sgray:7,0,4,0,cardspace cblue ice num5:8,0,0,0,0,0,0,0,0,0,0,0,0,0,ledge servers top:9,ledge servers:10,10,10,\n10,10,10,0,3,breaker cred servers:11,cgreen hidden ice num1 servers:12,servers:13,13,13,13,13,3,0,servers top:14,barrier servers:15,15,15,15,15,15,0,7,\nbreaker cblue servers:16,13,13,13,13,13,13,0,0,14,15,15,15,15,15,15,0,3,breaker cgreen servers:17,13,13,13,13,\n13,13,7,0,14,15,15,15,15,15,15,0,7,breaker cyellow servers:18,cyellow ice num2 servers:19,13,13,13,13,cyellow runner servers:20,0,0,redge servers top:21,\nredge servers:22,22,22,22,22,22,0,0,0,0,0,0,0,0,0,0,0,0,0,bg cblue:23,0,bg cyellow:24,0,\n0,0,0,0,bg corpdata:25,bg cgreen:26,0,0,bg cblue runnerdata:27,0,0,0,0,0,24,0,0,0,0,0,0,0,ice num5 scorespace:28,\n0,0,0,ice num4 scorespace:29,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n",1,"1397348749712.9993"]
	],
	[
		"wb + gems test",
		["title Weird Bug and the Many Magic Gems\nauthor Jonah Ostroff et al.\ntext_color #F0F\ncolor_palette amiga\nbackground_color Black \nrun_rules_on_level_start\n\n========\nOBJECTS\n========\n\nGoal\nRed LightGreen\n.111.\n00.10\n0...0\n01.00\n.111.\n\nPlayer\n#F0F #F8F #80F\n.1.1.\n.000.\n10201\n.000.\n11.11\n\nDeadBug\n#D8D #FCF #A5C\n.1.1.\n.000.\n10201\n.000.\n11.11\n\nSleepingAnt\nRed #F75\n..1..\n.101.\n..0..\n.101.\n.....\n\nLiveAnt\nRed #F75\n..1..\n.101.\n..0..\n.101.\n.....\n\nBackground\n#0B1104 #101804 #121808 #0D1D06\n30222\n31100\n22223\n00111\n03330\n\nWeb\n#F8FFFF\n0.0.0\n.0.0.\n0.0.0\n.0.0.\n0.0.0\n\nWall\n#BA9 #A98 #876 #987\n01203\n01201\n21210\n20113\n20213\n\nPermawall\n#6A9 #698 #476 #487\n01203\n01201\n21210\n20113\n20213\n\nPebble\n#B84 #642\n.111.\n10001\n10001\n10001\n.111.\n\nSwitch\n#555 Yellow\n.....\n.000.\n.010.\n.000.\n.....\n\nDoor\nYellow #A83 #555\n22222\n21012\n20102\n21012\n22222\n\nGem1 (Connected to webs)\n#99C #CCF\n..0..\n.010.\n01110\n.010.\n..0..\n\nGem2 (Teleports with you)\n#F08 #F8F\n..0..\n.010.\n01110\n.010.\n..0..\n\nGem3 (Kills nearby bugs)\n#0C0 #8F8\n..0..\n.010.\n01110\n.010.\n..0..\n\nRadioactive1\n#0F0 #8F0\n.....\n..0..\n.010.\n..0..\n.....\n\nRadioactive2\n#080 #0F0\n.....\n..0..\n.010.\n..0..\n.....\n\nGem4 (Kills bugs in row/col.)\n#F30 #F84\n..0..\n.010.\n01110\n.010.\n..0..\n\nGem5 (Swaps wall and empty space.)\n#C63 #FC8\n..0..\n.010.\n01110\n.010.\n..0..\n\nGem6 (Clones, kills bugs.)\n#33C #88F\n..0..\n.010.\n01110\n.010.\n..0..\n\nGem7 (Charges webs.)\n#CC0 #FF8\n..0..\n.010.\n01110\n.010.\n..0..\n\nSpark\n#FF0 #FF8\n.....\n.0.0.\n..1..\n.0.0.\n.....\n\nGem8 (Awakens ants.)\n#639 #84F\n..0..\n.010.\n01110\n.010.\n..0..\n\nTemp\nWhite\n.....\n.....\n.....\n.....\n.....\n\nPDist0\nRed\n.....\n.....\n.....\n.....\n.....\n\nPDist1\nYellow\n.....\n.....\n.....\n.....\n.....\n\nPDist2\nBlue\n.....\n.....\n.....\n.....\n.....\n\n=======\nLEGEND\n=======\n\nGem = Gem1 or Gem2 or Gem3 or Gem4 or Gem5 or Gem6 or Gem7 (Does not actually include all gems; this is just the ones with normal movement properties.)\nRadioactive = Radioactive1 or Radioactive2\nSparkBlock = Pebble or Gem or Wall or Player or Door (Objects that block the spread of electricity.)\nAnt = SleepingAnt or LiveAnt\nPDist = PDist0 or PDist1 or PDist2\n\nBlockable = Player or Pebble or Web or SleepingAnt or Gem (Objects that can be moved around and shouldn't overlap a wall.)\nBlocking = Door or Wall or PermaWall (Objects that block movement.)\nWeight = Player or Pebble or Gem or Ant (Objects that weigh down switches.)\nSticky = Pebble or Ant or Gem (Objects that stick to webs.)\nPushable = Pebble or SleepingAnt or Gem (Objects that can be pushed.)\nAnything = Goal or Player or Ant or Web or Pebble or Switch or Door or Gem or Permawall or Temp (Objects that shouldn't be replaced with a wall.)\nAntBlock = Blocking or Pebble or Gem or SleepingAnt (Things that block ant pathfinding.)\n\n(Character equivalences for level creation.)\n@ = Player\n. = Background\n# = Wall\n$ = PermaWall\n* = Pebble\nO = Pebble and Web\n~ = Web\n+ = Door\n! = Switch\nG = Goal\nA = SleepingAnt\n1 = Gem1\n2 = Gem2\n3 = Gem3\n4 = Gem4\n5 = Gem5\n6 = Gem6\n% = Gem6 and Switch\n7 = Gem7\n8 = Gem8\n\n=======\nSOUNDS\n=======\n\nPushable Move 80095707\nSfx1 73155703 (Web creation sound.)\nSfx2 56169902 (Web destruction sound.)\nSfx3 10616905 (Door open sound.)\nSfx4 85050702 (Death sound.)\nSfx5 39881109 (Teleport sound.)\nSfx6 21501302 (Kill ant sound.)\nSfx7 76430108 (Wall swap sound.)\nSfx8 26367505 (Ant awaken sound.)\nEndLevel 47272300\n\n================\nCOLLISIONLAYERS\n================\n\nBackground (Background.)\nGoal Switch Gem8 (Level features you can step on.)\nWeb (Webbing only.)\nDoor Wall PermaWall Player Pebble Ant Gem DeadBug (Foreground: yourself, and other things you cannot step on.)\nTemp PDist(Invisible technical stuff for unlocking doors, zapping ants, etc. Lots of rules use this, so don't keep it lying around longer than necessary.)\nRadioactive Spark (Overlay effects.)\n\n======\nRULES\n======\n\n(Clean up effects from last turn.)\n[Radioactive] -> []\n[Spark] -> []\n\n(Pathfinding stuff for awakened ants.)\n[Player] -> [Player PDist0]\n[PDist0 | No PDist No AntBlock] -> [PDist0 | PDist1]\n+[PDist1 | No PDist No AntBlock] -> [PDist1 | PDist2]\n+[PDist2 | No PDist No AntBlock] -> [PDist2 | PDist0]\n\nstartloop\nrandom [stationary LiveAnt PDist2| PDist1] -> [> LiveAnt PDist2| PDist1]\nrandom [stationary LiveAnt PDist1| PDist0] -> [> LiveAnt PDist1| PDist0]\nrandom [stationary LiveAnt PDist0| PDist2] -> [> LiveAnt PDist0| PDist2]\nendloop\n\n[PDist] -> []\n\n(Incineration gem.)\n[Action Player][Gem4|...|Ant] -> [Action Player][Gem4|...|]\n[Action Player][Gem4] -> [Player][] Sfx6\n\n(Teleportation gem.)\n[Action Player][Web Gem2] -> [Gem2][Player] Sfx5\n\n(Player creates or destroys webs by pressing Action.)\n[Action Player no Web] -> [Player Web] Sfx1\n[Action Player Web] -> [Player] Sfx2\n\n(Player pushes pushable objects.)\n[> Player | Pushable] -> [> Player | > Pushable]\n\n(Code for propagating movement between webs and pushed objects. The + signs indicate that these rules are \"grouped\": they'll all keep happening, even out of order, until none of them can happen anymore. That means you can transfer movement from one pebble to another pebble, then from the second pebble to a web, then from that web to some adjacent web, then from THAT web to another pebble, etc.)\n[> Sticky Web] -> [> Sticky > Web]\n+[> Web Sticky] -> [> Web > Sticky]\n+[> Pushable|Pushable] -> [> Pushable|> Pushable]\n+[Moving Web|Web] -> [Moving Web|Moving Web]\n+[Moving Web][Gem1 Web] -> [Moving Web][Moving Gem1 Web]\n+[Moving Gem1 Web][Web] -> [Moving Gem1 Web][Moving Web]\n+[> Gem6][Gem6] -> [> Gem6][> Gem6]\n\n(When the magic gem is pushed into a wall, change all walls to empty space and all empty space to walls, and then cancel movement.)\n[ Player ] [ > Gem5 | Wall ] -> [ Player Temp ] [ > Gem5 | Wall ] Sfx7\n[ Player Temp ] [ Wall ] -> [ Player Temp ] [ Wall Temp ]\n[ Player Temp ] [ no Anything ] -> [ Player Temp ] [ Wall ]\n[ Wall Temp ] -> [ ]\n[ Player Temp ] [ > Anything ] -> [ Player Temp ] [ Anything ]\n[ Temp no Gem6] -> [ ]\n\n(If a moving object hits an immovable object, cancel all movement.)\n[> Blockable|Blocking] -> Cancel\n\n(Create the marker for pre-webbed gems!)\n[Gem6 Web] -> [Gem6 Web Temp]\n\n(Move the Marker!)\n[> Gem6 Temp] -> [> Gem6 > Temp]\n\n(Creating new gems - we are rich! :)\nlate[Web Gem6 no Temp][Web no Weight] -> [Web Gem6][Web Gem6]\nlate[Gem6 Temp] -> [Gem6]\n\n(At end of turn, should we open doors? Put \"Temp\" on each door, then remove \"Temp\" if some switch is uncovered, then delete all switches and doors if Temp still remains.)\nlate[Door] -> [Temp Door]\nlate[Switch no Weight][Temp Door] -> [Switch][Door]\nlate[Temp Door][Switch] -> [Temp Door][]\nlate[Temp Door] -> [] Sfx3\n\n(Spark propagation and ant-zapping.)\nlate[Gem7 Web|Web no SparkBlock] -> [Gem7 Web|Spark Web]\nlate[Spark Web|Web no SparkBlock] -> [Spark Web|Spark Web]\nlate VERTICAL[Spark|no SparkBlock] -> [Spark|Temp]\nlate VERTICAL[Gem7 Web|no SparkBlock] -> [Gem7 Web|Temp]\nlate VERTICAL[Temp|no SparkBlock] -> [Temp|Temp]\nlate [Temp Ant] -> [Temp] Sfx6\nlate [Temp] -> []\nlate HORIZONTAL[Spark|no SparkBlock] -> [Spark|Temp]\nlate HORIZONTAL[Gem7 Web|no SparkBlock] -> [Gem7 Web|Temp]\nlate HORIZONTAL[Temp|no SparkBlock] -> [Temp|Temp]\nlate [Temp Ant] -> [Temp] Sfx6\nlate [Temp] -> []\n\n(Radioactive propagation.)\nlate[Gem3|] -> [Gem3|Radioactive1]\nlate[Radioactive1|no Gem3] -> [Radioactive1|Radioactive2]\nlate[Radioactive Player] -> [Radioactive Deadbug] Sfx4\nlate[Radioactive Ant] -> [Radioactive] Sfx6\n\n(Killing stuff through adjacency.)\nlate[Gem6|Ant] -> [Gem6|] Sfx6\nlate[Player|Ant] -> [DeadBug|Ant] Sfx4\n\n(Awakening ants with Gem8.)\nlate [Player Gem8][SleepingAnt] -> [Player Gem8][LiveAnt]\nlate [Gem8][LiveAnt] -> [][LiveAnt] Sfx8\n\n(Webbed ants become dormant again.)\nlate [LiveAnt Web] -> [SleepingAnt Web]\n\n==============\nWINCONDITIONS\n==============\n\nSome Player on Goal (Needs some editing for later levels: if the player dies, then this condition is satisfied, because there aren't any players that aren't on the goal.)\n\n=======\nLEVELS\n=======\n\nMessage Cauchy's Connection Gem telekinetically links its web to other webs.\n\n#############\n#.....#.#.#G#\n#.###.#.#.#.#\n#.#.....A.A.#\n#.###########\n#...........#\n#.#.#.#.#.#.#\n#....@.1....#\n#.#.#.#.#.#.#\n#...........#\n#############\n\n#############\n#G.A..#...+1#\n###.###!*.#+#\n#!#.........#\n#.#####...@!#\n#*..........#\n#############\n\nMessage Toph's Teleportation Gem will swap with the player, if it has webbing when X is pressed.\n\n################\n#.@..#a#.......#\n#........!.!.*.#\n#....#a#.......#\n#.2..###.!.##+##\n#....###...#...#\n#....###.!.+.g.#\n#.*..###...#...#\n################\n\n(#############\n#.@...2.#...#\n#.!.!.!.+.G.#\n#...A...#...#\n#############)\n\n##########\n##..###a##\n#..*..@.g#\n#....##a##\n#..#######\n##.a#.+.+.\n##.##.+++.\n##.##++!++\n##2##.+++.\n#####++.++\n\n###########\n##!.......#\n##!.@...2.#\n##!.......#\n###...##.##\n###...+a.g#\n##....##.##\n#..####...#\n#.*...#*..#\n#..#......#\n#####.....#\n###########\n\nMessage Jonah's Juggernaut Gem kills all nearby insects.\n\n#############\n#.....#.#.#G#\n#.###.#.#.#.#\n#.#.....A.A.#\n#.###########\n#...........#\n#.#.#...#.#.#\n#..*..@..3..#\n#.#...#.#.#.#\n#...........#\n#############\n\n###############\n#G.A..#3+.....#\n###.###+#..*..#\n#!#..........!#\n#.#####!....@.#\n#*............#\n###############\n\nMessage Increpare's Incineration Gem explodes when X is pressed, killing all ants in its row and column.\n\nMessage It's pretty powerful.\n\n#############\n#.....#.#.#G#\n#.###.#.#.#.#\n#.#.....A.A.#\n#.###########\n#...........#\n#.#.#.#.#.#.#\n#....@.4....#\n#.#.#.#.#.#.#\n#...........#\n#############\n\n#############\n#G.A..#...+4#\n###.###!*.#+#\n#!#.........#\n#.#####...@!#\n#*..........#\n#############\n\n#############\n#....4#.....#\n#O~...#..A..#\n#..@.....A..#\n#...~.#...A.#\n#...O.#.A..G#\n#############\n\nMessage CHz's Changing Gem swaps all walls and empty spaces, whenever it's pushed into a wall.\n\n$$$$$$$$$$$$$$$\n$#############$\n$#.....#.#.#G#$\n$#.###.#.#.#.#$\n$#.#.....A.A.#$\n$#.###########$\n$#...........#$\n$#.#.#.#.#.#.#$\n$#....@.5....#$\n$#.#.#.#.#.#.#$\n$#...........#$\n$#############$\n$$$$$$$$$$$$$$$\n\n$$$$$$$$$$$$$\n$.....#.#.#G$\n$.###.#.#.#.$\n$.#.....A.A.$\n$.##########$\n$...........$\n$.#.#.#.#.#.$\n$....@.5....$\n$.#.#.#.#.#.$\n$...........$\n$$$$$$$$$$$$$\n\n$$$$$$$$$$$$$\n$G.A..#...+5$\n$##.###!*.#+$\n$!#.........$\n$.#####...@!$\n$*..........$\n$$$$$$$$$$$$$\n\nMessage Lucas's Lucrative Gem is deadly to ants, and creates linked copies on all empty webbing the first time it moves onto a web.\n\n#############\n#.....#.#.#G#\n#.###.#.#.#.#\n#.#.....A.A.#\n#.###########\n#...........#\n#.#.#.#.#.#.#\n#....@.6....#\n#.#.#.#.#.#.#\n#...........#\n#############\n\n#############\n#G.A..#...+6#\n###.###!*.#+#\n#!#.........#\n#.#####...@!#\n#*..........#\n#############\n\n##############\n#!.#...#6..6.#\n##...#.##...##\n#..#!#%.#....#\n#.####.##....#\n#...##.......#\n#.#######....#\n#..........#+#\n#!*.#AAA##@#G#\n##############\n\nMessage Diribative's Dynamo Gem charges connected webbing. Charged webs fry all ants in sight!\n\n#############\n#.....#.#.#G#\n#.###.#.#.#.#\n#.#.....A.A.#\n#.###########\n#...........#\n#.#.#.#.#.#.#\n#....@.7....#\n#.#.#.#.#.#.#\n#...........#\n#############\n\n#############\n#G.A..#...+7#\n###.###!*.#+#\n#!#.........#\n#.#####...@!#\n#*..........#\n#############\n\n###############\n#7777777777777#\n#7G+.........7#\n#7+A.@!*..A!!7#\n#7...........7#\n#7777777777777#\n###############\n\nMessage Dennis's Disturbance Gem awakens the ants!\n\n#############\n#.....#.#.#G#\n#.###.#.#.#.#\n#.#.....A.A.#\n#.###########\n#...........#\n#.#.#.#.#.#.#\n#....@.8....#\n#.#.#.#.#.#.#\n#...........#\n#############\n\n#############\n#G.A..#...+8#\n###.###!*.#+#\n#!#.........#\n#.#####...@!#\n#*..........#\n#############\n\n############\n#.!......+G#\n#.#.#.#!.###\n#.#.8......#\n#.#.#.#!...#\n#.#.#@.....#\n#...!...AAA#\n############\n",[3,3,2,0,3,1,2,2,3,3,0,0,0,0,0,0,1,1,1,1,1,3,3,3,3,3,0,2,2,1,1,1,2,2],"background permawall:0,0,0,0,0,0,0,0,0,0,0,0,0,0,background wall:1,\n1,1,1,1,1,1,1,1,1,1,0,0,1,background:2,2,\n2,2,2,2,2,2,2,1,0,0,1,2,1,1,1,\n2,1,2,1,2,1,0,0,1,2,1,2,1,2,2,\n2,2,2,1,0,0,1,2,1,2,1,2,1,2,1,\n2,1,0,0,1,2,2,2,1,2,2,2,2,2,1,\n0,0,1,1,1,2,1,background player:3,1,2,1,2,1,0,0,\n1,2,2,2,1,2,2,2,2,2,1,0,0,1,1,\n1,background sleepingant:4,1,2,1,2,1,2,1,0,0,1,2,2,background gem5:5,\n2,2,1,2,2,2,1,0,0,1,1,1,4,1,2,\n1,2,1,2,1,0,0,1,background goal:6,2,2,1,2,2,2,\n2,2,1,0,0,1,1,1,1,1,1,1,1,1,1,\n1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n",16,"1397352258217.8733"]
	],
	[
		"10 layers 50 objects",
		["title 10 Layer 50 Object Test\nauthor Dennis Au\nhomepage www.puzzlescript.net\nbackground_color purple\n\n========\nOBJECTS\n========\n\nNoTest\nred\n00000\n0...0\n0...0\n0...0\n00000\n\nTarget\nwhite\n.....\n.....\n..0..\n.....\n.....\n\nPlayer\norange\n\nBackground\nblack\n\nL0_0\nlightred\n.....\n..0..\n.0.0.\n..0..\n.....\n\nL1_0\nred\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\nL2_0\ndarkred\n..0..\n.....\n.....\n.....\n.....\n\nL3_0\nlightgreen\n.....\n.....\n.....\n.....\n..0..\n\nL4_0\ngreen\n.....\n.....\n0....\n.....\n.....\n\n\nL5_0\ndarkgreen\n.....\n.....\n....0\n.....\n.....\n\nL6_0\nlightblue\n00.00\n.....\n.....\n.....\n.....\n\nL7_0\nblue\n.....\n.....\n.....\n.....\n00.00\n\nL8_0\ndarkblue\n0....\n0....\n.....\n0....\n0....\n\nL9_0\nwhite\n....0\n....0\n.....\n....0\n....0\n\nL0_1\nlightred\n.....\n..0..\n.0.0.\n..0..\n.....\n\nL1_1\nred\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\nL2_1\ndarkred\n..0..\n.....\n.....\n.....\n.....\n\n\nL3_1\nlightgreen\n.....\n.....\n.....\n.....\n..0..\n\nL4_1\ngreen\n.....\n.....\n0....\n.....\n.....\n\n\nL5_1\ndarkgreen\n.....\n.....\n....0\n.....\n.....\n\n\nL6_1\nlightblue\n00.00\n.....\n.....\n.....\n.....\n\nL7_1\nblue\n.....\n.....\n.....\n.....\n00.00\n\nL8_1\ndarkblue\n0....\n0....\n.....\n0....\n0....\n\nL9_1\nwhite\n....0\n....0\n.....\n....0\n....0\n\nL0_2\nlightred\n.....\n..0..\n.0.0.\n..0..\n.....\n\nL1_2\nred\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\nL2_2\ndarkred\n..0..\n.....\n.....\n.....\n.....\n\nL3_2\nlightgreen\n.....\n.....\n.....\n.....\n..0..\n\nL4_2\ngreen\n.....\n.....\n0....\n.....\n.....\n\nL5_2\ndarkgreen\n.....\n.....\n....0\n.....\n.....\n\n\nL6_2\nlightblue\n00.00\n.....\n.....\n.....\n.....\n\nL7_2\nblue\n.....\n.....\n.....\n.....\n00.00\n\nL8_2\ndarkblue\n0....\n0....\n.....\n0....\n0....\n\nL9_2\nwhite\n....0\n....0\n.....\n....0\n....0\n\nL0_3\nlightred\n.....\n..0..\n.0.0.\n..0..\n.....\n\nL1_3\nred\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\nL2_3\ndarkred\n..0..\n.....\n.....\n.....\n.....\n\nL3_3\nlightgreen\n.....\n.....\n.....\n.....\n..0..\n\nL4_3\ngreen\n.....\n.....\n0....\n.....\n.....\n\nL5_3\ndarkgreen\n.....\n.....\n....0\n.....\n.....\n\n\nL6_3\nlightblue\n00.00\n.....\n.....\n.....\n.....\n\nL7_3\nblue\n.....\n.....\n.....\n.....\n00.00\n\nL8_3\ndarkblue\n0....\n0....\n.....\n0....\n0....\n\nL9_3\nwhite\n....0\n....0\n.....\n....0\n....0\n\nL0_4\nlightred\n.....\n..0..\n.0.0.\n..0..\n.....\n\nL1_4\nred\n.....\n.0.0.\n..0..\n.0.0.\n.....\n\nL2_4\ndarkred\n..0..\n.....\n.....\n.....\n.....\n\nL3_4\nlightgreen\n.....\n.....\n.....\n.....\n..0..\n\nL4_4\ngreen\n.....\n.....\n0....\n.....\n.....\n\nL5_4\ndarkgreen\n.....\n.....\n....0\n.....\n.....\n\nL6_4\nlightblue\n00.00\n.....\n.....\n.....\n.....\n\nL7_4\nblue\n.....\n.....\n.....\n.....\n00.00\n\nL8_4\ndarkblue\n0....\n0....\n.....\n0....\n0....\n\nL9_4\nwhite\n....0\n....0\n.....\n....0\n....0\n\n=======\nLEGEND\n=======\n\n. = Background\n@ = Player\nO = NoTest\nX = Target\n\nL0 = L0_0 or L0_1 or L0_2 or L0_3 or L0_4\nL1 = L1_0 or L1_1 or L1_2 or L1_3 or L1_4\nL2 = L2_0 or L2_1 or L2_2 or L2_3 or L2_4\nL3 = L3_0 or L3_1 or L3_2 or L3_3 or L3_4\nL4 = L4_0 or L4_1 or L4_2 or L4_3 or L4_4\nL5 = L5_0 or L5_1 or L5_2 or L5_3 or L5_4\nL6 = L6_0 or L6_1 or L6_2 or L6_3 or L6_4\nL7 = L7_0 or L7_1 or L7_2 or L7_3 or L7_4\nL8 = L8_0 or L8_1 or L8_2 or L8_3 or L8_4\nL9 = L9_0 or L9_1 or L9_2 or L9_3 or L9_4\n\nLN = L0 or L1 or L2 or L3 or L4 or L5 or L6 or L7 or L8 or L9\n\n=======\nSOUNDS\n=======\n\nL0 Create 60957500\nL1 Destroy 40110702\nL2 Move Up 26486507\nL3 Move Down 42912907\nL4 Move Left 68606707\nL5 Move Right 8270107\nL6 CantMove Up 77132104\nL7 CantMove Down 54260902\nL8 CantMove Left 39868504\nL9 CantMove Right 59084504\nPlayer Action 98636702\n\n================\nCOLLISIONLAYERS\n================\nBackground\nL0\nL1\nL2\nL3\nL4\nL5\nL6\nL7\nL8\nL9\nNoTest, Target\nPlayer\n\n======\nRULES\n======\n\n[> Player | No LN] -> [> Player | random LN]\n[> Player | LN] -> [> Player | > LN]\n[Action Player | LN] -> [Action Player|]\n\n\n==============\nWINCONDITIONS\n==============\n\nsome L0 on L1\nsome L1 on L2\nsome L2 on L3\nsome L3 on L4\nsome L4 on L5\nsome L5 on L6\nsome L7 on L8\nsome L8 on L9\nall Player on L0\nall Target on Player\nno NoTest on Player\n\n=======\nLEVELS\n=======\n\nX.........\n..........\n..@.......\n..........\n.........O\n\n......O\n.......\n...@...\nX......\n",[1,0,3,3,2,1,1,0,3,3,2,1,3,0,1,0,3,3,3,1,1,2,3,2,3,0,1,1,1,2,1,0,0,3,3,3,3,1,1,1,2,1,2,3,3,3,2,3,0,0,0,1,1,1,1,1,1,2,3,3,0,2,3,3,3,2,3,0,1,1,1,2,3,3,3,0,0,1,1,2,2,3,2,3,0,0,0,1,1,2,2,2,3,3,0,0,1,1,2,2,2,3,3,3,0,0,1,1,1,2,2,3,3,3,1,1,3,3,0,0,1,1,0,1,1,1,2,2,2,3,3,3,3,0,0,1,1,1,2,3,1,0,3,3,3,1,2,2,0,1,0,3,1,1,0,3,3,1,2,2,2,3,3,0,0,1,1,0,3,3,1,2,2,3,0,1,1,2,3,3,0,1,0,3,1,2,2,2,3,3,0,0,1,1,3,2,1],"background l0_3 l2_2 l6_0 l8_1 l9_4:0,background:1,background l2_3:2,background target:3,background l2_0 l8_0:4,background l1_1 l3_3 l7_4 l8_2:5,background l0_0:6,\nbackground l2_0 l3_3 l5_2:7,background l1_2:8,background l1_0:9,background l8_2:10,background l2_4 l3_0:11,background l1_3 l2_4:12,background l1_0 l3_4 l4_0:13,\nbackground l0_4:14,background l3_0 l4_0:15,background l1_3:16,1,background player:17,background l0_0 l5_2 l7_3:18,background l1_3 l2_4 l4_4 l6_2 l8_4 l9_2:19,\nbackground l8_1:20,background l2_4:21,background l2_3 l6_3 l7_0 l9_0:22,background l0_3 l1_1 l2_4 l3_0 l4_1 l5_3 l6_3 l8_3 l9_1 notest:23,background l0_3 l1_1 l2_1 l5_2 l6_0 l8_2 l9_1:24,background l6_2:25,background l1_0 l2_2 l3_2 l4_3 l6_2 l7_3 l9_1:26,\n",1,"1397353520415.2493"]
	],
	[
		"10 layers, 50 objects 2",
		["title 10 Layer 50 Object Test\nauthor Dennis Au\nhomepage www.puzzlescript.net\nbackground_color purple\n \n========\nOBJECTS\n========\n \nNoTest\nred\n00000\n0...0\n0...0\n0...0\n00000\n \nTarget\nwhite\n.....\n.....\n..0..\n.....\n.....\n \nPlayer\norange\n \nBackground\nblack\n \nL0_0\nlightred\n.....\n..0..\n.0.0.\n..0..\n.....\n \nL1_0\nred\n.....\n.0.0.\n..0..\n.0.0.\n.....\n \nL2_0\ndarkred\n..0..\n.....\n.....\n.....\n.....\n \nL3_0\nlightgreen\n.....\n.....\n.....\n.....\n..0..\n \nL4_0\ngreen\n.....\n.....\n0....\n.....\n.....\n \n \nL5_0\ndarkgreen\n.....\n.....\n....0\n.....\n.....\n \nL6_0\nlightblue\n00.00\n.....\n.....\n.....\n.....\n \nL7_0\nblue\n.....\n.....\n.....\n.....\n00.00\n \nL8_0\ndarkblue\n0....\n0....\n.....\n0....\n0....\n \nL9_0\nwhite\n....0\n....0\n.....\n....0\n....0\n \nL0_1\nlightred\n.....\n..0..\n.0.0.\n..0..\n.....\n \nL1_1\nred\n.....\n.0.0.\n..0..\n.0.0.\n.....\n \nL2_1\ndarkred\n..0..\n.....\n.....\n.....\n.....\n \n \nL3_1\nlightgreen\n.....\n.....\n.....\n.....\n..0..\n \nL4_1\ngreen\n.....\n.....\n0....\n.....\n.....\n \n \nL5_1\ndarkgreen\n.....\n.....\n....0\n.....\n.....\n \n \nL6_1\nlightblue\n00.00\n.....\n.....\n.....\n.....\n \nL7_1\nblue\n.....\n.....\n.....\n.....\n00.00\n \nL8_1\ndarkblue\n0....\n0....\n.....\n0....\n0....\n \nL9_1\nwhite\n....0\n....0\n.....\n....0\n....0\n \nL0_2\nlightred\n.....\n..0..\n.0.0.\n..0..\n.....\n \nL1_2\nred\n.....\n.0.0.\n..0..\n.0.0.\n.....\n \nL2_2\ndarkred\n..0..\n.....\n.....\n.....\n.....\n \nL3_2\nlightgreen\n.....\n.....\n.....\n.....\n..0..\n \nL4_2\ngreen\n.....\n.....\n0....\n.....\n.....\n \nL5_2\ndarkgreen\n.....\n.....\n....0\n.....\n.....\n \n \nL6_2\nlightblue\n00.00\n.....\n.....\n.....\n.....\n \nL7_2\nblue\n.....\n.....\n.....\n.....\n00.00\n \nL8_2\ndarkblue\n0....\n0....\n.....\n0....\n0....\n \nL9_2\nwhite\n....0\n....0\n.....\n....0\n....0\n \nL0_3\nlightred\n.....\n..0..\n.0.0.\n..0..\n.....\n \nL1_3\nred\n.....\n.0.0.\n..0..\n.0.0.\n.....\n \nL2_3\ndarkred\n..0..\n.....\n.....\n.....\n.....\n \nL3_3\nlightgreen\n.....\n.....\n.....\n.....\n..0..\n \nL4_3\ngreen\n.....\n.....\n0....\n.....\n.....\n \nL5_3\ndarkgreen\n.....\n.....\n....0\n.....\n.....\n \n \nL6_3\nlightblue\n00.00\n.....\n.....\n.....\n.....\n \nL7_3\nblue\n.....\n.....\n.....\n.....\n00.00\n \nL8_3\ndarkblue\n0....\n0....\n.....\n0....\n0....\n \nL9_3\nwhite\n....0\n....0\n.....\n....0\n....0\n \nL0_4\nlightred\n.....\n..0..\n.0.0.\n..0..\n.....\n \nL1_4\nred\n.....\n.0.0.\n..0..\n.0.0.\n.....\n \nL2_4\ndarkred\n..0..\n.....\n.....\n.....\n.....\n \nL3_4\nlightgreen\n.....\n.....\n.....\n.....\n..0..\n \nL4_4\ngreen\n.....\n.....\n0....\n.....\n.....\n \nL5_4\ndarkgreen\n.....\n.....\n....0\n.....\n.....\n \nL6_4\nlightblue\n00.00\n.....\n.....\n.....\n.....\n \nL7_4\nblue\n.....\n.....\n.....\n.....\n00.00\n \nL8_4\ndarkblue\n0....\n0....\n.....\n0....\n0....\n \nL9_4\nwhite\n....0\n....0\n.....\n....0\n....0\n \n=======\nLEGEND\n=======\n \n. = Background\n@ = Player\nO = NoTest\nX = Target\n \nL0 = L0_0 or L0_1 or L0_2 or L0_3 or L0_4\nL1 = L1_0 or L1_1 or L1_2 or L1_3 or L1_4\nL2 = L2_0 or L2_1 or L2_2 or L2_3 or L2_4\nL3 = L3_0 or L3_1 or L3_2 or L3_3 or L3_4\nL4 = L4_0 or L4_1 or L4_2 or L4_3 or L4_4\nL5 = L5_0 or L5_1 or L5_2 or L5_3 or L5_4\nL6 = L6_0 or L6_1 or L6_2 or L6_3 or L6_4\nL7 = L7_0 or L7_1 or L7_2 or L7_3 or L7_4\nL8 = L8_0 or L8_1 or L8_2 or L8_3 or L8_4\nL9 = L9_0 or L9_1 or L9_2 or L9_3 or L9_4\n \nLN = L0 or L1 or L2 or L3 or L4 or L5 or L6 or L7 or L8 or L9\nC = L9_4\n \n=======\nSOUNDS\n=======\n \nC Move 13123\nPlayer Move 123124\nPlayer Action 98636702\n \n================\nCOLLISIONLAYERS\n================\nBackground\nL0\nL1\nL2\nL3\nL4\nL5\nL6\nL7\nL8\nL9\nNoTest, Target\nPlayer\n \n======\nRULES\n======\n \n([> Player | No LN] -> [> Player | random LN])\n[> Player | LN] -> [> Player | > LN]\n[Action Player | LN] -> [Action Player|]\n \n \n==============\nWINCONDITIONS\n==============\n \nsome L0 on L1\nsome L1 on L2\nsome L2 on L3\nsome L3 on L4\nsome L4 on L5\nsome L5 on L6\nsome L7 on L8\nsome L8 on L9\nall Player on L0\nall Target on Player\nno NoTest on Player\n \n=======\nLEVELS\n=======\n....\n.@C.\n....\n \nX.........\n..........\n..@.......\n..........\n.........O\n \n......O\n.......\n...@...\nX......\n",[3,3],"background:0,0,0,0,\n0,0,0,0,\n0,0,background l9_4 player:1,0,\n",0,"1397387511600.6943"]
	],
	[
		"throttle movement",
		["title Microban\nauthor David Skinner\nhomepage www.sneezingtiger.com/sokoban/levels/microbanText.html\nthrottle_movement\nkey_repeat_interval 0.2\n\n(\nMy favourite set of sokoban levels - here're the first ten of the Microban set.\n\nI tried contacting this guy, but he seems to have vanished from the net. The levels are in lots of places online, so I'm just chancing my arm by including them. BUT BE WARNED.\n)\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN GREEN\n11111\n01111\n11101\n11111\n10111\n\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\nBROWN DARKBROWN\n00010\n11111\n01000\n11111\n00010\n\nPlayer\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate\nOrange Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\nendlevel 83744503\nstartgame 92244503\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\nmessage level 1 of 10\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\nmessage level 2 of 10\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n\nmessage level 3 of 10\n\n..####...\n###..####\n#.....*.#\n#.#..#*.#\n#.O.O#P.#\n#########\n\nmessage level 4 of 10\n\n########\n#......#\n#.O@@*P#\n#......#\n#####..#\n....####\n\nmessage level 5 of 10\n\n########\n#......#\n#..O*..#\n#...P..#\n#......#\n#......#\n########\n\nmessage level 6 of 10\n\n######.#####\n#....###...#\n#.**.....#P#\n#.*.#OOO...#\n#...########\n#####.......\n\nmessage level 7 of 10\n\n#######\n#.....#\n#.O*O.#\n#.*O*.#\n#.O*O.#\n#.*O*.#\n#..P..#\n#######\n\nmessage level 8 of 10\n\n..######\n..#.OOP#\n..#.**.#\n..##.###\n...#.#..\n...#.#..\n####.#..\n#....##.\n#.#...#.\n#...#.#.\n###...#.\n..#####.\n\nmessage level 9 of 10\n\n#####.\n#O..##\n#P**.#\n##...#\n.##..#\n..##O#\n...###\n\nmessage level 10 of 10\n\n......#####\n......#O..#\n......#O#.#\n#######O#.#\n#.P.*.*.*.#\n#.#.#.#.###\n#.......#..\n#########..\n\nmessage congratulations!\n\n",[0,1,1,1,1],"background wall:0,0,0,0,0,background:1,0,1,\n1,1,0,1,0,background player:2,background target:3,1,\n0,1,0,1,background crate target:4,1,0,1,\n0,1,4,1,0,0,0,1,\nbackground crate:5,1,1,0,0,1,1,1,\n1,0,0,0,0,0,0,0,\n",7,"1397558503752.5374"]
	],
	[
		"robotic arm",
		["run_rules_on_level_start\n\nnorepeat_action\n\n========\nOBJECTS\n========\n\nBackground .\nBlack\n\nPlayer P\nGreen\n\nR0_Up 0\ngrey lightgrey\n.111.\n10001\n10001\n10001\n.111.\n\nR0_Down\ngrey lightgrey\n.111.\n10001\n10001\n10001\n.111.\n\nR0_Left\ngrey lightgrey\n.111.\n10001\n10001\n10001\n.111.\n\nR0_Right\ngrey lightgrey\n.111.\n10001\n10001\n10001\n.111.\n\n\nR1_Up 1\ngrey lightgrey\n.111.\n10001\n10001\n10001\n.111.\n\nR1_Down\ngrey lightgrey\n.111.\n10001\n10001\n10001\n.111.\n\nR1_Left\ngrey lightgrey\n.111.\n10001\n10001\n10001\n.111.\n\nR1_Right\ngrey lightgrey\n.111.\n10001\n10001\n10001\n.111.\n\n\nR2_Up 2\ngrey lightgrey\n.111.\n10001\n10001\n10001\n.111.\n\nR2_Down\ngrey lightgrey\n.111.\n10001\n10001\n10001\n.111.\n\nR2_Left\ngrey lightgrey\n.111.\n10001\n10001\n10001\n.111.\n\nR2_Right\ngrey lightgrey\n.111.\n10001\n10001\n10001\n.111.\n\nR3 3\ngrey lightgrey\n.....\n..0..\n.0.0.\n..0..\n.....\n\nConnector_Up\ngrey lightgrey\n.101.\n.111.\n.....\n.....\n.....\n\nConnector_Down\ngrey lightgrey\n.....\n.....\n.....\n.111.\n.101.\n\nConnector_Left\ngrey lightgrey\n.....\n11...\n01...\n11...\n.....\n\nConnector_Right\ngrey lightgrey\n.....\n...11\n...10\n...11\n.....\n\nMoved \ntransparent\n\nParent\ntransparent\n\nGrandParent\ntransparent\n\nNewRot\ntransparent\n\nNewRot2\ntransparent\n\nforce \ntransparent\n\nexplosion\nred yellow\n.101.\n10101\n01010\n10101\n.101.\n\nexplosionb\nred yellow\n.101.\n10101\n01010\n10101\n.101.\n\nexplosion2\nyellow red\n.101.\n10101\n01010\n10101\n.101.\n\nWall #\ngrey darkgrey\n11111\n10001\n10001\n10001\n11111\n\nwater ,\nlightblue\n\nFruit F\nRed Green LightRed\n..1..\n.000.\n00020\n00000\n.000.\n\n\nFruitPicked G\nRed Green LightRed Yellow\n.313.\n30003\n00020\n00000\n30003\n\nEndPoint E\nLightBlue\n0.0.0\n.0.0.\n0.0.0\n.0.0.\n0.0.0\n\n=======\nLEGEND\n=======\nR0 = R0_up or R0_down or R0_left or R0_right\nR1 = R1_up or R1_down or R1_left or R1_right\nR2 = R2_up or R2_down or R2_left or R2_right\nRobotPiece = R0 or R1 or R2 or R3\n* = RobotPiece or Player\nconnector = connector_up or connector_down or connector_left or connector_right\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\nBackground\nwater\nEndPoint\nPlayer\nMoved\nFruit\nFRUITPICKED\nR0_up, R0_down, R0_left, R0_right\nR1_up, R1_down, R1_left, R1_right\nR2_up, R2_down, R2_left, R2_right\nconnector_up\nconnector_down\nconnector_left\nconnector_right\nR3\nparent\nGrandParent\nnewrot\nnewrot2\nforce\nwall\nexplosion, explosion2, explosionb\n\n======\nRULES\n======\n\n[ connector ] -> [ ]\n\n[ > player | water ] -> cancel\n\n[ > player | ] -> [ > player | > force ]\n\n(place movement arrows)\nup [ R0_Up | ] -> [ up R0_Up | up Parent ]\nup [ R1_Up | ] -> [ up R1_Up | up Parent ]\nup [ R2_Up | ] -> [ up R2_Up | up Parent ]\n\ndown [ R0_down | ] -> [ down R0_down | down Parent ]\ndown [ R1_down | ] -> [ down R1_down | down Parent ]\ndown [ R2_down | ] -> [ down R2_down | down Parent ]\n\nleft [ R0_left | ] -> [ left R0_left | left Parent ]\nleft [ R1_left | ] -> [ left R1_left | left Parent ]\nleft [ R2_left | ] -> [ left R2_left | left Parent ]\n\nright [ R0_right | ] -> [ right R0_right | right Parent ]\nright [ R1_right | ] -> [ right R1_right | right Parent ]\nright [ R2_right | ] -> [ right R2_right | right Parent ]\n\n\n( force propagation like this isn't very nice )\n( [ > force < parent | ] -> [ < parent | > force ] )\n\n[ R3 > force < parent ] [ > R0 ] [ v R1 ] [ R2 ] -> [ R3 < parent ] [ > R0 ] [ v R1 ] [ r2 > force ]\n[ R3 > force < parent ] [ > R0 ] [ ^ R1 ] [ R2 ] -> [ R3 < parent ] [ > R0 ] [ ^ R1 ] [ r2 > force ]\n\n[ > force < parent no R0] [R0]-> [ < parent ] [ > force R0 ]\n[ > force R3 perpendicular parent ] [ R2 < parent ] [ R0 ] -> [ R3 perpendicular parent ] [ R2 < parent ] [ > force R0 ]\n\n[ > force R2 perpendicular parent ] [ R1 < parent ] [ R0 ] -> [ R2 perpendicular parent ] [ R1 < parent ] [ > force R0 ]\n\n\n[ > force moving R0 | ] -> [ | moving R0]\n\n[ > force moving R1 perpendicular parent ] [ R0 ] -> [ moving R1 perpendicular parent ] [ > R0 ]\n[ > force moving R2 perpendicular parent ] [ R1 ] -> [ moving R2 perpendicular parent ] [ > R1 ]\n[ > force \t\tR3 perpendicular parent ] [ R2 ] -> [ R3 perpendicular parent ] [ > R2 ]\n\n\n(rebuild arm)\n\n(add new parents)\n\n[ > R1 ] [ R2 ] -> [ > R1 ] [ R2 > NewRot ] \n[ > R0 ] [ R1 ] [ R2 ] -> [ > R0 ] [ R1 > NewRot ] [ R2 > NewRot2 ]\n\n[ > Parent R1 ] [ R2 ] -> [ > Parent R1 ] [ > GrandParent R2 ]\n\n[ ^ Parent > NewRot > RobotPiece ] -> [ V RobotPiece ]\n[ ^ Parent > NewRot v RobotPiece ] -> [ < RobotPiece ]\n[ ^ Parent > NewRot < RobotPiece ] -> [ ^ RobotPiece ]\n[ ^ Parent > NewRot ^ RobotPiece ] -> [ > RobotPiece ]\n\n[ ^ Parent < NewRot > RobotPiece ] -> [ ^ RobotPiece ]\n[ ^ Parent < NewRot v RobotPiece ] -> [ > RobotPiece ]\n[ ^ Parent < NewRot < RobotPiece ] -> [ V RobotPiece ]\n[ ^ Parent < NewRot ^ RobotPiece ] -> [ < RobotPiece ]\n\n\n[ ^ GrandParent > NewRot2 > R2 ] -> [ V R2 ]\n[ ^ GrandParent > NewRot2 v R2 ] -> [ < R2 ]\n[ ^ GrandParent > NewRot2 < R2 ] -> [ ^ R2 ]\n[ ^ GrandParent > NewRot2 ^ R2 ] -> [ > R2 ]\n\n[ ^ GrandParent < NewRot2 > R2 ] -> [ ^ R2 ]\n[ ^ GrandParent < NewRot2 v R2 ] -> [ > R2 ]\n[ ^ GrandParent < NewRot2 < R2 ] -> [ V R2 ]\n[ ^ GrandParent < NewRot2 ^ R2 ] -> [ < R2 ]\n\n[ NewRot ] -> [ ]\n[ NewRot2 ] -> [ ]\n[ Parent ] -> [ ]\n[ GrandParent ] -> [ ]\n\n\n(change sprites)\n[ up R0 ] -> [ up R0_Up ]\n[ up R1 ] -> [ up R1_Up ]\n[ up R2 ] -> [ up R2_Up ]\n\n[ down R0 ] -> [ down R0_down ]\n[ down R1 ] -> [ down R1_down ]\n[ down R2 ] -> [ down R2_down ]\n\n[ left R0 ] -> [ left R0_left ]\n[ left R1 ] -> [ left R1_left ]\n[ left R2 ] -> [ left R2_left ]\n\n[ right R0 ] -> [ right R0_Right ]\n[ right R1 ] -> [ right R1_Right ]\n[ right R2 ] -> [ right R2_Right ]\n\n(work from the base up when placing)\nup [ up R0 | no R1 ] [ moving R1 ] -> [ up R0 | moving R1 ] [ ]\ndown [ down R0 | no R1 ] [ moving R1 ] -> [ down R0 | moving R1 ] [ ]\nleft [ left R0 | no R1 ] [ moving R1 ] -> [ left R0 | moving R1 ] [ ]\nright [ right R0 | no R1 ] [ moving R1 ] -> [ right R0 | moving R1 ] [ ]\n\nup [ up R1 | no R2 ] [ moving R2 ] -> [ up R1 | moving R2 ] [ ]\ndown [ down R1 | no R2 ] [ moving R2 ] -> [ down R1 | moving R2 ] [ ]\nleft [ left R1 | no R2 ] [ moving R2 ] -> [ left R1 | moving R2 ] [ ]\nright [ right R1 | no R2 ] [ moving R2 ] -> [ right R1 | moving R2 ] [ ]\n\n\nup [ up R2 | no R3 ] [ R3 ] -> [ up R2 | R3 ] [ ]\ndown [ down R2 | no R3 ] [ R3 ] -> [ down R2 | R3 ] [ ]\nleft [ left R2 | no R3 ] [ R3 ] -> [ left R2 | R3 ] [ ]\nright [ right R2 | no R3 ] [ R3 ] -> [ right R2 | R3 ] [ ]\n\n\n\n\nup [ up R2 | no R3 ] [ R3 ] -> [ R2_up | R3 ] [ ]\ndown [ down R2 | no R3 ] [ R3 ] -> [ R2_down | R3 ] [ ]\nleft [ left R2 | no R3 ] [ R3 ] -> [ R2_left | R3 ] [ ]\nright [ right R2 | no R3 ] [ R3 ] -> [ R2_right | R3 ] [ ]\n\n\n[ > RobotPiece no moved ] -> [ RobotPiece ]\n\n\nup [ R0_Up | ] -> [ R0_Up connector_up | connector_down ]\nup [ R1_Up | ] -> [ R1_Up connector_up | connector_down ]\nup [ R2_Up | ] -> [ R2_Up connector_up | connector_down ]\n\ndown [ R0_down | ] -> [ R0_down connector_down | connector_up ]\ndown [ R1_down | ] -> [ R1_down connector_down | connector_up ]\ndown [ R2_down | ] -> [ R2_down connector_down | connector_up ]\n\nleft [ R0_left | ] -> [ R0_left connector_left | connector_right ]\nleft [ R1_left | ] -> [ R1_left connector_left | connector_right ]\nleft [ R2_left | ] -> [ R2_left connector_left | connector_right ]\n\nright [ R0_right | ] -> [ R0_right connector_right | connector_left ]\nright [ R1_right | ] -> [ R1_right connector_right | connector_left ]\nright [ R2_right | ] -> [ R2_right connector_right | connector_left ]\n\n[RobotPiece Wall no explosion no explosion2 ] -> [ RobotPiece Wall explosion ]\n\n[ R0 R2 no explosion no explosion2] -> [ R0 R2 explosion ]\n[ R0 R3 no explosion no explosion2 ] -> [ R0 r3 explosion ]\n[ R1 R3 no explosion no explosion2 ] -> [ R1 R3 explosion ]\n\n[ explosion2 ] -> [ explosionb ] again\n[ explosion ] -> [ explosion2] again\n[ explosionb ] -> [explosion] again\n\n[ > player | wall ] -> cancel\n\n[FruitPicked ] [ R3 no FruitPicked ] -> [ ] [ R3 FruitPicked ]\n\n[ action player ] [ R3 Fruit no fruitpicked ] -> [ player ] [ R3 Fruitpicked]\n[ action player ] [ R3 fruitpicked no fruit ] -> [ player ] [ r3 fruit ]\n\n[ fruit endpoint ] -> [endpoint]\nlate [R0 water ] -> cancel\n\n==============\nWINCONDITIONS\n==============\n\nno fruit\nno fruitpicked\n\n=======\nLEVELS\n=======\n\n##############\n##############\n##############\n###........###\n###..3.....###\n###..2.,,,,###\n###.E1.,...###\n###..0.,FF.###\n###.P..,...###\n##############\n##############\n##############\n\n\n##############\n##############\n##############\n###........###\n###..3.....###\n###..2.,,,,###\n###.E1.,...###\n###..0.,FF.###\n###.P..,...###\n##############\n##############\n##############\n\n",[0,0,3,1,2,2,4,3,0,0,0,1,0,0,3,3,3,2,0,1,2,0,1,1,2,3,0,3,2,4,1,2,2,3,1,0,0,3,2,2,1,2,2,3,0,0,1,0,0,3,2,2,4,1,2,2,3,0,0,0,1,0,0,3,3,2,1,2,2,1,3,0,0,0,1,1,2,3,0,3,2],"background wall:0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,background force:1,background:2,1,\n1,2,2,0,0,0,0,0,background force wall:3,1,1,1,background connector_right endpoint force fruitpicked r3:4,2,\n2,3,0,0,0,0,3,1,2,1,background connector_left connector_right r2_left:5,2,1,3,\n0,0,0,0,3,1,background player:6,background connector_down r0_down:7,background connector_left connector_up r1_left:8,1,1,0,0,0,\n0,0,3,1,2,background water:9,background force water:10,9,10,0,0,0,0,0,\n0,1,2,9,2,2,2,0,0,0,0,0,0,2,\n2,9,2,2,2,0,0,0,0,0,0,2,2,9,\n2,2,2,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n",1,"1397688118644.9731"]
	],
	[
		"circuit game",
		["(\nlevel ideas\npush battery horizontally\nhave to assemble and then disassemble a circuit, in order to complete it\nadd a piece to a circut, then break the circuit from another point\nlevel that starts with a closed circuit\nlevel with very dangerous + block\n)\ntitle LED Challenge\nauthor Stephen Lavelle\nhomepage www.increpare.com\n\nrun_rules_on_level_start\ncolor_palette famicom\n\n\n========\nOBJECTS\n========\n\nBackground .\ndarkgreen green\n00000\n00000\n00100\n00000\n00000\n\n\nPlayer\nBlack brown grey Blue\n.111.\n.111.\n22222\n13331\n.3.3.\n\n\nPlayer_Dead\ndarkgrey darkgrey darkgrey darkgrey\n.111.\n.111.\n22222\n.333.\n.3.3.\n\nWall #\nblack\n\nRed_Off R\nblack DarkRed\n.....\n..1..\n.101.\n.101.\n.101.\n\nRed_On T\npink red\n.....\n..1..\n.101.\n.101.\n.101.\n\n\nGreen_Off G\nblack Green\n.....\n..1..\n.101.\n.101.\n.101.\n\nGreen_On H\nGreen LightGreen\n.....\n..1..\n.101.\n.101.\n.101.\n\n\nBlue_Off B\nblack DarkBlue\n.....\n..1..\n.101.\n.101.\n.101.\n\nBlue_On N\nBlue LightBlue\n.....\n..1..\n.101.\n.101.\n.101.\n\nBattery_H C\nGrey lightgrey\n.000.\n.010.\n01110\n.010.\n.000.\n\nBattery_V O\nGrey lightgrey\n..0..\n00100\n01110\n00100\n..0..\n\n\ncable_h q\ngrey\n.....\n.....\n00000\n.....\n.....\n\ncable_v e\ngrey\n..0..\n..0..\n..0..\n..0..\n..0..\n\ncable_ul w\ngrey\n..0..\n..0..\n000..\n.....\n.....\n\ncable_ur d\ngrey\n..0..\n..0..\n..000\n.....\n.....\n\ncable_dr s\ngrey\n.....\n.....\n..000\n..0..\n..0..\n\ncable_dl a\ngrey\n.....\n.....\n000..\n..0..\n..0..\n\n\ncable_omni z\ngrey\n..0..\n..0..\n00000\n..0..\n..0..\n\ncable_dlr i\ngrey\n.....\n.....\n00000\n..0..\n..0..\n\ncable_ulr k\ngrey\n..0..\n..0..\n00000\n.....\n.....\n\ncable_udr j\ngrey\n..0..\n..0..\n..000\n..0..\n..0..\n\ncable_udl l\ngrey\n..0..\n..0..\n000..\n..0..\n..0..\n\n\nlight\nblack\n\nlight_up\nyellow\n.000.\n.000.\n.000.\n.....\n.....\n\nlight_down\nyellow\n.....\n.....\n.000.\n.000.\n.000.\n\nlight_Left\nyellow\n.....\n000..\n000..\n000..\n.....\n\nlight_right\nyellow\n.....\n..000\n..000\n..000\n.....\n\n=======\nLEGEND\n=======\n\nP = Player\nUnlit = Blue_Off or Green_Off or Red_Off\nLit = Blue_On or Green_On or Red_On\nCable = Cable_h or Cable_v or Cable_dr or Cable_dl or Cable_ul or Cable_ur or Cable_UL or Cable_UR or Cable_UDR or Cable_ULR or Cable_UDL or Cable_DLR or Cable_Omni\nBattery = Battery_H or Battery_V\nItem = Unlit or Lit or Battery or Cable\nCable_Up = Cable_V or Cable_UL or Cable_UR or Battery_V or Cable_UDR or Cable_ULR or Cable_UDL or Cable_Omni or Player\nCable_Down = Cable_V or Cable_DL or Cable_DR or Battery_V or Cable_UDR or Cable_UDL or Cable_DLR or Cable_Omni or Player\nCable_Left = Cable_H or Cable_UL or Cable_DL or Battery_H or Cable_ULR or Cable_UDL or Cable_DLR or Cable_Omni or Player\nCable_Right = Cable_H or Cable_UR or Cable_DR or Battery_H or Cable_UDR or Cable_ULR or Cable_DLR or Cable_Omni or Player\nLightEffect = Light_Up or Light_Down or Light_Left or Light_Right\nObject = Player or Item\nPlayer_Dying = Player and Light\n\n=======\nSOUNDS\n=======\n\nEndLevel 39731502\nEndGame 20540505\nPlayer Move 6330907\nPlayer_Dead Create 44233902\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nLight\nLight_Up\nLight_Down\nLight_Left\nLight_Right\nPlayer, Player_Dead, Wall, Item\n\n======\nRULES\n======\n\n(init stage)\n[ Light ] -> [ ]\n[ LightEffect no Player] -> [ ]\n[ Red_On ] -> [ Red_Off ]\n[ Green_On ] -> [ Green_Off ]\n[ Blue_On ] -> [ Blue_Off ]\n\n(movement)\n[ > Object | Object ] -> [ > Object | > Object ]\n\n(do circuits)\nstartLoop\nlate [ Battery ] -> [ Light Battery ]\n\nlate left [ Player | Light_Right ] -> [ Light Player | Light_Right ]\nlate right [ Player | Light_Left ] -> [ Light Player | Light_Left ]\nlate up [ Player | Light_Down ] -> [ Light Player | Light_Down ]\nlate down [ Player | Light_Up ] -> [ Light Player | Light_Up ]\n\nlate up [ Player_Dead | Light_Down ] -> [ Light Player_Dead | Light_Down ]\nlate down [ Player_Dead | Light_up ] -> [ Light Player_Dead | Light_up ]\n\nlate left [ Cable_Left | Light_Right ] -> [ Light Cable_Left | Light_Right ]\nlate right [ Cable_Right | Light_Left ] -> [ Light Cable_Right | Light_Left ]\nlate up [ Cable_Up | Light_Down ] -> [ Light Cable_Up | Light_Down ]\nlate down [ Cable_Down | Light_Up ] -> [ Light Cable_Down | Light_Up ]\n\nlate down [ Red_Off | Light_Up ] -> [ Red_On | Light_Up ]\nlate down [ Green_Off | Light_Up ] -> [ Green_On | Light_Up ]\nlate down [ Blue_Off | Light_Up ] -> [ Blue_On | Light_Up ]\n\nlate [ Light Cable_Up ] -> [ Light Light_Up Cable_Up ]\nlate [ Light Cable_Down ] -> [ Light Light_Down Cable_Down ]\nlate [ Light Cable_Left ] -> [ Light Light_Left Cable_Left ]\nlate [ Light Cable_Right ] -> [ Light Light_Right Cable_Right ]\nendLoop\n\nlate [ Player Light ] -> again\nlate [ Player_Dead Light ] -> again\nlate [ Player LightEffect ] -> [ Player_Dead LightEffect ] again\nlate [ Player_Dead Light ] -> [ Player_Dead ]\n\n==============\nWINCONDITIONS\n==============\n\nNo Unlit\nNo Player_Dead\n\n=======\nLEVELS\n=======\n\nmessage Level 1 of 4\n\n......\n.r.g..\n..o.p.\n.w.d..\n......\n\nmessage Level 2 of 4\n\n.....##.....\n.....##.w.d.\n..c.........\n...p....r.g.\n.....##.....\n\nmessage Level 3 of 4\n\n.......\n..rgb..\n..wkd..\n...o...\n.....p.\n.......\n\nmessage Level 4 of 4\n\n...........\n...ccccc...\n.d.crcgc.w.\n...ccccc...\n..........p\n\n(\nmessage Level 5 of 3\n\n.......\n.bgrgb.\nrdzczwr\ndqw.dqw\n.......\n)\n\nmessage Congratulations\n",[0,0,0,1,2,2,3,2,2,0,0,1,3,3,2,2,1,3,0,0,1,0,0,0,1,1,1,1,1,2,3,3,0,3,3,3,2,2,2,3,2,1,2,1,1,1,1,0,0,0,0,0,3,2,2,3,1,"undo",0,3,0,3,3,3,2,1,1,0,1,1,2,1,2,3,1,0,3,3,0,3,2,2],"background:0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,\n0,background cable_ul:1,0,0,0,0,background red_on:2,\nbackground battery_v light light_down light_up:3,background cable_ur light light_right light_up:4,0,0,0,background player:5,background green_on:6,\nbackground cable_ulr light light_left light_right light_up:7,background blue_off:8,0,0,0,0,0,\n0,0,0,0,0,0,0,\n",5,"1397688202960.5383"]
	],
	[
		"multiple patterns not checking for modifications",
		["title Simple Block Pushing Game\nauthor Stephen Lavelle\nhomepage www.puzzlescript.net\nnorepeat_action\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN GREEN\n11111\n01111\n11101\n11111\n10111\n\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\nBROWN DARKBROWN\n00010\n11111\n01000\n11111\n00010\n\nPlayer\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate\nOrange Yellow\n00000\n0...0\n0...0\n0...0\n00000\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\n[ action Player ] [ Crate ] -> [ Player ] [ ]\n\n==============\nWINCONDITIONS\n==============\n\n=======\nLEVELS\n=======\n\n\n**P\n\n",[4],"background:0,background crate:1,background player:2,\n",0,"1397736831873.7236"]
	],
	[
		"2048",
		["( PuzzleScript port of \"2048\"\n\n Original at:\n http://gabrielecirulli.github.io/2048/ )\n\ntitle 2048\nnoundo\n\n========\nOBJECTS\n========\n\nBackground\nlightblue\n\n1\nwhite red \n00000\n00000\n00100\n00000\n00000\n\n2\nwhite green\n00000\n00100\n00000\n00100\n00000\n\n3\nwhite darkblue\n00000\n01000\n00100\n00010\n00000\n\n4\nwhite yellow\n00000\n01010\n00000\n01010\n00000\n\n5\nwhite brown\n00000\n01010\n00100\n01010\n00000\n\n6\nwhite purple\n00000\n01010\n01010\n01010\n00000\n\n7\nwhite darkred\n00000\n01010\n01110\n01010\n00000\n\n8\nwhite orange\n00000\n01110\n01010\n01110\n00000\n\n9\nwhite blue\n00110\n00100\n01110\n00100\n01100\n\nA\nwhite lightgreen\n01000\n01110\n01010\n01110\n00010\n\nB\nwhite pink\n10001\n01010\n10101\n01010\n10001\n\n=======\nLEGEND\n=======\n\n. = Background\nPlayer = 1 or 2 or 3 or 4 or 5 or 6 or 7 or 8 or 9 or A or B\n\n=======\nSOUNDS\n=======\n\n(All sounds are annoying, so I'm not using them.)\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer\n\n======\nRULES\n======\n\n(Disable the \"action\" button. You must make a move!)\n[ Action Player ] -> CANCEL\n\n(First, shove boxes in the direction of movement, as far as they will go.)\n[ > Player | No Player ] -> [ | > Player ]\n\n(Combine equal-valued boxes adjacent in the direction of movement.)\n\n[ > A | > A ] -> [ | > B ]\n[ > 9 | > 9 ] -> [ | > A ]\n[ > 8 | > 8 ] -> [ | > 9 ]\n[ > 7 | > 7 ] -> [ | > 8 ]\n[ > 6 | > 6 ] -> [ | > 7 ]\n[ > 5 | > 5 ] -> [ | > 6 ]\n[ > 4 | > 4 ] -> [ | > 5 ]\n[ > 3 | > 3 ] -> [ | > 4 ]\n[ > 2 | > 2 ] -> [ | > 3 ]\n[ > 1 | > 1 ] -> [ | > 2 ]\n\n\n(Note that the above rule might leave a gap when two combinations occur\n on the same line, so apply the movement rule again to close the gap.)\n[ > Player | No Player ] -> [ | > Player ]\n\n(Finally, spawn a new box at a random empty stop:)\nrandom [ No Player ] -> [ 1 ]\n\n==============\nWINCONDITIONS\n==============\n\nSome B\n\n=======\nLEVELS\n=======\n\n....\n2...\n...2\n....\n\nMESSAGE Congratulations, you won!!\n\n",[1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1],"6 background:0,5 background:1,3 background:2,1 background:3,\n1,2,2 background:4,background:5,\n4 background:6,3,3,5,\n4,5,5,5,\n",0,"1397902282955.9907"]
	],
	[
		"bug #186 - 'no property' on the RHS should clear objects",
		["title Simple Block Pushing Game\nauthor Stephen Lavelle\nhomepage www.puzzlescript.net\n \n========\nOBJECTS\n========\n \nBackground\nLIGHTGREEN GREEN\n11111\n01111\n11101\n11111\n10111\n \n \nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n \nWall\nBROWN DARKBROWN\n00010\n11111\n01000\n11111\n00010\n \nPlayer\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n \nCrate\nOrange Yellow\n00000\n0...0\n0...0\n0...0\n00000\n \n \n=======\nLEGEND\n=======\n \n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\nob = crate or wall\n \n \n=======\nSOUNDS\n=======\n \nCrate MOVE 36772507\n \n================\nCOLLISIONLAYERS\n================\n \nBackground\nTarget\nPlayer, Wall, Crate\n \n======\nRULES\n======\n \n[ > Player | ] -> [ > Player | no ob ]\n \n==============\nWINCONDITIONS\n==============\n \n \n=======\nLEVELS\n=======\n \n \n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n \n \n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n",[1,1,2,2,3,3,2,2],"background wall:0,0,0,background:1,1,1,\n0,0,1,1,background target:2,1,\n1,0,0,2,1,1,\n1,1,background player:3,0,0,0,\n1,background crate:4,0,0,1,1,\n0,1,1,0,1,1,\n1,0,0,0,0,1,\n",0,"1398621035085.1448"]
	],
	[
		"Make synonyms of properties work. #215",
		["========\nOBJECTS\n========\n\nMoveUp\nwhite\n\nBackground\nblack\n\nHarpoonU\ngrey\n\nHarpoonD\nwhite\n\nPlayer\nyellow\n\n=======\nLEGEND\n=======\n\n. = Background\n\n(this double indirection seems to be the problem?)\nHarpoon = HarpoonU or HarpoonD \nMoveable = Harpoon\n\nP = Player\nU = HarpoonU\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nMoveUp\nBackground\nPlayer Harpoon\n\n======\nRULES\n======\n\n[ MoveUp Moveable ] -> [ up MoveUp up Moveable ]\n\n==============\nWINCONDITIONS\n==============\n\n=======\nLEVELS\n=======\n\nPU\n\n",[3],"background player:0,background harpoonu:1,\n",0,"1409382951213.9463"]
	],
	[
		"Make synonyms of properties work. #230",
		["title BunnySim\nauthor Alan Hazelden\nhomepage www.draknek.org\n\n(verbose_logging)\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN GREEN\n11111\n01111\n11101\n11111\n10111\n\nAdultBunny\nWhite Grey\n.0.0.\n.101.\n.000.\n.000.\n00.00\n\nBabyBunny\nWhite Grey\n.....\n.0.0.\n.101.\n.000.\n00.00\n\nWall\nBROWN DARKBROWN\n00010\n11111\n01000\n11111\n00010\n\nPlayer\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n\" = AdultBunny\n\nBunny = AdultBunny or BabyBunny\n\nAnimal = Bunny\n\nSolid = Animal or Player or Wall or Bunny\n\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nSolid, Wall\n\n\n======\nRULES\n======\n\n\n==============\nWINCONDITIONS\n==============\n\n\n=======\nLEVELS\n=======\n\n\n####......\n#..#######\n#\"...\"...#\n#......p.#\n#........#\n#..#######\n####......\n",[1,1,1],"background wall:0,0,0,0,0,0,0,0,background:1,adultbunny background:2,\n1,1,1,0,0,1,1,1,1,1,\n0,0,0,1,1,1,0,0,1,0,\n1,background player:3,1,0,1,1,0,2,1,1,\n0,1,1,0,1,1,1,0,1,1,\n0,1,1,1,0,1,1,0,1,1,\n1,0,1,1,0,0,0,0,0,1,\n",0,"1409383029666.0354"]
	],
	[
		"Make synonyms of properties work. #241",
		["title Bloxyd\nauthor James Noeckel\nagain_interval 0.3\n(youtube 43UUex_YWxs)\n\n========\nOBJECTS\n========\n\nPushing\nred\n.0.0.\n0...0\n.....\n0...0\n.0.0.\n\nUL\n#506060 #00F0FF #a0dddd #405252 #304040\n30200\n43230\n11230\n43330\n44443\n\nUR\n#506060 #00F0FF #a0dddd #405252 #304040\n30200\n43230\n43111\n43330\n44443\n\nDR\n#506060 #00F0FF #a0dddd #405252 #304040\n30000\n43330\n43111\n43230\n44243\n\nDL\n#506060 #00F0FF #a0dddd #405252 #304040\n30000\n43330\n11230\n43230\n44243\n\nLRU\n#506060 #00F0FF #a0dddd #405252 #304040\n30200\n43230\n11111\n43330\n44443\n\nLRD\n#506060 #00F0FF #a0dddd #405252 #304040\n30000\n43330\n11111\n43230\n44243\n\nUDL\n#506060 #00F0FF #a0dddd #405252 #304040\n30200\n43230\n11230\n43230\n44243\n\nUDR\n#506060 #00F0FF #a0dddd #405252 #304040\n30200\n43230\n43111\n43230\n44243\n\nUD\n#506060 #00F0FF #a0dddd #405252 #304040\n30200\n43230\n43230\n43230\n44243\n\nLR\n#506060 #00F0FF #a0dddd #405252 #304040\n30000\n43330\n11111\n43330\n44443\n\nU\n#506060 #00F0FF #a0dddd #405252 #304040\n30200\n43230\n43130\n43330\n44443\n\nD\n#506060 #00F0FF #a0dddd #405252 #304040\n30000\n43330\n43130\n43230\n44243\n\nL\n#506060 #00F0FF #a0dddd #405252 #304040\n30000\n43330\n11230\n43330\n44443\n\nR\n#506060 #00F0FF #a0dddd #405252 #304040\n30000\n43330\n43211\n43330\n44443\n\nX\n#506060 #00F0FF #a0dddd #405252 #304040\n30200\n43230\n11111\n43230\n44243\n\nPlayer\n#1a1a1a gray black #2a2a2a\n.220.\n22010\n02002\n30222\n.302.\n\nBackground\n#afafaf #808080 gray\n21111\n02221\n02221\n02221\n00002\n\nWall\n#202020 #4a4a4a #606060 #3a3a3a\n13331\n01112\n01112\n03332\n03332\n\nBomb\n#1a1a1a #606060 black #2a2a2a white\n..44.\n..00.\n.2010\n.3200\n..32.\n\nExplosion1\nblack\n.....\n.....\n.....\n.....\n.....\n\nExplosion2\norange yellow\n0.0.0\n.010.\n01010\n.010.\n0.0.0\n\nExit\nblue #01317f #63a3ff #ccccff\n20003\n12030\n11300\n10120\n01112\n\nInv\n#006600\n00.0.\n.....\n.....\n.....\n.0.00\n\nCrack\n#afafaf #808080 gray black\n31111\n03233\n02321\n02321\n33032\n\nPit\nblack\n\nDynamite\n#F06060 yellow #ae2343\n.11..\n..02.\n..02.\n..02.\n..22.\n\nwood\n#7f4822 #5f3812 #af4822 #ff7872 #402020\n02223\n10.02\n1...2\n40.02\n44110\n\ngraybomb\n#6a6a6a #a0a0a0 #303030 #2a2a2a white\n..44.\n..00.\n.2010\n.3200\n..32.\n\nkey\nwhite\n..0..\n.0.0.\n..0..\n..0..\n..00.\n\nmetal\n#415174 #82b0d4 white #314162 #606060 black #2a2a2a\n01122\n35541\n36551\n36651\n33330\n\ndoor\n#303030 #8b8bab #b0b0b0 #4b4b5b #202020\n11111\n11411\n11411\n33033\n33333\n\n=======\nLEGEND\n=======\n. = Background\n$ = exit\n@ = inv\n# = Wall\n& = wood\n* = wood and bomb\n% = wood and dynamite\nc = crack\nz = UR\n7 = DL\nJ = UL\nF = DR\nT = LRD\nw = LRU\nk = UDR\n3 = UDL\n| = UD\n- = LR\nP = Player\nb = bomb\n\\ = key\nI = dynamite\no = dynamite and crack\n' = graybomb\n; = graybomb and crack\n6 = pit\nm = metal\ny = door\n\nSolid = Wall\nconnector = ul or ur or dr or dl or lru or lrd or udl or udr or u or l or d or r or ud or lr or x\nUU = LRU or UDR or UDL or UL or UR or UD or U or x\nDD = UDR or UDL or LRD or DL or DR or UD or D or x\nLL = LRU or UDL or LRD or UL or DL or LR or L or x\nRR = LRU or UDR or LRD or UR or DR or LR or R or x\nitem = bomb or dynamite or key\nexplodable = bomb or dynamite or graybomb or metal\nitem2 = item\nbreakable = connector or player or wood\n\n=======\nSOUNDS\n=======\n\nSFX1 65276106\nSFX2 82624702\nSFX3 5643508\nSFX4 22079708\n(SFX5 21487508)\nSFX5 19328304\nSFX6 90411302\nSFX7 66650507\nSFX8 61607902\nSFX9 18837707\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\ncrack, pit\nitem, graybomb\nPlayer, Wall, connector, exit, inv, wood, door, metal\nexplosion1, explosion2, pushing\n\n======\nRULES\n======\n\n(this rule crashes it : )\nlate left [ Player item no pushing ] [ inv item2 | inv no item ] -> [ Player ] [ inv item2 | inv item ] sfx9\n\n==============\nWINCONDITIONS\n==============\n\n=======\nLEVELS\n=======\n\n#########\n#.......#\n#.......#\n#p.....$#\n#.......#\n#.......#\n#########\n#@@@@@@@#\n#########\n",[3,3,3,3,3],"background wall:0,0,0,0,0,0,0,0,0,\n0,background:1,1,1,1,1,0,background inv:2,0,\n0,1,1,1,1,1,0,2,0,\n0,1,1,1,1,1,0,2,0,\n0,1,1,1,1,1,0,2,0,\n0,1,1,1,1,1,0,2,0,\n0,1,1,background player:3,1,1,0,2,0,\n0,1,1,background exit:4,1,1,0,2,0,\n0,0,0,0,0,0,0,0,0,\n",0,"1409383068970.6855"]
	],
	[		
		"Make synonyms of properties work. #243",
		["========\nOBJECTS\n========\n\nBackground\nBlack\n\nPlayer1\nBlack\n\nPlayer2\nBlack\n\n=======\nLEGEND\n=======\n\nAnyPlayer = Player1 or Player2\n\n((works:)\nPlayer = Player1 or Player2\n)\n\n(fails:)\nPlayer = AnyPlayer\n\n. = Background\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nAnyPlayer\n\n======\nRULES\n======\n\n[ Player ] -> [ ]\n\n==============\nWINCONDITIONS\n==============\n\n=======\nLEVELS\n=======\n\n.\n",[3],"background:0,\n",0,"1409383122377.9321"]
	],
	[
		"Make synonyms of properties work. #245",
		["title Space Game\nauthor Isaac D\nhomepage www.puzzlescript.net\ndebug\nrun_rules_on_level_start\nyoutube Uj8MsbgpjaQ\nrealtime_interval 0.7\n \n========\nOBJECTS\n========\n \nPlatform\n#C4AEAD\n00000\n00000\n00000\n00000\n00000\n \nPlayer\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n \nRedCrate\nRed Yellow\n00000\n0...0\n0...0\n0...0\n00000\n \nBlueCrate\nBlue Yellow\n00000\n0...0\n0...0\n0...0\n00000\n \nGhostCrate\nTransparent\n \nCatL\n#C4AEAD White\n.1...\n.....\n000..\n.....\n.....\n \nCatU\n#C4AEAD White\n..0..\n..0..\n..0..\n.....\n.1...\n \nCatD\n#C4AEAD White\n.....\n.....\n..0..\n..0.1\n..0..\n \nCatR\n#C4AEAD White\n....1\n.....\n..000\n.....\n.....\n \nCatWalk\nTransparent\n \nHoles\nBlack\n \nHole1\nBlack White\n01000\n00001\n00000\n10000\n00000\n \nHole2\nBlack White\n00000\n00001\n00000\n00010\n10000\n \nHunterL\nRed\n.....\n.0...\n0000.\n.0...\n.....\n \nHunterR\nRed\n.....\n...0.\n.0000\n...0.\n.....\n \n \n \n=======\nLEGEND\n=======\n \nHole = Hole1 or Hole2\nBackground = Platform\nbackgroundTrue = Platform or CatWalk\nP = Player\nR = RedCrate and Platform\nB = BlueCrate and Platform\n. = Platform\nQ = Player and Catwalk\nCrate = BlueCrate or RedCrate\nWall= Hole or Holes\n#= Holes\n+=CatWalk\nH = HunterR\nF = HunterR and Platform\nHunter = HunterR or HunterL\nEnim= Hunter\nCharacter= Hunter or Player\n \n=======\nSOUNDS\n=======\n \nCrate MOVE 36772507\n \n================\nCOLLISIONLAYERS\n================\n \nBackground\nPlatform, Catwalk\nCatR\nCatL\nCatU\nCatD\nGhostCrate\nPlayer, RedCrate, BlueCrate, Holes, Hole, HunterR, HunterL\n \n======\nRULES\n======\n \n[ HunterL ] [ Stationary Player ] -> [ Left HunterL ] [ Stationary Player ]\n[ > HunterL | Wall ] [ Stationary Player ] -> [ < HunterR | Wall ] [ Stationary Player ]\n[ HunterR ] [ Stationary Player ] -> [ Right HunterR ] [ Stationary Player ]\n[ > HunterR | Wall ] [ Stationary Player ] -> [ < HunterL | Wall ] [ Stationary Player ]\n[ Hunter | ... | Player ] [ Stationary Player ] -> [ > Hunter | ... | Player ] [ Stationary Player ]\n[ > Hunter | Player ] [ Stationary Player ] -> restart\n[ > Hunter | Crate ] -> [ > Hunter | > Crate ]\n \n \n[ > Character | Crate ] -> [ > Character | > Crate ]\n[ Action Player | BlueCrate ] -> [ Action Player |GhostCrate ]\n[ Action Player | RedCrate ] -> [ Action Player | ]\n[ > Crate | CatWalk ] -> [ Crate | CatWalk ]\nUp [ Catwalk | BackgroundTrue no Wall] -> [CatU Catwalk |backgroundTrue no Wall]\nDown [ Catwalk | BackgroundTrue no Wall] -> [CatD Catwalk |backgroundTrue no Wall]\nLeft[ Catwalk | BackgroundTrue no Wall] -> [CatL Catwalk |backgroundTrue no Wall]\nRight [ Catwalk | BackgroundTrue no Wall] -> [CatR Catwalk |backgroundTrue no Wall]\n[ Holes ] -> [ Random Hole ]\n \n==============\nWINCONDITIONS\n==============\n \nNo GhostCrate\nNo RedCrate\n \n=======\nLEVELS\n=======\n \n \n \n#####\n#.P+#\n#.B+#\n#R++#\n#####\n \n#####\n#rhb#\n#...#\n#.p.#\n#####\n \n............#\n............#\n...b........#\n...........r#\n.bhb........#\np...........#\n............#\n",["tick","tick","tick","tick","tick"],"platform:0,0,0,0,0,platform player:1,0,0,0,0,0,bluecrate platform:2,0,\n0,0,0,0,0,0,0,0,0,0,2,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,hunterr platform:3,0,0,0,0,\n0,0,2,0,0,0,0,0,0,0,0,0,0,\n0,0,platform redcrate:4,0,0,0,hole1 platform:5,5,5,hole2 platform:6,5,5,5,\n",2,"1409383166222.726"]
	],
	[
		"Failed rigid groups shouldn't block late rule execution. #254",
		["title EYE EYE EYE\nauthor Stephen Lavelle\nhomepage www.puzzlescript.net\n\ndebug\nverbose_logging\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN GREEN\n11111\n01111\n11101\n11111\n10111\n\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\nBROWN DARKBROWN\n00010\n11111\n01000\n11111\n00010\n\nPlayer\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nEyeBall\nWhite Blue Red\n.000.\n00100\n01110\n20102\n.202.\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\nO = EyeBall\n\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, EyeBall\n\n======\nRULES\n======\n\nrigid up [ Eyeball ] -> [ up eyeball ]\n\nlate [ Eyeball ] -> []\n\n==============\nWINCONDITIONS\n==============\n\n=======\nLEVELS\n=======\n\n#########\n#....O..#\n#.P.....#\n#.......#\n#.......#\n#.......#\n#########\n\n",[3,3],"background wall:0,0,0,0,0,0,0,0,background:1,\n1,1,1,1,0,0,1,1,1,\n1,1,0,0,1,1,1,1,1,\n0,0,1,background player:2,1,1,1,0,0,\n1,1,1,1,1,0,0,1,1,\n1,1,1,0,0,1,1,1,1,\n1,0,0,0,0,0,0,0,0,\n",0,"1409552619480.2417"]
	],
	[
		"Rigidbody fix bug #246",
		["title Puzzles\nauthor Increpare - Ported by Xavion\nhomepage www.puzzlescript.net\n\nbackground_color #FE9C49\ntext_color darkblue\n\ncolor_palette mastersystem\n\nrun_rules_on_level_start\n\ndebug\nverbose_logging\n\n(This game is a port of the Puzzles game found at http://ded.increpare.com/~locus/puzzles/ by Xavion. This is done to test whether it's really impossible to make in Puzzlescript. My first attempt went missing a long time ago but the higher actor/layer limits should help this time.\n)\n\n========\nOBJECTS\n========\n\nABackground\n#FE9C49\n\nIBackground\n#DCDCDC\n\nAPlayer\n#EF5135\n.....\n.000.\n.000.\n.000.\n.....\n\nIPlayer\n#A0A0A0\n.....\n.000.\n.000.\n.000.\n.....\n\nAOBlock\n#E50303\n.....\n.000.\n.000.\n.000.\n.....\n\nIOBlock\n#323232\n.....\n.000.\n.000.\n.000.\n.....\n\nALBlock\n#E50303\n.....\n.0000\n.0000\n.0000\n.....\n\nILBlock\n#323232\n.....\n.0000\n.0000\n.0000\n.....\n\nARBlock\n#E50303\n.....\n0000.\n0000.\n0000.\n.....\n\nIRBlock\n#323232\n.....\n0000.\n0000.\n0000.\n.....\n\n(AHBlock\n#E50303\n.....\n00000\n00000\n00000\n.....\n\nIHBlock\n#323232\n.....\n00000\n00000\n00000\n.....\n\nAVBlock\n#E50303\n.000.\n.000.\n.000.\n.000.\n.000.\n\nIVBlock\n#323232\n.000.\n.000.\n.000.\n.000.\n.000.)\n\nAUBlock\n#E50303\n.....\n.000.\n.000.\n.000.\n.000.\n\nIUBlock\n#323232\n.....\n.000.\n.000.\n.000.\n.000.\n\nADBlock\n#E50303\n.000.\n.000.\n.000.\n.000.\n.....\n\nIDBlock\n#323232\n.000.\n.000.\n.000.\n.000.\n.....\n\nAProjector\n#E60504 #FFFFFF\n.010.\n00000\n10001\n00000\n.010.\n\nIProjector\n#646464 #000000\n.010.\n00000\n10001\n00000\n.010.\n\nALBeam\n#FFFFFF\n.....\n.....\n00000\n.....\n.....\n\nILBeam\n#000000\n.....\n.....\n00000\n.....\n.....\n\nARBeam\n#FFFFFF\n.....\n.....\n00000\n.....\n.....\n\nIRBeam\n#000000\n.....\n.....\n00000\n.....\n.....\n\nAUBeam\n#FFFFFF\n..0..\n..0..\n..0..\n..0..\n..0..\n\nIUBeam\n#000000\n..0..\n..0..\n..0..\n..0..\n..0..\n\nADBeam\n#FFFFFF\n..0..\n..0..\n..0..\n..0..\n..0..\n\nIDBeam\n#000000\n..0..\n..0..\n..0..\n..0..\n..0..\n\nAGoal\n#EF5135\n.....\n.000.\n.0.0.\n.000.\n.....\n\nIGoal\nTransparent\n\nAStart\nTransparent\n\nIStart\n#A0A0A0\n.....\n.000.\n.0.0.\n.000.\n.....\n\nAWall\n#0668AA\n\nIWall\n#646464\n\n\nAMarker\nDarkBlue\n0....\n.....\n.....\n.....\n.....\n\nIMarker\nDarkBlue\n.0...\n.....\n.....\n.....\n.....\n\nTMarker\nDarkBlue\n..0..\n.....\n.....\n.....\n.....\n\nMMarker\nDarkBlue\n...0.\n.....\n.....\n.....\n.....\n\n=======\nLEGEND\n=======\n\nBackground = ABackground or IBackground\nPlayer = APlayer or IPlayer\nProjector = AProjector or IProjector\nWall = AWall or IWall\nGoal = AGoal or IGoal\nStart = AStart or IStart\nMarker = AMarker or IMarker\nRBeam = ARBeam or IRBeam\nLBeam = ALBeam or ILBeam\nUBeam = AUBeam or IUBeam\nDBeam = ADBeam or IDBeam\nLBlock = ALBlock or ILBlock\nRBlock = ARBlock or IRBlock\n(HBlock = AHBlock or IHBlock)\nUBlock = AUBlock or IUBlock\nDBlock = ADBlock or IDBlock\n(VBlock = AVBlock or IVBlock)\n\nHBeam = LBeam or RBeam\nVBeam = UBeam or DBeam\nLPusher = LBeam or Projector\nRPusher = RBeam or Projector\nUPusher = UBeam or Projector\nDPusher = DBeam or Projector\nBeam = HBeam or VBeam\n\nOBlock = AOBlock or IOBlock\n(HLBlock = HBlock or LBlock\nHRBlock = HBlock or RBlock\nHLRBlock = HBlock or LBlock or RBlock\nVUBlock = VBlock or UBlock\nVDBlock = VBlock or DBlock\nVUDBlock = VBlock or UBlock or DBlock)\nBlock = OBlock or LBlock or RBlock or UBlock or DBlock( or VBlock or HBlock)\n\nPushable = Player or Block\nBlocker = Wall or Player or Block or Projector\n\n. = ABackground\nW = AWall\nS = APlayer and AStart and ABackground\nG = AGoal and ABackground\n+ = AProjector and ABackground\nO = AOBlock and ABackground\nL = ALBlock and ABackground\n(- = AHBlock and ABackground)\nR = ARBlock and ABackground\nU = AUBlock and ABackground\n(| = AVBlock and ABackground)\nD = ADBlock and ABackground\n\n=========\nSOUNDS\n=========\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nMarker\nTMarker\nMMarker\nGoal, Start\nPlayer, Wall, Projector, Block\nHBeam\nVBeam\n\n======\nRULES\n======\n\n(Can't move into beams)\nHorizontal [> Player | HBeam] -> cancel\nVertical [> Player | VBeam] -> cancel\n\n(Update whether everything is active or inactive)\n[> IPlayer | IStart] -> [> IPlayer AMarker | IStart]\nlate [IPlayer] [AMarker] -> [APlayer] [AMarker]\nlate [IProjector] [AMarker] -> [AProjector] [AMarker]\nlate [IOBlock] [AMarker] -> [AOBlock] [AMarker]\nlate [ILBlock] [AMarker] -> [ALBlock] [AMarker]\nlate [IRBlock] [AMarker] -> [ARBlock] [AMarker]\n(late [IHBlock] [AMarker] -> [AHBlock] [AMarker]\nlate [IVBlock] [AMarker] -> [AVBlock] [AMarker])\nlate [IUBlock] [AMarker] -> [AUBlock] [AMarker]\nlate [IDBlock] [AMarker] -> [ADBlock] [AMarker]\nlate [IWall] [AMarker] -> [AWall] [AMarker]\nlate [IBackground] [AMarker] -> [ABackground] [AMarker]\nlate [IGoal] [AMarker] -> [AGoal] [AMarker]\nlate [IStart] [AMarker] -> [AStart] [AMarker]\nlate [AMarker] -> []\n\n[> APlayer | Beam] -> [> APlayer IMarker | Beam]\nlate [APlayer] [IMarker] -> [IPlayer] [IMarker]\nlate [AProjector] [IMarker] -> [IProjector] [IMarker]\nlate [AOBlock] [IMarker] -> [IOBlock] [IMarker]\nlate [ALBlock] [IMarker] -> [ILBlock] [IMarker]\nlate [ARBlock] [IMarker] -> [IRBlock] [IMarker]\n(late [AHBlock] [IMarker] -> [IHBlock] [IMarker]\nlate [AVBlock] [IMarker] -> [IVBlock] [IMarker])\nlate [AUBlock] [IMarker] -> [IUBlock] [IMarker]\nlate [ADBlock] [IMarker] -> [IDBlock] [IMarker]\nlate [AWall] [IMarker] -> [IWall] [IMarker]\nlate [ABackground] [IMarker] -> [IBackground] [IMarker]\nlate [AGoal] [IMarker] -> [IGoal] [IMarker]\nlate [AStart] [IMarker] -> [IStart] [IMarker]\nlate [IMarker] -> []\n\n(Player Push Blocks)\nrigid [> Player | Block] -> [> Player | > Block]\n+ rigid [> Block | Block] -> [> Block | > Block]\n+ rigid Left [Moving RBlock | LBlock] -> [Moving RBlock | Moving LBlock]\n+ rigid Right [Moving LBlock | RBlock] -> [Moving LBlock | Moving RBlock]\n+ rigid Up [Moving DBlock | UBlock] -> [Moving DBlock | Moving UBlock]\n+ rigid Down [Moving UBlock | DBlock] -> [Moving UBlock | Moving DBlock]\n(+ Vertical [Moving VBlock | VUDBlock] -> [Moving VBlock | Moving VUDBlock])\n\n(Beams Push)\nlate [MMarker] -> []\n\nrigid Right [RPusher | Pushable] [TMarker] [Player] -> [RPusher | > Pushable] [TMarker] [Player MMarker] again\n+ rigid Right [> Pushable | Pushable] -> [> Pushable | > Pushable]\n+ rigid Left [Moving RBlock | LBlock] -> [Moving RBlock | Moving LBlock]\n+ rigid Right [Moving LBlock | RBlock] -> [Moving LBlock | Moving RBlock]\n+ rigid Up [Moving DBlock | UBlock] -> [Moving DBlock | Moving UBlock]\n+ rigid Down [Moving UBlock | DBlock] -> [Moving UBlock | Moving DBlock]\n\nrigid Left [LPusher | Pushable] [TMarker] [Player] -> [LPusher | > Pushable] [TMarker] [Player MMarker] again\n+ rigid Left [> Pushable | Pushable] -> [> Pushable | > Pushable]\n+ rigid Left [Moving RBlock | LBlock] -> [Moving RBlock | Moving LBlock]\n+ rigid Right [Moving LBlock | RBlock] -> [Moving LBlock | Moving RBlock]\n+ rigid Up [Moving DBlock | UBlock] -> [Moving DBlock | Moving UBlock]\n+ rigid Down [Moving UBlock | DBlock] -> [Moving UBlock | Moving DBlock]\n\nrigid Up [UPusher | Pushable] [TMarker] [Player] -> [UPusher | > Pushable] [TMarker] [Player MMarker] again\n+ rigid Up [> Pushable | Pushable] -> [> Pushable | > Pushable]\n+ rigid Left [Moving RBlock | LBlock] -> [Moving RBlock | Moving LBlock]\n+ rigid Right [Moving LBlock | RBlock] -> [Moving LBlock | Moving RBlock]\n+ rigid Up [Moving DBlock | UBlock] -> [Moving DBlock | Moving UBlock]\n+ rigid Down [Moving UBlock | DBlock] -> [Moving UBlock | Moving DBlock]\n\nrigid Down [DPusher | Pushable] [TMarker] [Player] -> [DPusher | > Pushable] [TMarker] [Player MMarker] again\n+ rigid Down [> Pushable | Pushable] -> [> Pushable | > Pushable]\n+ rigid Left [Moving RBlock | LBlock] -> [Moving RBlock | Moving LBlock]\n+ rigid Right [Moving LBlock | RBlock] -> [Moving LBlock | Moving RBlock]\n+ rigid Up [Moving DBlock | UBlock] -> [Moving DBlock | Moving UBlock]\n+ rigid Down [Moving UBlock | DBlock] -> [Moving UBlock | Moving DBlock]\n\n\n(beams detect motion)\nHorizontal [ > Pushable | VBeam ] -> [ > Pushable | > VBeam ]\nVertical [ > Pushable | HBeam ] -> [ > Pushable | > HBeam ]\n\n(If beams detected motion, transfer that to the projectors)\n[ Projector | ... | Perpendicular Beam ] -> [ Perpendicular Projector | ... | Perpendicular Beam ]\n\n(remove beams)\n[ Beam ] -> []\n\n(Place Beams)\nlate Left [ AProjector | No Blocker ] -> [ AProjector | ALBeam ]\nlate Left [ IProjector | No Blocker ] -> [ IProjector | ILBeam ]\nlate Right [ AProjector | No Blocker ] -> [ AProjector | ARBeam ]\nlate Right [ IProjector | No Blocker ] -> [ IProjector | IRBeam ]\nlate Horizontal [ HBeam | No Blocker No Projector No HBeam] -> [HBeam | HBeam]\nlate Up [ AProjector | No Blocker ] -> [ AProjector | AUBeam ]\nlate Up [ IProjector | No Blocker ] -> [ IProjector | IUBeam ]\nlate Down [ AProjector | No Blocker ] -> [ AProjector | ADBeam ]\nlate Down [ IProjector | No Blocker ] -> [ IProjector | IDBeam ]\nlate Vertical [ VBeam | No Blocker No Projector No VBeam] -> [VBeam | VBeam]\n\n(Run a second turn)\n[Moving Player No TMarker] -> [Moving Player TMarker] again\n[Stationary Player No MMarker] [TMarker] -> [Player] []\n\n==============\nWINCONDITIONS\n==============\n\nSome APlayer on AGoal\n\n=======\nLEVELS\n=======\n\n(message Block Test\n\nWWWWWWWWWWWW\nW..........W\nW..........W\nW..U...LR..W\nW..D.......W\nW..........W\nW.......U..W\nW..LR...D..W\nW..........W\nW..........W\nWS.........W\nWWWWWWWWWWWW)\n\nmessage Beam Push Test\n\nWWWWWWWWWWWW\nW..........W\nW..........W\nW..........W\nW..........W\nW..........W\nW.......W..W\nW.......+..W\nWWWU.......W\nW..D.......W\nW..S.......W\nWWWWWWWWWWWW\n\nmessage 1 OF 8\n\nWWWWWWWWW\nW......GW\nW..OO..WW\nW.....WW.\nW.....+W.\nWW.WWWWW.\nW......W.\nW..OO..W.\nW..OO..W.\nWW.....W.\nW+.....W.\nWWWWWW.W.\nW......W.\nW......W.\nWWSWWWWW.\nWWWWWWWW.\n\nmessage 2 OF 8\n\nWWWWWWWWWWWWWWW\nWWWWWWW.WW.WWWW\nWWWWWWW....WWWW\nWWWWWW......WWW\nWWWWWW.+....WWW\nWWWWWWW....WWWW\nWWWWWWWW..WWWWW\nWWWW+++W..WWWWW\nWG.........WWWW\nWWW......U.WWWW\nW.LR.....D.WWWW\nWWW..........SW\nWWW.W.W....WWWW\nWWW.WWW.W..WWWW\nWWW.........WWW\nWWWWWWWWWWWWWWW\n\nmessage 3 OF 8\n\nWWWWWWWWWWWWWWW\nW.............W\nW.WWWWWWWWWWW.W\nW.......+WWWW.W\nW.WWWWW.WW....W\nW.W.........W.W\nW.WW........WGW\nW.W.........WWW\nW.W.+..U..+.WWW\nW.W....D....WWW\nW.W....O....WWW\nW...........WWW\nWWWWWWW.WWWWWWW\nWWWWWWWOO+WWWWW\nWWWWWWW.WWWWWWW\nWWWWWWWSWWWWWWW\nWWWWWWWWWWWWWWW\n",[0,0,"restart",0,0,"restart",0,3,0,0,0,2,2,2,2,"restart",0,0,"restart",0,0,"restart",0,0,0,0,3,2,2,2,0,0,0,3,3,0,3,3,3,3,2,2,1,1,1,1,1,0,0,1,1,"restart",0,1,"restart",1,0,3,0,2,2,3,0,0,0,"restart",0,3,0,0,2,2,2,1,3,0,1,"restart",1,0,3,3,3,3,3,2,3,0,1,0,0,0,0,3,3],"ibackground iwall:0,0,0,0,0,0,0,0,0,0,0,0,\n0,ibackground:1,1,1,1,1,1,1,0,1,1,0,\n0,1,1,1,1,1,1,1,0,1,1,0,\n0,1,1,1,1,1,1,1,1,1,ibackground istart:2,0,\n0,1,1,1,1,1,1,1,1,1,1,0,\n0,1,1,1,1,1,1,1,1,1,1,0,\n0,1,1,1,1,1,1,1,1,1,1,0,\n0,1,1,1,1,1,1,1,1,1,1,0,\n0,1,1,1,1,1,0,ibackground iublock:3,ibackground idblock:4,1,1,0,\n0,1,1,1,1,ibackground iplayer:5,ibackground ilbeam:6,1,1,1,1,0,\n0,ibackground iubeam:7,7,7,7,7,ibackground iprojector:8,ibackground idbeam:9,9,9,9,0,\n0,0,0,0,0,0,0,0,0,0,0,0,\n",1,"1409552865429.6877"]
	],
	[
		"Rigidbody rules apply to group rather than individual rules.",
		["title Several Rigid Bodies\nauthor Stephen Lavelle\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\ndarkgreen\n\nTarget\nYELLOW\n\nPlayer\nPINK\n\nRedCrate q\nRED\n\nGreenCrate w\nGreen\n\nBlueCrate e\nBlue\n\nSmallCrate r\nPurple\n.....\n.000.\n.000.\n.000.\n.....\n\nWall\nDARKBROWN\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\nbigcrate = redcrate or greencrate or bluecrate\nCrate = smallcrate or bigcrate\nO = Target\n\n=========\nSOUNDS\n=========\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate\n\n======\nRULES\n======\n\nstartloop\n\n\n[ > Player | GreenCrate ] -> [ > Player | > GreenCrate ]\n+ rigid [ moving GreenCrate | GreenCrate ] -> [ moving GreenCrate | moving GreenCrate ]\n+ [ > Crate | GreenCrate ] -> [ > Crate | > GreenCrate ]\n\n\nendloop\n\n==============\nWINCONDITIONS\n==============\n\n=======\nLEVELS\n=======\n\n...............\n.......#wp.....\n......www......\n...............\n\n",[1,0,1,3,2,2,2,1,0,2,2],"background:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,background greencrate:1,0,0,background wall:2,\n1,0,0,1,1,background player:3,0,0,0,0,0,0,0,0,0,\n0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n",0,"1409615719060.894"]
	],
	[
		"Laser movement check (#264)",
		["title Bug\n\n========\nOBJECTS\n========\n\nBackground\nDarkGrey\n\nPlayer\nGrey White\n.....\n..0..\n.010.\n..0..\n.....\n\nGun\nGrey\n..000\n..000\n000.0\n..000\n..000\n\nLaser\nRed\n.....\n.....\n00000\n.....\n.....\n\n=======\nLEGEND\n=======\n\n. = Background\nP = Player\nG = Gun\n\n=======\nSOUNDS\n=======\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nLaser\nGun Player\n\n\n======\nRULES\n======\n\n[Laser no Gun] -> []\n[] -> [laser]\n\n==============\nWINCONDITIONS\n==============\n\n=======\nLEVELS\n=======\n\n.....\n..P..\n.....\n..G..\n.....\n",[1,2,2],"background laser:0,0,0,0,0,\n0,0,0,background laser player:1,0,\n0,0,0,background gun laser:2,0,\n0,0,0,0,0,\n0,0,0,0,0,\n",0,"1417791963112.0676"]
	],
	[
		"Undo test (#315)",
		["title Simple Block Pushing Game\nauthor Stephen Lavelle\nhomepage www.puzzlescript.net\n\n========\nOBJECTS\n========\n\nBackground\nLIGHTGREEN GREEN\n11111\n01111\n11101\n11111\n10111\n\n\nTarget\nDarkBlue\n.....\n.000.\n.0.0.\n.000.\n.....\n\nWall\nBROWN DARKBROWN\n00010\n11111\n01000\n11111\n00010\n\nPlayer\nBlack Orange White Blue\n.000.\n.111.\n22222\n.333.\n.3.3.\n\nCrate\n#eb8931 #e8872f #e5842d #e1812b #de7e28 #d67823 #d37521 #cf721e #ce711e #d9c554\n01234\n92345\n93456\n94567\n45678\n\nGlove\n#f2de68 #edd964 #e9d460 #e4cf5b #dfca57 #d9c554 #d5c14f #e5842d\n.012.\n01734\n12777\n23756\n.456.\n\n\n=======\nLEGEND\n=======\n\n. = Background\n# = Wall\nP = Player\n* = Crate\n@ = Crate and Target\nO = Target\n\n\n=======\nSOUNDS\n=======\n\nCrate MOVE 36772507\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nTarget\nPlayer, Wall, Crate, Glove\n\n======\nRULES\n======\n\n[ Glove ] -> []\n\nright [ | Player | Crate ] -> [ Player | Glove | Crate ] again\n\nlate right [ Player | Crate ] -> again\n\n[ > Player | Crate ] -> [ > Player | > Crate ]\n\n==============\nWINCONDITIONS\n==============\n\nAll Target on Crate\n\n=======\nLEVELS\n=======\n\n\n####..\n#.O#..\n#..###\n#@P..#\n#..*.#\n#..###\n####..\n\n\n######\n#....#\n#.#P.#\n#.*@.#\n#.O@.#\n#....#\n######\n",[2,2,"undo",3,3,"undo",2,2,3,"undo","undo","undo",2,2,"undo",2,"undo","undo",2,3,3,3,2,3,1,0,3,2,"undo","undo","undo","undo","undo","undo",3],"background wall:0,0,0,0,0,0,\n0,0,background:1,1,background crate target:2,1,\n1,0,0,background target:3,1,1,\n1,1,0,0,0,0,\nbackground player:4,background crate:5,0,0,1,1,\n0,1,1,0,1,1,\n1,0,0,0,0,1,\n",0,"1465308519218.314"]
	],
	[
		"Rigid weirdness test (#369)",
		["title Rigid Clothes\nauthor ThatScar\n\nverbose_logging\ndebug\n\n========\nOBJECTS\n========\n\nBackground .\nLightGreen Green\n11111\n01111\n11101\n11111\n10111\n\nPlayer \nBlack Orange\n.000.\n.111.\n11111\n.111.\n.1.1.\n\nSumo A\nPink White\n..0..\n00000\n.000.\n.111.\n.0.0.\n\nShirt T\nWhite\n.....\n.....\n00000\n.000.\n.....\n\nPants U\nBlue\n.....\n.....\n.....\n.000.\n.0.0.\n\n=======\nLEGEND\n=======\n\nClothes = Shirt or Pants\nP = Player and Shirt and Pants\n\n=======\nSOUNDS\n=======\n\nplayer action 1232\n\n================\nCOLLISIONLAYERS\n================\n\nBackground\nPlayer, Sumo\nShirt\nPants\n\n======\nRULES\n======\n\n[ Parallel Player | Sumo ] -> [ Parallel Player | Parallel Sumo ]\n\nRigid [ Moving Player Clothes ] -> [ Moving Player Moving Clothes ]\n\n==============\nWINCONDITIONS\n==============\n\n=======\nLEVELS\n=======\n\nPA.\n\n",[3],"background:0,background pants player shirt:1,background sumo:2,\n",0,"1487773403601.2908"]
	]
];

